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?
@BartholomeusR, 👍0
Обсуждение0
Смотрите также:
- _delay_ms() работает намного медленнее, чем ожидалось (в 6 раз) на tinyAVR 0/1 (ATTiny1604)
- Приостанавливает ли delay() подсчет millis()?
- более низкая тактовая частота, чем ожидалось на attiny202
- Как справиться с rollover millis()?
- При использовании Arduino Uno в качестве ISP: "Yikes! Invalid device signature" - плохое соединение, неверную конфигурацию или неверную версию avrdude?
- Использование millis() и micros() внутри процедуры прерывания
- Связь ATtiny85 с компьютером через USB
- Получить доступ к EEPROM ATtiny с помощью кода Arduino?
Вы забыли депрограммировать CKDIV8?, @Ignacio Vazquez-Abrams
Проверка на делимость
millis()
на 1000 — ужасная идея. При тактовой частоте 16 МГц millis не учитывает каждую миллисекунду: он обновляется только каждые 1024 мкс и иногда прыгает на 2 мс., @Edgar BonetПожалуйста, опубликуйте конфигурацию предохранителей, @Talk2
Если вы конкретно укажете «гораздо больше времени», это поможет людям объяснить конкретную проблему, которую вы наблюдали. Как видите, существует несколько возможных интерпретаций проблемы., @Sean Houlihane