test 8Mhz fail

This commit is contained in:
2024-02-14 17:19:53 +03:00
parent aedbe11af3
commit 882bd56d49
3 changed files with 15 additions and 11 deletions

View File

@ -8,8 +8,6 @@ class IR_Encoder : IR_FOX {
friend IR_Decoder;
friend void isr(IR_Encoder& e);
public:
uint8_t ir_out; /// @brief Вывод передатчика
uint16_t id; /// @brief Адрес передатчика
private:
@ -27,10 +25,20 @@ public:
// 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кГц
// DDRB |= (1 << PORTB3); //OC2A (17)
TCCR2A = 0;
TCCR2B = 0;
// TCCR2A |= (1 << COM2A0); //Переключение состояния
TCCR2A |= (1 << WGM21); // Clear Timer On Compare (Сброс по совпадению)
TCCR2B |= (1 << CS20); // Предделитель 1
TIMSK2 |= (1 << OCIE2A); // Прерывание по совпадению
#if F_CPU == 16000000
OCR2A = /* 465 */((F_CPU / (38000*2)) - 2); //38кГц
#elif F_CPU == 8000000
OCR2A = ((F_CPU / (38000 * 2)) - 2); //38кГц Частота_мк / (Предделитель * Частота * 2)
#endif
SREG = oldSREG; // Return interrupt settings
}