📄 main.c.bak
字号:
/****************************************Copyright (c)**************************************************
**
**
**
**
**--------------File Info-------------------------------------------------------------------------------
** File name:
** Last modified Date:
** Last Version:
** Descriptions:
**
**------------------------------------------------------------------------------------------------------
** Created by:
** Created date:
** Version:
** Descriptions:
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/
#include "config.h"
#include "LPC2294.h"
/*****************************************************************************************
**常量定义
*****************************************************************************************/
/*定义中段通道号*/
#define WdtInt 0
#define Timer0Int 4
#define Timer1Int 5
#define Uart0Int 6
#define Uart1Int 7
#define Pwm0Int 8
#define I2c0Int 9
#define Spi0Int 10
#define Spi1Int 11
#define RtcInt 12
#define Exint0Int 14
#define Exint1Int 15
#define Exint2Int 16
#define Exint3Int 17
/*定义波特率*/
#define UartBps 57600
/*定义P0口*/
#define FinTxd0 1<<0
#define FinRxd0 1<<1
#define FinEnable 1<<2
#define Row0 1<<3
#define Row1 1<<4
#define Row2 1<<5
#define Row3 1<<6
#define Beep 1<<7
#define RfData 1<<9 //EINT3
#define DoorIn 1<<11
#define InitFlash 1<<14 //EINT1
#define Demolish 1<<28
#define D0Out 1<<29
#define D1Out 1<<30
#define GreenLed 1<<25 //P0.025Green
#define Alarm 0x80000000 //P0.31
/*定义P1口*/
#define RedLed 1<<24 //P1.24Red
#define IrIn 1<<25
/*定义外部变量volatile */
uint8 RevDatBuf[16]; //数据缓冲区0-15
uint8 *PtRevOrSendDat; //
uint8 SendDataLenth; //发送的数据包数据计数
uint8 RevDataLenth; //接收到的数据包数据个数
uint8 RevEndFlag; //接收数据标志,1=接收完毕
uint16 AckPackLenthBuf; //接收包头数据缓冲
uint8 RevDatCnt; //
uint16 PageId;
uint32 PackCaput;
uint8 NumCnt;
uint8 BStartBuzzerTime;
uint8 BuzzerEvent_RevSameDatCnt;
uint8 BuzzerCnt_DecodeDatCnt;
uint8 TimeNumCnt;
uint8 BstartLawlessOpenDoorTime;
uint8 TimeDoorOpenCnt;
uint8 LableBitVar;
uint16 TimeOneMinuteCnt;
uint8 BEndOneMinuteTime;
uint8 EveryOneMinuteCnt_TimeCnt;
uint8 BStartLedGlintTime;
uint8 TempVar_TimeGlintCnt;
uint8 BstartDoorOpenTime;
uint8 BStartTimeCnt;
uint8 MinuteCnt_LastRevDat;
uint8 LedEvent_TimeBuzzerCnt;
uint8 BStopCheck;
uint8 BStopCheckBuz;
/*定义串口模式设置数据结构*/
/*typedef struct UartMode
{ uint8 DataBit; //字长度
uint8 StopBit; //停止位
uint8 Parity; //校验位
}UARTMODE;*/
#include "pro.c"
/*****************************************************************************************
** 函数名称 : IRQTimer0()
** 函数功能 : Timer0定时器处理程序
**
** 入口参数 : 无
** 出口参数 : 无
*****************************************************************************************/
void __irq IRQTimer0(void)
{ VICIntEnable = 0x00;
if(BStartBuzzerTime)
{ NumCnt++;
switch(BuzzerEvent_RevSameDatCnt)
{
case 1://一次短
if(NumCnt>10)
{ NumCnt=0;
BStartBuzzerTime=0;
BeepOff();
AlarmOff();
}
else
{ if(NumCnt<6)
{ BeepOn();
AlarmOff();
}
else
{ BeepOff();
AlarmOff();
}
}
break;
case 2://一次长
if(NumCnt>40)
{ BStartBuzzerTime=0;
NumCnt=0;
BeepOff();
AlarmOff();
}
else
{ if(NumCnt<30)
{
BeepOn();
AlarmOff();
}
else
{ BeepOff();
AlarmOff();
}
}
break;
case 3:
case 5://两次短
if(!BuzzerCnt_DecodeDatCnt)
{ if(NumCnt>10)
{ BuzzerCnt_DecodeDatCnt++;
NumCnt=0;
}
else
{ if(NumCnt<6)
{ BeepOn();
AlarmOff();
}
else
{ BeepOff();
AlarmOff();
}
}
}
else
{ if(BuzzerCnt_DecodeDatCnt==2)
{ BStartBuzzerTime=0;
NumCnt=0;
BeepOff();
AlarmOff();
}
else
{ if(NumCnt>10)
{ NumCnt=0;
BuzzerCnt_DecodeDatCnt++;
}
else
{ if(NumCnt<6)
{ BeepOn();
AlarmOff();
}
else
{ BeepOff();
AlarmOff();
}
}
}
}
break;
case 6://三次短
if(!BuzzerCnt_DecodeDatCnt)
{ if(NumCnt>10)
{ BuzzerCnt_DecodeDatCnt++;
NumCnt=0;
}
else
{ if(NumCnt<6)
{ BeepOn();
AlarmOff();
}
else
{ BeepOff();
AlarmOff();
}
}
}
else
{ if(BuzzerCnt_DecodeDatCnt==3)
{ BStartBuzzerTime=0;
NumCnt=0;
BeepOff();
AlarmOff();
}
else
{ if(NumCnt>10)
{ NumCnt=0;
BuzzerCnt_DecodeDatCnt++;
}
else
{ if(NumCnt<6)
{ BeepOn();
AlarmOff();
}
else
{ BeepOff();
AlarmOff();
}
}
}
}
break;
case 7://一长两短
if(!BuzzerCnt_DecodeDatCnt)
{ if(NumCnt>40)
{ BuzzerCnt_DecodeDatCnt++;
NumCnt=0;
}
else
{ if(NumCnt<30)
{ BeepOn();
AlarmOff();
}
else
{ BeepOff();
AlarmOff();
}
}
}
else
{ if(BuzzerCnt_DecodeDatCnt==3)
{ BStartBuzzerTime=0;
NumCnt=0;
BeepOff();
AlarmOff();
}
else
{ if(NumCnt>10)
{ NumCnt=0;
BuzzerCnt_DecodeDatCnt++;
}
else
{ if(NumCnt<6)
{ BeepOn();
AlarmOff();
}
else
{ BeepOff();
AlarmOff();
}
}
}
}
break;
case 8://两短一长//buz
if(BuzzerCnt_DecodeDatCnt<2)
{ if(NumCnt>10)
{ BuzzerCnt_DecodeDatCnt++;
NumCnt=0;
}
else
{ if(NumCnt<6)
{ BeepOn();
AlarmOff();
}
else
{ BeepOff();
AlarmOff();
}
}
}
else
{ if(BuzzerCnt_DecodeDatCnt==3)
{ BStartBuzzerTime=0;
NumCnt=0;
BeepOff();
AlarmOff();
}
else
{ if(NumCnt>40)
{ NumCnt=0;
BuzzerCnt_DecodeDatCnt++;
}
else
{ if(NumCnt<30)
{ BeepOn();
AlarmOff();
}
else
{ BeepOff();
AlarmOff();
}
}
}
}
break;
case 9://连续长鸣
if(NumCnt>40)
{NumCnt=0;}
else
{
if(NumCnt<30)
{
BeepOn();
AlarmOn();
}
else
{
BeepOff();
AlarmOn();
}
}
break;
case 10://连续短鸣
if(NumCnt>10)
{NumCnt=0;}
else
{ if(NumCnt<6)
{ BeepOn();
AlarmOff();
}
else
{ BeepOff();
AlarmOff();
}
}
break;
case 11://两次短进入编程
if(!BuzzerCnt_DecodeDatCnt)
{ if(NumCnt>10)
{ BuzzerCnt_DecodeDatCnt++;
NumCnt=0;
}
else
{ if(NumCnt<6)
{ BeepOn();
AlarmOff();
}
else
{ BeepOff();
AlarmOff();
}
}
}
else
{ if(BuzzerCnt_DecodeDatCnt==2)
{ BStartBuzzerTime=0;
NumCnt=0;
BeepOff();
AlarmOff();
}
else
{ if(NumCnt>10)
{ NumCnt=0;
BuzzerCnt_DecodeDatCnt++;
}
else
{ if(NumCnt<6)
{ BeepOn();
AlarmOff();
}
else
{ BeepOff();
AlarmOff();
}
}
}
}
break;
case 12://三次短编程确认
if(!BuzzerCnt_DecodeDatCnt)
{ if(NumCnt>10)
{ BuzzerCnt_DecodeDatCnt++;
NumCnt=0;
}
else
{ if(NumCnt<6)
{ BeepOn();
AlarmOff();
}
else
{ BeepOff();
AlarmOff();
}
}
}
else
{ if(BuzzerCnt_DecodeDatCnt==3)
{ BStartBuzzerTime=0;
NumCnt=0;
BeepOff();
AlarmOff();
}
else
{ if(NumCnt>10)
{ NumCnt=0;
BuzzerCnt_DecodeDatCnt++;
}
else
{ if(NumCnt<6)
{ BeepOn();
AlarmOff();
}
else
{ BeepOff();
AlarmOff();
}
}
}
}
break;
}
}
if(BStartTimeCnt)
{TimeNumCnt++;}
if(BstartLawlessOpenDoorTime)
{TimeDoorOpenCnt++;}
if(BstartDoorOpenTime) //注:BstartDoorOpenTime与BstartLawlessOpenDoorTime不会同时出现,可以共用
{ TimeDoorOpenCnt++;
}
if((LableBitVar&0x80)==0x80)
{
TimeOneMinuteCnt++;
if(TimeOneMinuteCnt>3000)
{BEndOneMinuteTime=1;}
}
if((LableBitVar&0x40)==0x40)
{ EveryOneMinuteCnt_TimeCnt++;
if(EveryOneMinuteCnt_TimeCnt>3000)
{ MinuteCnt_LastRevDat++;
EveryOneMinuteCnt_TimeCnt=0;
}
}
if(BStartLedGlintTime)
{
TempVar_TimeGlintCnt++;
switch(LedEvent_TimeBuzzerCnt)
{
case 0:
case 2:
case 8://红秒闪,绿灭
if(TempVar_TimeGlintCnt>80) //40
{TempVar_TimeGlintCnt=0;}
else
{ GreenLedOff();
if(TempVar_TimeGlintCnt<60) // 30
{RedLedOn();}
else
{RedLedOff();}
}
break;
case 1:
if(TempVar_TimeGlintCnt>5000) //40
{ BStartLedGlintTime=1;
TempVar_TimeGlintCnt=0;
}
break;
case 5://红亮,绿快闪
if(TempVar_TimeGlintCnt>25)
{TempVar_TimeGlintCnt=0;}
else
{ RedLedOn();
if(TempVar_TimeGlintCnt<20)
{GreenLedOn();}
else
{GreenLedOff();}
}
break;
case 9://红慢闪,绿灭
if(TempVar_TimeGlintCnt>120)
{TempVar_TimeGlintCnt=0;}
else
{ GreenLedOff();
if(TempVar_TimeGlintCnt<90)
{ RedLedOn();}
else
{ RedLedOff();}
}
break;
}
}
T0IR = 0x01;
VICVectAddr = 0x00;
VICIntEnable = 0x8030;
}
/*****************************************************************************************
** 函数名称 : IRQTimer1()
** 函数功能 : Timer1定时器处理程序
**
** 入口参数 :
** 出口参数 : 无
*****************************************************************************************/
void __irq IRQTimer1(void)
{ uint32 StateBuf;
VICIntEnable = 0x00;
IO0DIR = IO0DIR|Row1;
StateBuf = IO0SET;
if((StateBuf&Row1) == 0)
IO0SET = IO0SET|Row1;
else
IO0CLR = IO0CLR|Row1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -