📄 pulse.c
字号:
#pragma vector=PORT1_VECTOR
__interrupt void port1_ISR (void)
{
unsigned char i;
if(wakeup_status==wake_no){
wakeup_source=pulse_wakeup;
count_main=0;
count_main_max=20;
}
if(P1IN&PULSE_A) {
return;
}
for(i=0;i++;i<400){
if(P1IN&PULSE_A){
return;
}
}
if(P1IN&PULSE_B){
count_vlave=0;
timer_status |= valve_delay;
timer_status |= voice_delay;
count_voice=0;
if((count_main_max-count_main)<200){
count_main_max=220;
count_main=0;
}
return;
}
if(pulse_status==0){
return;
}
pulse_status=0;
#if 1
addbit=0x00;
water_data[water_consump+1]=bcd_add(water_data[water_consump+1],0x10);
water_data[water_consump+2]=bcd_add(water_data[water_consump+2],0x00);
water_data[water_consump+3]=bcd_add(water_data[water_consump+3],0x00);
water_data[water_consump+4]=bcd_add(water_data[water_consump+4],0x00);
#endif
IntFlag[0] |= IntFlag_pulseA;
}
#pragma vector=PORT1_VECTOR
__interrupt void port1_ISR (void)
{
unsigned char i;
if(wakeup_status==wake_no){
wakeup_source=pulse_wakeup;
count_main=0;
count_main_max=20;
}
if(P1IN&PULSE_B) {
return;
}
for(i=0;i++;i<400){
if(P1IN&PULSE_B){
return;
}
}
if(P1IN&PULSE_A){
count_vlave=0;
timer_status |= valve_delay;
timer_status |= voice_delay;
count_voice=0;
if((count_main_max-count_main)<200){
count_main_max=220;
count_main=0;
}
return;
}
if(pulse_status==1){
return;
}
pulse_status=1;
IntFlag[1] |= IntFlag_pulseB;
}
//BCD加一计算
unsigned char bcd_add(unsigned char source_1,unsigned char source_2)
{
unsigned char add_reg[3];
add_reg[0]=(source_1&0x0f)+addbit+source_2&0x0f;
if (add_reg[0]>=0x0a){
add_reg[0]-=0x0a;
add_reg[2]=0x10;
}
else{
add_reg[2]=0x00;
}
add_reg[1]= (source_1&0xf0)+add_reg[2]+source_2&0xf0;
if (add_reg[1]>0x90){
add_reg[1]=0x00;
addbit=0x01;
}
else{
addbit=0x00;
}
add_reg[2]=add_reg[0]|add_reg[1];
return(add_reg[2]);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -