Доброго всем времени суток. Понадобилось собрать таймер. Да еще и такой, чтобы микросекунды считал. Собиралось это все на плате с atmega32u4 (клон arduino). Поставил резонатор на 16 МГц. Младший фьюз-бит прошит значением 0xFF. По идее таймер должен работать с частотой 16 Мгц. Таймер работает в режиме СТС с делителем равным единице. По подсчетам получается, что период у таймера 62.5 нс (1 / 16000000). В байте сравнения стоит значение 0x0F (в OCR0A). Прерывание по совпадению разрешено. В прерывании происходит декремент переменной. По идее, он должен срабатывать каждую микросекунду (62.5 * 16 = 1000 нс = 1 мкс). А вот фиг там. Ведет он себя вообще странно. Выставляю, чтобы отсчитал секунду, а он примерно восемь считает. Инициализировал OCR0A значением 0х00 — тоже примерно восемь секунд (измерить вообще нечем). Задал 0хFF — около 16 секунд. Где мой промах и чего я не учел? Питается плата от USB. Заранее спасибо за помощь.
Ответ на:
комментарий
от Puzan
Ответ на:
комментарий
от Puzan
Ответ на:
комментарий
от ddos3
Ответ на:
комментарий
от Puzan
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум AVR (2008)
- Форум avr & eeprom_update_block() (2024)
- Форум Таймер (2013)
- Форум Таймеры (2013)
- Форум Таймеры (2009)
- Форум Таймеры! (2003)
- Форум Таймер (2002)
- Форум QTCreator & AVR, подсветка «нестандартных/AVR типов» (2018)
- Галерея AVR-котэ (2011)
- Форум AVR программатор (2013)