는 난 단지 Alarm_Status.bits.b3가 설정되지 않은 경우 내 count_float 0으로 다시 재설정 할 때 leakDetected = 0. 그러나 그것은 어떤 이유로 리셋 된 것으로 보이지 않습니다. 알람이 울리면 leakDetected를 1로 설정하여 카운터를 재설정 할 수 없습니다. 알람이 2 초 꺼지고 비활성화 된 경우 그러나 다시는 (2)의 수가 그것은 당신이 초기화되지 않은 count_float
를 사용하는 0카운터 문제 (C 프로그램)
{
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_만큼 답장을 보내려면 'int count_float'다음에';'가 있어야합니다. –
죄송합니다. 어떤 이유로 든 복사하지 못했습니다. – AutoCad1990
여기서 leakDetected는 0으로 설정되어 있습니까? –