mirror of
https://github.com/Show-maket/IR-protocol.git
synced 2025-05-03 23:00:16 +00:00
isSubOverflow
This commit is contained in:
parent
c2506fe1dc
commit
960b3064cb
@ -21,11 +21,11 @@ void IR_DecoderRaw::isr() {
|
||||
|
||||
if (firstUnHandledFront == nullptr) {
|
||||
firstUnHandledFront = &subBuffer[currentSubBufferIndex]; // Если нет необработанных данных - добавляем их
|
||||
// isSubBufferOverflow = false;
|
||||
isSubBufferOverflow = false;
|
||||
} else {
|
||||
if (firstUnHandledFront == &subBuffer[currentSubBufferIndex]) { // Если контроллер не успел обработать новый сигнал, принудительно пропускаем его
|
||||
firstUnHandledFront = firstUnHandledFront->next;
|
||||
// isSubBufferOverflow = true;
|
||||
isSubBufferOverflow = true;
|
||||
#ifdef IRDEBUG_INFO
|
||||
// Serial.println();
|
||||
Serial.println(" ISR BUFFER OVERFLOW ");
|
||||
@ -82,7 +82,7 @@ void IR_DecoderRaw::tick() {
|
||||
FrontStorage currentFront;
|
||||
noInterrupts();
|
||||
listenStart();
|
||||
if (firstUnHandledFront == nullptr) {/* isSubBufferOverflow = false; */ interrupts(); return; } //Если данных нет - ничего не делаем
|
||||
if (firstUnHandledFront == nullptr) { isSubBufferOverflow = false; interrupts(); return; } //Если данных нет - ничего не делаем
|
||||
currentFront = *((FrontStorage*)firstUnHandledFront); //найти следующий необработанный фронт/спад
|
||||
interrupts();
|
||||
if (currentFront.next == nullptr) { isRecive = false; return; }
|
||||
|
@ -43,13 +43,13 @@ public:
|
||||
void tick(); // Обработка приёмника, необходима для работы
|
||||
|
||||
bool isOverflow() { return isBufferOverflow; }; // Буффер переполнился
|
||||
// bool isSubOverflow() { //TODO: При опросе volatile сваливается в постоянно true
|
||||
// uint8_t oldSREG = SREG;
|
||||
// cli();
|
||||
// bool ret = isSubBufferOverflow;
|
||||
// SREG = oldSREG;
|
||||
// return ret;
|
||||
// };
|
||||
bool isSubOverflow() {
|
||||
uint8_t oldSREG = SREG;
|
||||
cli();
|
||||
bool ret = isSubBufferOverflow;
|
||||
SREG = oldSREG;
|
||||
return ret;
|
||||
};
|
||||
bool isReciving() { return isBufferOverflow; }; // Возвращает true, если происходит приём пакета
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
Loading…
x
Reference in New Issue
Block a user