ATtiny44 millis() не работает с внешней тактовой частотой 16 МГц

Я использую ATtiny44 с Arduino IDE согласно этому руководству: http://highlowtech.org/?p=1695

У меня проблема с millis(). Когда я использую внутренние часы 1 МГц, они работают правильно, но когда я использую внешние часы 16 МГц, то millis() требуется гораздо больше времени, чем одна секунда, чтобы делиться на 1000.

Я протестировал его с LCD и скетчем Hello World, измененным для соответствия выводам ATtiny. Действительно ли millis() работает с Tiny?

Почему он работает правильно с частотой 1 МГц, а не с 16 МГц, которая используется в платформе Arduino?

, 👍0

Обсуждение

Вы забыли депрограммировать CKDIV8?, @Ignacio Vazquez-Abrams

Проверка на делимость millis() на 1000 — ужасная идея. При тактовой частоте 16 МГц millis не учитывает каждую миллисекунду: он обновляется только каждые 1024 мкс и иногда прыгает на 2 мс., @Edgar Bonet

Пожалуйста, опубликуйте конфигурацию предохранителей, @Talk2

Если вы конкретно укажете «гораздо больше времени», это поможет людям объяснить конкретную проблему, которую вы наблюдали. Как видите, существует несколько возможных интерпретаций проблемы., @Sean Houlihane