ARDUINO Часы на ГРИ v2. Обсуждение проекта

Bruzzer

★★★★✩✩✩
23 Май 2020
757
229
Скомпилировать проект с ключом -DF_CPU=8000000
Этого мало. Там таймера настраиваются через регистры.

То . o_Kirill_o Вам надо убедиться, что ваша нана работает на 8 МГц. Может быть она работает на 1 МГц.
 

bort707

★★★★★★✩
21 Сен 2020
3,361
971
Этого мало. Там таймера настраиваются через регистры.
Нет, если ядро реально работает на 8 МГц, смены значения F_CPU достаточно.
Регистры таймеров тоже настраиваются исходя из значения F_CPU
Посмотрите файл boards.txt. Там нет другой настройки частоты кроме этого флага.

Буду признателен за цитирование кода, который настраивает таймеры в АВР в обход системной переменной F_CPU
 

Sergo_ST

★★★★★★✩
15 Мар 2020
1,116
901
@bort707, В данной прошивке вручную настраивается частота для таймеров 1(шим преобразователя) и 2(динамическая индикация), поэтому изменение дефа F_CPU не повлияет на их работу)

C++:
// задаем частоту ШИМ на 9 и 10 выводах 31 кГц
  TCCR1B = TCCR1B & 0b11111000 | 1;    // ставим делитель 1
C++:
// перенастраиваем частоту ШИМ на пинах 3 и 11 на 7.8 кГц и разрешаем прерывания COMPA
  TCCR2B = (TCCR2B & B11111000) | 2;    // делитель 8
 
Изменено:

Bruzzer

★★★★✩✩✩
23 Май 2020
757
229
можно немного подправить исходник чтоб прошивка корректно работала и на 8МГц.
О возможной пользе существования прошивки для 8МГц.
Встречал в теме (этой или соседней) неоднократные предупреждения, что на 328PB работа не гарантируется.
Судя по даташиту, в значимых для данного проекта аспектах 328PB отличается от 328P
  • чуть меньшей нагрузочной способностью портов. Но на мой взгляд незначительной.
  • кварцевый резонатор работает в экономичном режиме, и как написано в даташите - более подвержен сбоям в зашумленных средах.
Т.к. помехи в данном проекте могут быть значительны, то возможно это и является причиной не работы 328PB.
Если у вас будет прошивка модифицированная под 8 МГц, то возможно она может быть полезна владельцам 328PB. В случае не работы 328PB на штатной прошивке, можно будет перевести его на внутренний генератор и проверить, поможет ли прошивка для 8 МГц.
(У меня нет и не будет таких часов. С 328PB тоже дела не имел. Код и схему смотрю из любопытства.)
 

bort707

★★★★★★✩
21 Сен 2020
3,361
971
В данной прошивке вручную настраивается частота для таймеров
ну тогда извиняйте :)
Хотя это означает. что это не я ошибся, а код написан неправильно ( не в общем виде :)
В правильном коде все задержки и таймеры высчитываются от системной частоты.
 

Sergo_ST

★★★★★★✩
15 Мар 2020
1,116
901
@Bruzzer, Да, я уже скинул прошивку на тест @filter91, если всё ок будет прикреплю тут на всякий случай)

@bort707, Если рассматривать в концепции проекта ардуино наверное да... Или проектах где требуется пересобирать прошивку под разную частоту тактирования...

Но нужно учитывать, что настройка таймеров не такая уж и гибкая, и получить нужные тайминги не всегда получается на всех частотах тактирования...
А если учесть что один таймер может использоваться для нескольких разных задач одновременно, то это ещё сильнее усложняет ситуацию гибкой подстройкой под разную частоту тактирования...