Библиотека RTClib вторая, вторая
Я использую RTClib для своего модуля DS3231, проблема в том, что библиотека отображает секунды без нуля: 22:1:1
и когда я печатаю время на моем ЖК-дисплее 16x2, время отображается следующим образом:
22:22:59
22:23:19
22:23:29
...
22:23:59
22:23:10
22:23:11
второе число секунд не очищается.
я знаю, что одним из решений этого является использование функции lcd.clear()
для обновления ЖК-дисплея в каждом цикле, но есть ли другой способ очистить это второе число или сделать что-то, чтобы библиотека показывала ноль за секунду?
@ElectronSurf, 👍0
Обсуждение1 ответ
Лучший ответ:
Правильный формат времени лежит на вас, а не на библиотеке. Библиотека просто дает вам номер. Если вам нужен начальный нуль, то вы можете указать этот начальный ноль.
Например:
if (now.seconds() < 10) {
lcd.print("0");
}
lcd.print(now.seconds());
Или:
char timestr[9];
snprintf(timestr, 9, "%02d:%02d:%02d", now.hours(), now.seconds(), now.minutes());
lcd.print(timestr);
что такое snprintf
? это дает мне эту ошибку: ожидаемый конструктор, деструктор или преобразование типа перед '(' token
, @ElectronSurf
@newbie: Это [очень стандартная функция libc](https://www.nongnu.org/avr-libc/user-manual/group__avr__stdio.html#ga77070c245d4ca4f7ec7d7144260fb875)., @Edgar Bonet
@EdgarBonet, извини, но в чем ошибка?, @ElectronSurf
Вы использовали код *внутри функции* или просто выгрузили его в глобальную область?, @Majenko
я виновен в том, что сбросил его в глобальную область... я знаю, что сейчас у меня головная боль, но не могли бы вы объяснить немного больше? @Маженко, @ElectronSurf
Поместите его в цикл(), где вы хотите отобразить время., @Majenko
@Majenko спасибо., @ElectronSurf
- Как подключить Wi-Fi Shield ESP-12E-ESP8266-UART-WIFI-Wireless-Shield к Arduino
- Разница между «time_t» и «DateTime»
- Создание таймера с использованием часов реального времени с указанием времени начала и остановки
- Глобальные переменные занимают много места в динамической памяти.
- Статус выхода 1 ожидаемое первичное выражение перед ']' Arduino
- Библиотека времени Arduino и библиотеки RTC
- Невозможно использовать библиотеку клавиатуры с Arduino UNO даже после смены прошивки.
- Ошибка: "'lcd' does not name a type" при использовании библиотеки LiquidCrystal.
Какое отношение високосные секунды имеют к чему-либо?, @Majenko
@Majenko извините, возникло недоразумение, обновил вопрос., @ElectronSurf
Ваша проблема в том, что вы печатаете 1. Люди не делают этого для времени. Вы используете 01., @Majenko
как использовать "01"? есть ли настройка, которую я должен изменить?, @ElectronSurf
Если секунд меньше десяти, выведите 0. Затем выведите секунды. Это так просто. Библиотека тут ни при чем. Важно то, что вы делаете с числом в коде., @Majenko
если вы опубликуете это как ответ, я выберу его как правильный ответ.
lcd.print(now.second());
., @ElectronSurf