1.感应边沿信号检测与触发发送
cpp
if(edge.up==TRUE)
{
_nop_();
cmd1[33]='A';
cmd1[34]='A';
cmd2[33]='A';
cmd2[34]='A';
Uart2_SendString(cmd1);
for(i=0;i<10000;i++);
Uart2_SendString(cmd2);
edge.up=FALSE;
}
if(edge.down==TRUE)
{
_nop_();
cmd1[33]='5';
cmd1[34]='5';
cmd2[33]='5';
cmd2[34]='5';
Uart2_SendString(cmd1);
for(i=0;i<10000;i++);
Uart2_SendString(cmd2);
edge.down=FALSE;
}
2.添加看门狗
cpp
/***********************************************
函数名称:WachDogInit
功 能:看门狗初始化函数
入口参数:无
返 回 值:无
备 注:无
************************************************/
void WatchDogInit(void)
{
ClrBits(WDT_CONTR,Bits_ALL);
SetBits(WDT_CONTR,EN_WDT|CLR_WDT|IDLE_WDT);
SetBits(WDT_CONTR,PS_2|PS_1);
// 0011,1110 EN_WDT = 1,CLR_WDT = 1,IDLE_WDT = 1,PS2 = 1,PS1 = 1,PS0 = 0
// EN_WDT = 1:启动看门狗定时器
// CLR_WDT = 1:看门狗将重新计数
// IDLE_WDT = 1:,看门狗定时器在"空闲模式"计数
// PS2 = 1,PS1 = 1,PS0 = 0:定时4.5511 S @f=11.0592MHz
}
/***********************************************
函数名称:WachDogClear
功 能:清除看门狗函数
入口参数:无
返 回 值:无
备 注:无
************************************************/
void WatchDogClear(void)
{
SetBits(WDT_CONTR,CLR_WDT);
// CLR_WDT = 1:看门狗将重新计数
}
3.编译烧写

4.测试

