Make interrupts more safe
This commit is contained in:
parent
8588a53e37
commit
7afc5e23d6
|
@ -56,11 +56,11 @@ const int scanTimeout = 15000;
|
|||
String scannedCardId = "";
|
||||
String lastStatusText = "";
|
||||
|
||||
bool interruptFired = false;
|
||||
volatile bool interruptFired = false;
|
||||
unsigned long timer = 0;
|
||||
|
||||
void IRAM_ATTR TransactInterruptHandler() {
|
||||
if (interruptFired || state != STATE_IDLE) {
|
||||
if (interruptFired || state != STATE_IDLE || digitalRead(PIN_INTERRUPT_TRANSACT)) {
|
||||
return;
|
||||
}
|
||||
interruptFired = true;
|
||||
|
@ -68,7 +68,7 @@ void IRAM_ATTR TransactInterruptHandler() {
|
|||
}
|
||||
|
||||
void IRAM_ATTR LinkInterruptHandler() {
|
||||
if (interruptFired || state != STATE_IDLE) {
|
||||
if (interruptFired || state != STATE_IDLE || digitalRead(PIN_INTERRUPT_LINK)) {
|
||||
return;
|
||||
}
|
||||
interruptFired = true;
|
||||
|
@ -76,7 +76,7 @@ void IRAM_ATTR LinkInterruptHandler() {
|
|||
}
|
||||
|
||||
void IRAM_ATTR BalanceInterruptHandler() {
|
||||
if (interruptFired || state != STATE_IDLE) {
|
||||
if (interruptFired || state != STATE_IDLE || digitalRead(PIN_INTERRUPT_BALANCE)) {
|
||||
return;
|
||||
}
|
||||
interruptFired = true;
|
||||
|
@ -84,6 +84,8 @@ void IRAM_ATTR BalanceInterruptHandler() {
|
|||
}
|
||||
|
||||
void IRAM_ATTR CancelInterruptHandler() {
|
||||
if (digitalRead(PIN_INTERRUPT_LINK))
|
||||
return;
|
||||
state = STATE_IDLE;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue