From aedbe11af352b1be4fcf6f72f064c91493b7a854 Mon Sep 17 00:00:00 2001 From: DashyFox Date: Tue, 13 Feb 2024 15:36:21 +0300 Subject: [PATCH] timer ini to static func --- IR_Encoder.h | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/IR_Encoder.h b/IR_Encoder.h index c9fb5e3..a7c6453 100644 --- a/IR_Encoder.h +++ b/IR_Encoder.h @@ -23,7 +23,19 @@ public: /// @param decPair Приёмник, для которого отключается приём в момент передачи передатчиком IR_Encoder(uint16_t addr, uint8_t pin, IR_Decoder* decPair = nullptr); - void IR_Encoder::setBlindDecoders(IR_Decoder* decoders[], uint8_t count); + static void timerSetup() { + // TIMER2 Ini + uint8_t oldSREG = SREG; // Save global interupts settings + cli(); + TCCR2A = (1 << WGM21); // Clear Timer On Compare (Сброс по совпадению) + TCCR2B = (1 << CS20); // Предделитель 1 + TIMSK2 |= (1 << OCIE2A); // Прерывание по совпадению + OCR2A = 465/* ((F_CPU / 38000) - 1) */; //38кГц + + SREG = oldSREG; // Return interrupt settings + } + + void IR_Encoder::setBlindDecoders(IR_Decoder* decoders [], uint8_t count); template void sendData(uint16_t addrTo, T& data, bool needAccept = false); void sendData(uint16_t addrTo, uint8_t* data, uint8_t len, bool needAccept = false);