Таймер2
- Войдите на сайт для отправки комментариев
Пнд, 30/11/2015 - 22:31
Всем доброго вечера.
Вопрос такой, как настроить таймер2 на выдачу прерываний через 1 сек, т.к. какой делить, какой диапазон.
Вроде такая формула INTERRUPT_FREQ=CPU_FREQ/(ДЕЛИТЕЛЬ*(1+ОТСЧЕТЫ(НЕ БОЛЕЕ 256 ДЛЯ 8 битного)). Так? А то уже неодупляю
ermvad, формула правильная. 16000000/1024/256 -это минимальное кол-во прерываний в секунду, которое может сделать таймер2 чисто аппаратными средствами.
как я понял на 8битном таймере 1 секунду получить никак
Никак. Либо на таймер1, либо на вотчдоге.
На таймере 1 я столкнулся с некоторым дерьмецом. В режиме ИДЛ все работает как надо. В режиме ПВР СЕЙВ контроллер уходит в вечный сон. Как я понял отключается осциллятор на котором пашет таймер 1
на atmega 8/16 у меня это работает - 8-ю перевести контроллер на тактирование от внутреннего RC генератора и подключить кварц 32768Гц, 16-я имеет отдельные пины для подключения часового кварца.
unsigned long RTC_TIC_M16 = 0; ISR (TIMER2_OVF_vect) {RTC_TIC_M16++;} // обработка событий по прерыванию счётчика void setup() { /////////////////////////////////////////////////////////////////// cli(); // запрет прерываний глобально TIMSK &= ~(_BV(TOIE2) | _BV(OCIE2)); // отключение прерывания Таймера 2 ASSR |= _BV(AS2); // перевод Таймера 2 в асинхронный режим тактирования от кварцевого резонатора 32768Гц TCNT2 = 0x00; // начальная инициализация счётчика TCCR2 = 0x05; // установка коэффициента деления 128 OCR2 = 0x00; // совпадение с частотой 1 Гц while (ASSR & (_BV(TCN2UB) | _BV(OCR2UB) | _BV(TCR2UB))); // ждём готовности таймера TIMSK |= _BV(TOIE2); // разрешаем прерывание от Таймера 2 sei(); // разрешаем прерывания глобально /////////////////////////////////////////////////////////////////// } void loop() {}у вас атмега 8/16, у меня уно на 328р, как я понял надо припаивать кварц на 32кгц
у вас атмега 8/16, у меня уно на 328р, как я понял надо припаивать кварц на 32кгц
у меня этот код проверен на атмега8 и атмега16 - тебе нужно спросить у dimax , что нужно подправить для адаптации на 328р.
но общая идея делания RTC из дуино такова.
Всем спасибо за ответы. Пища для размышления получена. Бдем думать...