Прочитать значение регистра в arduino
Я хочу прочитать значение регистра (8-битного). В частности, я хочу прочитать значения:
- Таймер/счетчик — TCNT0 ( Адрес 0x26 (0x46) )
- Выходные регистры сравнения — OCR0A и OCR0B.
Есть ли способ прочитать их с помощью программы Arduino?
@Ugo Mela, 👍1
Обсуждение1 ответ
Лучший ответ:
▲ 3
Чтобы преобразовать мои комментарии в ответ:
Вы можете использовать имена регистров напрямую. Они определены в ядре платы/чипа. Чтобы прочитать их, просто используйте имена в своих расчетах. Запишите в регистры, установив значение имени регистра (например, переменную: TCNT0 = 0;
). Обязательно загляните в таблицу данных, чтобы проверить поведение этого регистра.
,
@chrisl
Как уже отмечалось, проверьте таблицу данных — некоторые флаги регистров очищаются (обнуляются), записывая в них 1., @jose can u c
Смотрите также:
- Печать string and integer LCD
- Почему мои часы реального времени показывают неверное время с моего ПК?
- Arduino uno + cnc Shield v3 + драйвер шагового двигателя A4988 + AccelStepper?
- Отправьте несколько значений int из Python в Arduino, используя pySerial
- Глобальные переменные занимают много места в динамической памяти.
- (Код ультразвукового датчика: такого файла или каталога нет)
- rfid_default_keys проверить с помощью RC522
- Команда strtok() с Serial связью
Как насчет того, чтобы просто использовать их в своей программе? Вы можете использовать имена регистров напрямую, @chrisl
@chrisl Итак, является ли вывод Serial.print(TCNT0, BIN) текущим значением (в двоичном формате) регистра?, @Ugo Mela
Да, это должно сработать. В Интернете можно увидеть много кода, где таймеры настраиваются путем прямой записи в регистры. Можешь попробовать. Запишите значение в регистр и прочитайте его обратно. Однако, если вы используете ядро Arduino, счетчик timer0 изменится, поскольку он используется для
millis()
и родственных ему элементов. Вы можете попробовать это с отключенным в данный момент таймером., @chrisl