📄 dog.c
字号:
#include "all.h"
bit EN_Dog_B=1;
bit TongHua_B=0; // 电话通话标志位
// 报警打电话时置为1
//远程电话设置时置为1
//检测到"NO CARRIER" 清0
//主动挂机时清为0
//人工平时接打电话 置为1
//此标志为1 时方可进行按 "1" 进行私密交谈切换
void Wdg_Rest_Attand(void) ;
uint M_Second_cnt=0; //看门狗用
uchar Second_cnt=0; //看门狗用
uchar ima_cnt=0;
//键盘拔号复0 计数器,超过16秒没人按键则复位为 ima=3;
//免得按错号
//看门狗复位管理任务
bit ChDian_B=0;
uchar ChDian_cnt=0;
uint Temmadc;
void Wdg_Rest (void) _task_ Time_2ms_Dog {
while(1) {
os_wait2(K_TMO,1);
//WDI2_P^=1; //主喂狗信号
CLR_WDG ; //52MS 狗周期
EN_Dog_B = 0;
if(++ M_Second_cnt>500) {
M_Second_cnt=0 ;
//**说 明: 看门狗处理子函数
Wdg_Rest_Attand( ) ;
//======================================
if(ima_cnt!=16) {
if(++ ima_cnt>=16) { //键盘拔号复0 计数器,超过16秒没人按键则复位为 ima=3;
ima_cnt=16;
}
}
}
}
}
/**********************************************************************
**函数原型: void Attand_DiZh()
**入口参数:
**出口参数: 无
**返 回 值:
**说 明: 看门狗处理子函数
放在秒循环中
用于判断每个任务是否超时,如超时则让看门狗复位
******************************************************************************/
bit Rst_B=0;
void Wdg_Rest_Attand(void) {
Second_cnt++; //看门狗用
if( Second_cnt>60) { //以下是分钟
Second_cnt=0;
Rst_B=0;
if(++Dog_INIT_cnt>38) { // 28分钟
Para_all_True.Dog_INIT_cnt++;
Para_all_True.Change_Flag=1;
Rst_B=1;
}
if(++Dog_ZIJIAN_cnt>1) { // 2分钟
Para_all_True.Dog_ZIJIAN_cnt++;
Para_all_True.Change_Flag=1;
Rst_B=1;
}
if(++ Dog_GSMATTAND_cnt>1) { // 2分钟
Para_all_True.Dog_GSMATTAND_cnt++;
Para_all_True.Change_Flag=1;
Rst_B=1;
}
if(++ Dog_TcpIp_CHULI_cnt>1) { // 2分钟
Para_all_True.Dog_TcpIp_CHULI_cnt++;
Para_all_True.Change_Flag=1;
Rst_B=1;
}
if(Dog_FMROMI_cnt) {
if(++ Dog_GSMATTAND_cnt>2) { // 2分钟
Para_all_True.Dog_GSMATTAND_cnt ++;
Para_all_True.Change_Flag=1;
Rst_B=1;
}
}
if(++ Dog_RF315_cnt>1) { // 2分钟
Para_all_True.Dog_RF315_cnt++;
Para_all_True.Change_Flag=1;
Rst_B=1;
}
if(++Dog_TIMELIMITED_cnt>1) { // 2分钟 ??????????
Para_all_True.Dog_TIMELIMITED_cnt++;
Para_all_True.Change_Flag=1;
Rst_B=1;
}
if(++Dog_JINGQINGCHULI_cnt>26) { // 26分钟 ??????????
//接报警电话不能超过16分钟
Para_all_True.Dog_JINGQINGCHULI_cnt++;
Para_all_True.Change_Flag=1;
Rst_B=1;
}
if(Dog_YouXian_CK_task_cnt) {
if(++Dog_YouXian_CK_task_cnt>1) { // 2分钟
Para_all_True.Dog_YouXian_CK_task_cnt++;
Para_all_True.Change_Flag=1;
Rst_B=1;
}
}
if(++Dog_KEYATTAND_cnt>5) { // 1分钟 ??????????
//key不能超过1分钟
Para_all_True.Dog_KEYATTAND_cnt++;
Para_all_True.Change_Flag=1;
Rst_B=1;
}
//=============================
if( Rst_B ==1) {
Rst_B =0;
for( Second_cnt=0; Second_cnt<200; Second_cnt++) {
os_wait2(K_TMO, 1);
CLR_WDG;
} //等待 Flash_FM24C04(void)
while(1);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -