Прочитать значение регистра в arduino

Я хочу прочитать значение регистра (8-битного). В частности, я хочу прочитать значения:

  1. Таймер/счетчик — TCNT0 ( Адрес 0x26 (0x46) )
  2. Выходные регистры сравнения — OCR0A и OCR0B.

Есть ли способ прочитать их с помощью программы Arduino?

, 👍1

Обсуждение

Как насчет того, чтобы просто использовать их в своей программе? Вы можете использовать имена регистров напрямую, @chrisl

@chrisl Итак, является ли вывод Serial.print(TCNT0, BIN) текущим значением (в двоичном формате) регистра?, @Ugo Mela

Да, это должно сработать. В Интернете можно увидеть много кода, где таймеры настраиваются путем прямой записи в регистры. Можешь попробовать. Запишите значение в регистр и прочитайте его обратно. Однако, если вы используете ядро Arduino, счетчик timer0 изменится, поскольку он используется для millis() и родственных ему элементов. Вы можете попробовать это с отключенным в данный момент таймером., @chrisl


1 ответ


Лучший ответ:

3

Чтобы преобразовать мои комментарии в ответ:

Вы можете использовать имена регистров напрямую. Они определены в ядре платы/чипа. Чтобы прочитать их, просто используйте имена в своих расчетах. Запишите в регистры, установив значение имени регистра (например, переменную: TCNT0 = 0;). Обязательно загляните в таблицу данных, чтобы проверить поведение этого регистра.

,

Как уже отмечалось, проверьте таблицу данных — некоторые флаги регистров очищаются (обнуляются), записывая в них 1., @jose can u c