⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dog.c

📁 c8051f020实现4个 产UART 口
💻 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 + -