Так что микро, которое я использую, является PIC 18F.C-Pic Counter issue
Если установлено Alarm_Status.bits.b3, который по существу является просто переключателем, создается тревога. Первый фрагмент кода работает так, как должно
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
DU_Reason.bits.EmergencyDialIn=1; // alarm!
}
}
Alarm_Status.bits.b3=0; // Bund Sw Open
}
else Alarm_Status.bits.b3=1; // Bund Sw Closed
BC(TRISB,7);
Однако я хочу тревожить только если переключатель установлен в течение определенного периода времени вместо того, когда переключатель установлен прямо away.The функция вызывается каждый второй. Может ли кто-нибудь указать мне направление, в котором я ошибаюсь.
int count = 0;
int fixedCount = 20;
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 +=10; //count increased by 10
}
if(count == fixedCount) {
DU_Reason.bits.EmergencyDialIn=1;// alarm!
count = 0;
}
}
Alarm_Status.bits.b3=0; // Bund Sw Open
}
else
count = 0;
Alarm_Status.bits.b3=1; // Bund Sw Closed
BC(TRISB,7);
'переменная count' должна быть глобальной. –
«Бунд» не английский, не так ли? Это похоже на важное слово. – unwind
Показывает, что вы знаете, это английский, вы когда-нибудь слышали о датчике привязки, очевидно, нет. Во всяком случае, спасибо Алекс, заявив, что он во всем мире отлично справился. – NewLook