fix nullptr

This commit is contained in:
DashyFox 2024-03-01 17:54:15 +03:00
parent af6041c5ae
commit 5547bec263

View File

@ -26,7 +26,7 @@ void IR_DecoderRaw::isr() {
if (firstUnHandledFront == &subBuffer[currentSubBufferIndex]) { // Если контроллер не успел обработать новый сигнал, принудительно пропускаем его
firstUnHandledFront = firstUnHandledFront->next;
isSubBufferOverflow = true;
#ifdef IRDEBUG_INFO
// Serial.println();
Serial.println(" ISR BUFFER OVERFLOW ");
@ -81,11 +81,12 @@ void IR_DecoderRaw::listenStart() {
void IR_DecoderRaw::tick() {
FrontStorage currentFront;
noInterrupts();
uint8_t oldSREG = SREG;
cli();
listenStart();
if (firstUnHandledFront == nullptr) { isSubBufferOverflow = false; interrupts(); return; } //Если данных нет - ничего не делаем
if (firstUnHandledFront == nullptr) { isSubBufferOverflow = false; SREG = oldSREG; return; } //Если данных нет - ничего не делаем
currentFront = *((FrontStorage*)firstUnHandledFront); //найти следующий необработанный фронт/спад
interrupts();
SREG = oldSREG;
if (currentFront.next == nullptr) { isRecive = false; return; }
////////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -272,7 +273,12 @@ void IR_DecoderRaw::tick() {
digitalWrite(writeOp, isPreamb);
#endif
////////////////////////////////////////////////////////////////////////////////////////////////////////////
firstUnHandledFront = firstUnHandledFront->next; //переместить флаг на следующий элемент для обработки (next or nullptr)
oldSREG = SREG;
cli();
if (firstUnHandledFront != nullptr) {
firstUnHandledFront = firstUnHandledFront->next; //переместить флаг на следующий элемент для обработки (next or nullptr)
}
SREG = oldSREG;
}
void IR_DecoderRaw::writeToBuffer(bool bit) {