isSubOverflow

This commit is contained in:
DashyFox 2024-02-29 15:58:53 +03:00
parent c2506fe1dc
commit 960b3064cb
2 changed files with 10 additions and 10 deletions

View File

@ -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; }

View File

@ -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, если происходит приём пакета
//////////////////////////////////////////////////////////////////////////