test 8Mhz fail

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

View File

@ -6,10 +6,6 @@
#define TestOut 13
IR_Encoder::IR_Encoder(uint16_t addr, uint8_t pin, IR_Decoder* decPair = nullptr) {
// sendBuffer = new uint8_t[dataByteSizeMax] { 0 };
ir_out = pin;
pinMode(ir_out, OUTPUT);
id = addr;
this->decPair = decPair;
signal = noSignal;

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
}

View File

@ -76,7 +76,7 @@ typedef uint16_t crc_t;
#ifndef freeFrec
#define freeFrec true
#endif
#define subBufferSize 17 //Буфер для складирования фронтов, пока их не обработают (передатчик)
#define subBufferSize 15 //Буфер для складирования фронтов, пока их не обработают (передатчик)
#define preambPulse 3