📄 intfun.c
字号:
#include "MATH.H"
#include "STC12.H"
#include "function.h"
#include "pin.h"
#include "evariable.h"
// 空调高压中断
void InterruptEx0(void) interrupt 0
{
EX0=0;
if(k_pw)
{
alarm_Hpr=1;
}
// speaking();
}
// 空调低压中断
void InterruptEx1(void) interrupt 2
{
EX1=0;
if(k_pw)
{ alarm_Lpr=1;
}
// speaking();}
void InterruptTAWA(void) interrupt 6
{
unsigned long da;
CF=0;
//use PCA0 internal check relating variable
//every 2.7ms tiggle PCA0
if(k_pw)
{
if(CCF0) //use PCA0 as time
{
CCF0=0;
da=0;
da=(unsigned long)(CCAP0H*256)+(unsigned long)CCAP0L;
da=da+0x4682;
if(da>0xffff)
{
da=da-0xffff;
}
CCAP0L=(unsigned char)da;
CCAP0H=(unsigned char)(da/256);
CCF0_disp();
}
//pca2 interrupt indicate temperature rotary switch
//turning;and rising edge indicate clockwise direction;
//and falling edge indicate anti_clockwise;
if(CCF3==1)
{
CCF3=0;
//avoid with error triggle
//ECCF2=0
CCAPM3&=0xfe;
delay2(200);
if(!pin_windb)
{
CCF3_disp();
}
//delaly for 3ms
// delay2(4750);
delay2(2000);
CCF3=0;
CCAPM3|=0x01;
}
//pca3 interrupt indicate wind magnitude rotary switch
//turning;and rising edge indicate anti_clockwise;
//and falling edge indicate clockwise direction;
else if(CCF1)
{
CCF1=0;
//avoid with error triggle
//ECCF3=0
CCAPM1&=0xfe;
delay2(200);
if(!pin_testb)
{
CCF1_disp();
}
delay2(2000);
//delaly for 3ms
// delay2(4750);
CCF1=0;
CCAPM1|=0x01;
}
}
else
{
CCF0=0;
CCF1=0;
CCF3=0;
}
}
void CCF0_disp(void)
{
//time for common
if(freshair_aut)
{
if(state_fa==2)
{
cnt_fa++;
if(cnt_fa>17778)
{
F8m2m=1;
cnt_fa=0;
}
}
else if(state_fa==3)
{
cnt_fa++;
if(cnt_fa>4444)
{
F8m2m=1;
cnt_fa=0;
}
}
}
if(((alarm_Hpr==1)&&(state_Hp==1))||(((alarm&0x01)==1)&&(state_Hp==3)))
{
cnt_Hp++;
if(cnt_Hp>185)
{
F5sHp=1;
cnt_Hp=0;
}
}
if(((alarm_Lpr==1)&&(state_Lp==1))||(((alarm&0x02)==2)&&(state_Lp==3)))
{
cnt_Lp++;
if(cnt_Lp>185)
{
F5sLp=1;
cnt_Lp=0;
}
}
if((alarm&0x0c)&&(state_Sens==1)) //sensor failure --alarm:bit2 open --00
{ // bit3 short --50
cnt_Sens++;
if(cnt_Sens>185)
{
F5sSens=1;
cnt_Sens=0;
}
}
if((WA_changed)&&(alarm==0))
{
cnt_WA++;
if(cnt_WA>90)
{
F2sWA=1;
cnt_WA=0;
}
}
if(state_ref==1)
{
cnt_Ref++;
if(cnt_Ref>185)
{
F5sRef=1;
cnt_Ref=0;
}
}
if((ee_changed==1)&&(state_Ee==1))
{
cnt_Ee++;
if(cnt_Ee>185)
{
F5sEe=1;
cnt_Ee=0;
}
}
if((display_resume==1)&&(state_Resume==1))
{
cnt_Resume++;
if(cnt_Resume>185)
{
F5sResume=1;
cnt_Resume=0;
}
}
if(alarm)
{
cnt_Speaking++;
}
cnt_Display++;
}
void CCF1_disp(void)
{
if(pin_testa==0)//clockwise direction
{
if(da_TA>15)
{
da_TA--;
display_TA=1;
}
}
else if(pin_testa==1)//anti_clockwise
{
if(da_TA<30)
{
da_TA++;
display_TA=1;
}
}
}
void CCF3_disp(void)
{
if(pin_winda==1)//anti_clockwise
{
if(da_WA<99)
{
da_WA++;
display_WA=1;
}
}
else if(pin_winda==0)//clockwise direction
{
if(da_WA>0)
{
da_WA--;
display_WA=1;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -