и снова преславутая Тинька85...

Soy

✩✩✩✩✩✩✩
12 Мар 2021
12
0
Друзья, дело вот в чем: В Arduino IDE есть несколько ядер для поддержки камней ATTiny: ATTinyCore (optiboot,digispark, nobootloader...), DigistampAVRBoard, DIY ATTiny и ATTiny microcontrollers.

Для прошивки Digispark'а я использую ядро DigistampAVRBoard, для работы с голым камнем ATTinyCore optiboot в котором в меню настройки есть пункт Timer 1 Clock и выбор коэффициента деления, где по умолчанию коэффициент деления равен частоте ядра (т.е. 1).

В своем коде я использую Timer1, где устанавливаю прескалер clk/64, однако же походу создается впечатление, что выбор коэффициента деления через меню имеет больший приоритет, поскольку мои настройки похоже что сбрасываются (или не имеют значения) и это видно по осциллограмме. Но, как только выставить коэффициент деления через меню, то все работает нормально.

Почему это происходит? Может из-за инициализации таймера отвечающего за millis() и micros()? Но судя по wiring.c для этого используется Timer0, или все же Timer1?

Какой таймер для millis() и micros() используется в ядре DigistampAVRBoard? Поиск в интернете не чего конкретное не дает (ответы разнятся).

Как определить включен ли PLL для 85 тиньки, поскольку ядро ATTiny microcontrollers лишено выбора коэффициента деления, но в то же время при выборе частоты ядра 16мГц(PLL), макрос F_CPU возвращает 8мГЦ.

Заранее спасибо!