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

📄 alarm.h

📁 嵌入式单片机开发,嵌入式单片机开发,嵌入式单片机开发
💻 H
字号:
// led speek
#define speekcontrol R_ALARMCONTROL_SPEEK1
#define greenledcontrol R_ALARMCONTROL_GREEN1
#define yellowledcontrol R_ALARMCONTROL_RED1
unsigned char speek;
unsigned char green;
unsigned char yellow;
unsigned char ledspeekuse_minute;
//unsigned char num_time_dospeek;
#define trunon 1
#define trunoff 0
unsigned char current_speekstatus;

// add dan xiang gong lv fan xiang gu ya cuo feng xu liang chao xiang
#define speekcontrol1 R_ALARMCONTROL_SPEEK2
#define greenledcontrol1 R_ALARMCONTROL_GREEN2
#define yellowledcontrol1 R_ALARMCONTROL_RED2
unsigned char speek1;
unsigned char green1;
unsigned char yellow1;
unsigned char num_time_dospeek;
void ledspeekset()
{
speek=0;
green=0;
yellow=0;
speek1=0;
green1=0;
yellow1=0;
yellowledclr;
greenledclr;
speekclr;
yellowleddir=1;
greenleddir=1;
speekdir=1;
yellowledclr;
greenledclr;
speekclr;
current_speekstatus=trunoff;
num_time_dospeek=0;
arm_cuofeng=0;
}

const unsigned char ledspeektable[]={0x1,0x2,0x4,0x8,0x10,0x20,0x40,00};
// value 0--nogood   type 0--iic 1--rtc 2--v 3--kw 4--order 5--lost i 6--  lost v  
// 0 1 in program rtc io_write,read
// 2 --- ledspeekmode
// speek set ----with a time( rom minute)
void do_ledspeek(value,type)
unsigned char value,type;
{unsigned char a;
if(type<7)
	{
		a=ledspeektable[type];
 		if((value==0)&&((a&RAM[speekcontrol])==a)) 
			speek=(speek|a);
 		else 
			speek=(speek&(~a));
 		if((value==0)&&((a&RAM[greenledcontrol])==a))
			green=(green|a);
		else 
			green=(green&(~a));
 		if((value==0)&&((a&RAM[yellowledcontrol])==a)) 
			yellow=(yellow|a);
 		else 
			yellow=(yellow&(~a));
	}
}

void do_ledspeek1(value,type)
unsigned char value,type;
{unsigned char a;
if(type<7)
	{
		a=ledspeektable[type];
 		if((value==0)&&((a&RAM[speekcontrol1])==a)) 
			speek1=(speek1|a);
 		else 
			speek1=(speek1&(~a));
 		if((value==0)&&((a&RAM[greenledcontrol1])==a)) 
			green1=(green1|a);
 		else 
			green1=(green1&(~a));
 		if((value==0)&&((a&RAM[yellowledcontrol1])==a)) 
			yellow1=(yellow1|a);
 		else 
			yellow1=(yellow1&(~a));
	}
}

void ledspeekmode()
{
unsigned char a;
// qian ya
//if((current_v_a_status==v_exceed_down)
   // ||(current_v_b_status==v_exceed_down)
   // ||(current_v_c_status==v_exceed_down))
     //  do_ledspeek(0,2);
//else do_ledspeek(1,2);
// guo zai 3
if((over_kwh_status==guozai)
    ||(over_kwh_status_a==guozai)
    ||(over_kwh_status_b==guozai)
    ||(over_kwh_status_c==guozai))
       do_ledspeek(0,3);
else 
	do_ledspeek(1,3);
// ni xiang xu   order
//if((0x80&status_5460_1)==0) do_ledspeek(1,4);
if(current_order_quadrant==f_order) 
	do_ledspeek(1,4);
else 
	do_ledspeek(0,4);

// lost v
if(lost_v_quadrant!=lost_v_no) 
	do_ledspeek(0,6);
else 
	do_ledspeek(1,6);

// dan xiang gong lv fan xiang
if((current_order_a_kw==r_order)||(current_order_b_kw==r_order)||(current_order_c_kw==r_order))
        do_ledspeek1(0,0);
else
	do_ledspeek1(1,0);

// guo ya
//if((current_v_a_status==v_exceed_up)
    //||(current_v_b_status==v_exceed_up)
    //||(current_v_c_status==v_exceed_up))
     //  do_ledspeek1(0,1);
//else do_ledspeek1(1,1);

// cuo feng xu liang bao jing
if(progfunction_cuofeng==yes)
	{
  		if(arm_cuofeng==1)  
			do_ledspeek1(0,2);
  		else 
			do_ledspeek1(1,2);	
	}
//if(RAM[R_BATTERY_V+1]<0x50)
	//do_ledspeek1(0, 3);
//else
	//do_ledspeek1(1,3);
if(((0x7f&speek)==0)&&((0xf&speek1)==0))   
   	{
   		speekclr;
     		current_speekstatus=trunoff;
      		num_time_dospeek=0;
	}
else
     	 current_speekstatus=trunon;
if(current_speekstatus==trunoff) 
	speekclr;
if(num_time_dospeek>=timevalue_speek) 
	speekclr;
if(((0x7f&green)!=0)||((0xf&green1)!=0)) 
	greenledset;
else 
	greenledclr;
if(((0x7f&yellow)!=0)||((0xf&yellow1)!=0)) 
	yellowledset;
else 
	yellowledclr;
 }































⌨️ 快捷键说明

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