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

📄 status_check.h

📁 嵌入式单片机开发,嵌入式单片机开发,嵌入式单片机开发
💻 H
字号:

unsigned char tongxun_use4851_second;// comm 485 1,comm 485 0 check
unsigned char tongxun_use4850_second;
unsigned char tongxun_useremote_second;// comm remote
void init_check()
{
	check_point=0;// fen shi yong
	time_check7758=0;// check 7758
	num_check_485=0;// comm 485 1  send check use
	num_check_485_0=0;// comm 485 0  send check use
	num_check_remote=0;// comm remote  send check use

}

void check_mode()
{unsigned char i,l;
 static unsigned char g,g1,num7758m;
// 5460
// check_point++
	if(g!=(RSOFT_RTC_SECOND&0xf0))// between 10 second
    		{
    			g=(RSOFT_RTC_SECOND&0xf0);
      			g1=1;
      			num7758m=num7758m+1;
      			if(num7758m>60)// check 60 num  ----reset
      				{
      					num7758m=0;// total 60 num=0;
         				time_check7758=0;// the err num=0
      	  			}
      		}
	if(g1==1)
		{
			check_point=check_point+1;// loop 1------42 ,,,0
			if(check_point>42) 
				{
					check_point=0;
        				g1=0;
				}
			switch(check_point)
				{
					case 0: 
 					case 1: 
 					case 2: 
 					case 3: 
 					case 4:
 					case 5:// block num=6  kwh kvarh check
              					for(i=0;i<4;i++)
	              					{
	              						if(0!=anquan_dianliang_jiuzhen(check_point*4+i)) 
									dianliang_write(check_point*4+i);
              						}
	       					break;
  					case 10: // l7758                      	
              					time_check7758=check7758()+time_check7758;// err num
              					if(time_check7758>18) // err num>18
              						{
              							init_7758();
                      						time_check7758=0;
              						}
              					break;
   					case 11:
							//YONGHUHAO BIAOHAO ADDR
       							huifu_use_fm_fm1(R_YONGHUHAO_L, 18);
							//ALARM 
       							huifu_nobcd_fm_fm1(R_ALARMCONTROL_SPEEK1,6);
     							 //ZHENG XIANG GONG LV SHANG XIAN
        						huifu_use_fm_fm1(R_KW_F_MAX,3);
								huifu_use_fm_fm1(R_KW_R_MAX,3);
              					break;
   					case 12:// PRICE 1
   	         					huifu_use_fm_fm1(R_PRICE_NO1_1,36);
	         					break;
   					case 13:
   	        					huifu_use_fm_fm1(R_PRICE_NO2_1,36);
	          					break;
   					case 14:
   	          					huifu_use_fm_fm1(R_PRICE_NO3_1,36);
			  				break;
   					case 15:
   	         					huifu_use_fm_fm1(R_PRICE_NO4_1,36);
			 				break;
   					case 16:
   	         					huifu_use_fm_fm1(R_PRICE_NO5_1,36);
			 				break;
   					case 17:
   	          					huifu_use_fm_fm1(R_ONUS_1,36);
			  				break;
   					case 18:// NUM (10)=10*3 BYTE
   	          					huifu_use_fm_fm1(R_HOLIDAY1,30);
			  				break;
   					case 19:
   	          					huifu_use_fm_fm1(R_HOLIDAY11,30);
			  				break;
   					case 20:
   	          					huifu_use_fm_fm1(R_HOLIDAY21,30);
			  				break;
   					case 21:
   	          			 		huifu_nobcd_fm_fm1(R_WORKOFFDAY,1);
                  					huifu_use_fm_fm1(R_WORKOFFDAY_PRICE,1);
                  					huifu_use_fm_fm1(R_CHAOBIAORI,2);
                  					huifu_use_fm_fm1(R_CHAOBIAORI2,2);   //--20081220-add--lzh----
                  					huifu_use_fm_fm1(R_CHAOBIAORI3,2);   //--20081220-add--lzh----
	            					break;
					case 29:
							keydir_prog=0;
							keydir_prog=0;
							keydir_updisplay=0;
	        					huifu_use_fm_fm1(R_HUACHA,1);
               					huifu_use_fm_fm1(R_XULIANGZHOUQI,1); 
               					huifu_use_fm_fm1(R_PLUSEMODE,4);
               					huifu_use_fm_fm1(R_KWHMODE_F,1);
               					huifu_use_fm_fm1(R_KWHMODE_R,1);
               					huifu_use_fm_fm1(R_KVARHMODE_F,1);
              		 			huifu_use_fm_fm1(R_KVARHMODE_R,1);
               					huifu_use_fm_fm1(R_FREEZE_TIME,4);
               					break;
					case 30:
               					huifu_use_fm_fm1(R_LOSTV_CONDITION,5);
							// changed by zhanglong ---->start
							huifu_use_fm_fm1(R_LOSTI_CONDITION,4);
							// changed by zhanglong ---->end
               					huifu_use_fm_fm1(R_OVER_KW_CONDITION,4);
               					huifu_use_fm_fm1(R_OVER_KW_ABC_CONDITION,4);
               					huifu_use_fm_fm1(R_DISPLAY_TIMER,1);
               					huifu_use_fm_fm1(R_WAKE_MODE,1);
               					huifu_use_fm_fm1(R_BOUD,1);
               					if(RAM[R_BOUD]>5)
			 					RAM[R_BOUD]=1;
               					break;
					case 31:
               					huifu_use_fm_fm1(R_RECORD_START_TIME,4);
               					huifu_use_fm_fm1(R_RECORD_INTERVAL_1,12);
               					huifu_use_fm_fm1(R_PROGRAM_TIME,1);
               					huifu_use_fm_fm1(R_LOSTV_ACK_TIME,1);
               					huifu_use_fm_fm1(R_LOSTI_ACK_TIME,1);
               					huifu_use_fm_fm1(R_ALLLOSTV_CONDITION,5);
               					huifu_use_fm_fm1(R_KWPLUS_MODE,1);
               					break;
					case 32:	  
               					huifu_use(R_MAIN_CUOFENG_START_1,16);
               					break;
 					case 33:
               					huifu_use(R_SUB_CUOFENG_START_1,16);
               					break;
					case 34:
	        					huifu_use(R_MAIN_CUOFENG_VALUE_CONDITION,6);
		 					program_function();
               					break;
					case 35:
               					huifu_use(R_PRICE_SWITCH,18);     
               					break;
					case 37:
	       					gdisplay_auto_key_comm();
              					break;
					case 39:  // mcu
              					i=1;
             						if((0x7&ta0ic)==0) 
								i=0;
             						// if(ta0!=125) // VALUE==100us
							//	i=0;
							asm("NOP");// 1
							asm("NOP");// 2
							asm("NOP");// 3
							asm("NOP");// 4
							asm("NOP");// 5
							asm("NOP");// 6
							asm("NOP");// 7
							asm("NOP");// 8
							asm("NOP");// 9
             						if(ta0mr!=0x40) 
								i=0;
             						if(ta0s!=1) 
								i=0;
             						if(i==0)
             							{
             								asm("FCLR I");
             								asm("NOP");
             								asm("NOP");
             								asm("NOP");
             								asm("NOP");
             								timer_a0_10ms_set();
             								asm("NOP");
             								asm("NOP");
             								asm("NOP");
             								asm("NOP");
             								asm("FSET I");
             							}
             						i=1;
             						if(ta1mr!=0xc0) 
								i=0;
             						//if(ta1!=1023) 
							 //       i=0;
							asm("NOP");// 1
							asm("NOP");// 2
							asm("NOP");// 3
							asm("NOP");// 4
							asm("NOP");// 5
							asm("NOP");// 6
							asm("NOP");// 7
							asm("NOP");// 8
							asm("NOP");// 9
             						if(udf0!=0) 
								i=0;
             						if(ta1s==0) 
								i=0;
             						if((0x7&ta1ic)==0) 
								i=0;
              					if(i==0)
             							{
             								asm("FCLR I");
             								asm("NOP");
             								asm("NOP");
             								asm("NOP");
             								asm("NOP");
             								time_1s_a1_set();
             								asm("NOP");
             								asm("NOP");
             								asm("NOP");
             								asm("NOP");
             								asm("FSET I");
             							}
             						if(((0x7&int1ic)==0)||((0x7&int2ic)==0))
            							{
             								asm("FCLR I");
             								asm("NOP");
            	 							asm("NOP");
             								asm("NOP");
             								asm("NOP");
             								int12set();
             								asm("NOP");
             								asm("NOP");
             								asm("NOP");
             								asm("NOP");
             								asm("FSET I");
             							}
             						break;
					case 40: // long ping diang liang

            						if(progfunction_kwh_f_price==yes)
		    						if(0==longpingdianliang(&RAM[R_KWH_F_BAKA]))
									dianliang_write(0);
	      						if(progfunction_kwh_r_price==yes)
		    						if(0==longpingdianliang(&RAM[R_KWH_F_BAKA+20]))
									dianliang_write(5);	
	      						if(progfunction_kvarh_f_price==yes)
		    						if(0==longpingdianliang(&RAM[R_KWH_F_BAKA+40]))
									dianliang_write(10);	
	      						if(progfunction_kvarh_r_price==yes)
		    						if(0==longpingdianliang(&RAM[R_KWH_F_BAKA+60]))
									dianliang_write(15);            
             						break;             	
        				}
				// 485
	if(RSTATUS_485_1==SEND) 
    		{
    			if(tongxun_use4851_second!=RSOFT_RTC_SECOND)
    				{
    					tongxun_use4851_second=RSOFT_RTC_SECOND;
         				num_check_485=num_check_485+1;
         			}
    		}
	else 
			num_check_485=0;
	if(num_check_485>=20) 
    		{
    			num_check_485=0;
      			RSTATUS_485_1=RERR;
       		asm("FCLR I");
       		asm("NOP");
       		asm("NOP");
       		asm("NOP");
       		asm("NOP");
       		init_485_1();
       		init_remote();
       		asm("NOP");
       		asm("NOP");
       		asm("NOP");
       		asm("NOP");
       		asm("FSET I");
		}
	if(1==sum_u2rb) 
		{
			asm("NOP");
   			asm("NOP");
   			asm("NOP");
   			asm("NOP");
   			asm("NOP");
   			asm("NOP");
   			asm("NOP");
   			asm("NOP");
   			if(1==sum_u2rb) 
   				{
   					asm("FCLR I");
       				asm("NOP");
       				asm("NOP");
       				asm("NOP");
       				asm("NOP");
       				init_485_1();
       				init_remote();
       				asm("NOP");
       				asm("NOP");
       				asm("NOP");
       				asm("NOP");
       				asm("FSET I");
  				}
		}
	if(RSTATUS_485_1==START)
  		if(((0x7&s2ric)!=7)||((0xef&u2mr)!=0x6)||(0==re_u2c1))  // pp6   yao kong bu fa song de bu te lv  add 2003-8-26
  			{
  				asm("FCLR I");
       			asm("NOP");
       			asm("NOP");
       			asm("NOP");
       			asm("NOP");
       			init_485_1();
       			init_remote();
       			asm("NOP");
       			asm("NOP");
       			asm("NOP");
       			asm("NOP");
       			asm("FSET I");
			}
 	if(boud_use==RAM[R_BOUD])
   		{
   			if((u2brg!=table_brg_value_from_boud[boud_use])||(u2c0!=table_u2c0_value_form_boud[boud_use]))
 	  			{
 	    				u2brg=table_brg_value_from_boud[boud_use];
           				u2c0=table_u2c0_value_form_boud[boud_use];
         			}
   		}
	// 485-0
	if(RSTATUS_485_0==SEND) 
    		{
    			if(tongxun_use4850_second!=RSOFT_RTC_SECOND)
    				{
    					tongxun_use4850_second=RSOFT_RTC_SECOND;
         				num_check_485_0=num_check_485_0+1;
         			}
    		}
	else 
			num_check_485_0=0;
	if(num_check_485_0>=20) 
    		{
    			num_check_485_0=0;
      			RSTATUS_485_0=RERR;
       		asm("FCLR I");
       		asm("NOP");
       		asm("NOP");
       		asm("NOP");
       		asm("NOP");
       		init_485_0();
       		asm("NOP");
       		asm("NOP");
       		asm("NOP");
       		asm("NOP");
       		asm("FSET I");
		}
	if(1==sum_u0rb) 
		{ 
			asm("NOP");
   			asm("NOP");
   			asm("NOP");
   			asm("NOP");
   			asm("NOP");
   			asm("NOP");
   			asm("NOP");
   			asm("NOP");
   			if(1==sum_u0rb) 
   				{
   					asm("FCLR I");
       				asm("NOP");
       				asm("NOP");
       				asm("NOP");
       				asm("NOP");
       				init_485_0();
       				asm("NOP");
       				asm("NOP");
       				asm("NOP");
       				asm("NOP");
       				asm("FSET I");
  				}
		}
	if(RSTATUS_485_0==START)
  		if(((0x7&s0ric)!=7)||((0xef&u0mr)!=0x6)||(0==re_u0c1))  // pp6   yao kong bu fa song de bu te lv  add 2003-8-26
  			{
  				asm("FCLR I");
       			asm("NOP");
       			asm("NOP");
       			asm("NOP");
       			asm("NOP");
       			init_485_0();
       			asm("NOP");
       			asm("NOP");
       			asm("NOP");
       			asm("NOP");
       			asm("FSET I");
			}
	//changed 2003-7-8----->start
 	if(boud_use_0==RAM[R_BOUD])
   		{
   			if((u0brg!=table_brg_value_from_boud_0[boud_use_0])||(u0c0!=table_u0c0_value_form_boud[boud_use_0]))
 	  			{
 	    				u0brg=table_brg_value_from_boud_0[boud_use_0];
           				u0c0=table_u0c0_value_form_boud[boud_use_0];
        			 }
   		}
}
// remote
if(remote_status==remote_phase_start)
	if((0x7&int3ic)!=7)
   		{
   			if((0x7&tb0ic)!=7) 
				remote_status=remote_phase_err;
     			else
  	   			if(tb0s!=1)  
					remote_status=remote_phase_err;
		}     
if(remote_status==remote_phase_send) 
    	{ 
    		if(tongxun_useremote_second!=RSOFT_RTC_SECOND)
  	   		{
  	   			tongxun_useremote_second=RSOFT_RTC_SECOND;
           			num_check_remote=num_check_remote+1;}
     			}
		else 
				num_check_remote=0;
		if(num_check_remote>20)
			{
				num_check_remote=0;
  				remote_status=remote_phase_err;
       			asm("FCLR I");
       			asm("NOP");
       			asm("NOP");
       			asm("NOP");
       			asm("NOP");
       			init_485_1();
       			init_remote();
       			init_ta2();//l2003--8-27 add changed
       			asm("NOP");
       			asm("NOP");
       			asm("NOP");
       			asm("NOP");
       			asm("FSET I");
			}
		if(RLCD_DISPLAY_STATUS>5) 
    			{
      				set_reference_value(FIRST_REFERENCE);      
      				RPOINT_AUTO_DISPLAY=0;
      				RLCD_DISPLAY_STATUS=DISPLAY_AUTO;
      				RDISPLAY_TIMER=1;
			}
		if(DISPLAY_DATA_TIME_WEEK>2) 
			DISPLAY_DATA_TIME_WEEK=0;
		if(RSTATUS_RUN>3) 
			RSTATUS_RUN=RUN;//add4 factroy
		if(RSTATUS_485_1>3) 
			RSTATUS_485_1=RERR;
		if(RSTATUS_485_0>3) 
			RSTATUS_485_0=RERR;
		if(remote_status>5) 
			remote_status=remote_phase_err;
		if(lost_v_quadrant>6) 
			lost_v_quadrant=lost_v_no;
		if(cut_v_quadrant>6)  
			cut_v_quadrant=cut_v_no;
}
           
             
             	

     































⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -