55 lines
1.2 KiB
C++
55 lines
1.2 KiB
C++
#include "pico/stdlib.h"
|
|
|
|
#include "breakout_rtc.hpp"
|
|
|
|
using namespace pimoroni;
|
|
|
|
I2C i2c(BOARD::BREAKOUT_GARDEN);
|
|
BreakoutRTC rtc(&i2c);
|
|
|
|
int main() {
|
|
stdio_init_all();
|
|
|
|
#ifdef PICO_DEFAULT_LED_PIN
|
|
gpio_init(PICO_DEFAULT_LED_PIN);
|
|
gpio_set_dir(PICO_DEFAULT_LED_PIN, GPIO_OUT);
|
|
#endif
|
|
|
|
if(!rtc.init()) {
|
|
printf("Init failed! Check your connections and i2c pin choices.\n");
|
|
}
|
|
//rtc.setup(false);
|
|
|
|
// Uncomment the below line on first run to set the RTC date and time to the program's compiler time
|
|
//rtc.set_to_compiler_time();
|
|
|
|
// Make sure we have 24-hour time
|
|
if(rtc.is_12_hour())
|
|
rtc.set_24_hour();
|
|
|
|
// Set to update once per second
|
|
rtc.enable_periodic_update_interrupt(true);
|
|
|
|
while(true) {
|
|
// Has a second passed?
|
|
if(rtc.read_periodic_update_interrupt_flag()) {
|
|
rtc.clear_periodic_update_interrupt_flag();
|
|
|
|
// Update the locally stored time from the RTC
|
|
if(rtc.update_time()) {
|
|
printf("Date: %s, Time: %s\n", rtc.string_date(), rtc.string_time());
|
|
#ifdef PICO_DEFAULT_LED_PIN
|
|
gpio_put(PICO_DEFAULT_LED_PIN, true);
|
|
#endif
|
|
sleep_ms(100);
|
|
#ifdef PICO_DEFAULT_LED_PIN
|
|
gpio_put(PICO_DEFAULT_LED_PIN, false);
|
|
#endif
|
|
}
|
|
}
|
|
sleep_ms(100);
|
|
}
|
|
|
|
return 0;
|
|
}
|