Я только хочу, чтобы мой count_float сбросить обратно в 0, когда Alarm_Status.bits.b3 не установлен, а когда leakDetected = 0. Однако по какой-то причине он никогда не сбрасывается. Когда будильник отключается, я помещаю leakDetected в 1, чтобы сбрасывать счетчик. Но если сигнал гаснет на 2 секунды и снова отключается он держит этот счетчик 2. Он должен сбросить на 0.Счетчик выпуск (C Program)
{
int count_float
int fixedCount = 50;
short leakDetected=0;
BS(TRISB,7); // Bund sw port=input.
DelayMs(2); // will rise is bund SW open
if(RB7){
if(Control.bits.BUND_ENABLE){ // if bund alarm enabled
if(Alarm_Status.bits.b3){ // if already set
count_float +=10; //count increased by 10
if(count_float == fixedCount) {
leakDetected=1;
DU_Reason.bits.EmergencyDialIn=1;// alarm!
}
}
if((!Alarm_Status.bits.b3)&&(!leakDetected)){
count_float=0;
}
}
} else {
Alarm_Status.bits.b3=1; // Bund Sw Closed
BC(TRISB,7);
}
}
Как и в случае с тем же _essence_ вашего вопроса, вам нужно иметь ';' after 'int count_float'. –
Извините, что он не скопировал по какой-то причине – AutoCad1990
где установлено leakDetected на ноль? –