中断中调用一函数, 语名,减到0不再往向减,事实上>0的判断不起作用.一直执行--操作. if ( (SignalFilterTimer.B0_TimerOFF>0) ) SignalFilterTimer.B0_TimerOFF--;
注:编译器为HI-TECHPICC-18pro9.61inpicc18.exe(demo)不知正版软件能否解决这个问题.
void SignalFilterTimerDec(void) {
if ( (SignalScanStatus.Bits.B0 == SCAN_FILTER_EN)&&(SignalFilterTimer.B0_TimerON>0) ) SignalFilterTimer.B0_TimerON--; if ( (SignalFilterTimer.B0_TimerOFF>0) ) SignalFilterTimer.B0_TimerOFF--; if ( (SignalScanStatus.Bits.B1 == SCAN_FILTER_EN)&&(SignalFilterTimer.B1_TimerON>0) ) SignalFilterTimer.B1_TimerON--; if ( SignalFilterTimer.B1_TimerOFF>0) SignalFilterTimer.B1_TimerOFF--; if ( (SignalScanStatus.Bits.B2 == SCAN_FILTER_EN)&&(SignalFilterTimer.B2_TimerON>0) ) SignalFilterTimer.B2_TimerON--; if ( SignalFilterTimer.B2_TimerOFF>0) SignalFilterTimer.B2_TimerOFF--; if ( (SignalScanStatus.Bits.B3 == SCAN_FILTER_EN)&&(SignalFilterTimer.B3_TimerON>0) ) SignalFilterTimer.B3_TimerON--; if ( SignalFilterTimer.B3_TimerOFF>0) SignalFilterTimer.B3_TimerOFF--; if ( (SignalScanStatus.Bits.B4 == SCAN_FILTER_EN)&&(SignalFilterTimer.B4_TimerON>0) ) SignalFilterTimer.B4_TimerON--; if ( SignalFilterTimer.B4_TimerOFF>0) SignalFilterTimer.B4_TimerOFF--; if ( (SignalScanStatus.Bits.B5 == SCAN_FILTER_EN)&&(SignalFilterTimer.B5_TimerON>0) ) SignalFilterTimer.B5_TimerON--; if ( SignalFilterTimer.B5_TimerOFF>0) SignalFilterTimer.B5_TimerOFF--; if ( (SignalScanStatus.Bits.B6 == SCAN_FILTER_EN)&&(SignalFilterTimer.B6_TimerON>0) ) SignalFilterTimer.B6_TimerON--; if ( SignalFilterTimer.B6_TimerOFF>0) SignalFilterTimer.B6_TimerOFF--; if ( (SignalScanStatus.Bits.B7 == SCAN_FILTER_EN)&&(SignalFilterTimer.B7_TimerON>0) ) SignalFilterTimer.B7_TimerON--; if ( SignalFilterTimer.B7_TimerOFF>0) SignalFilterTimer.B7_TimerOFF--;
} |