70 lines
1.3 KiB
C++
70 lines
1.3 KiB
C++
|
#include <cstdio>
|
||
|
|
||
|
#include <stdio.h>
|
||
|
#include "pico/stdlib.h"
|
||
|
|
||
|
#include "pcf85063a.hpp"
|
||
|
|
||
|
using namespace pimoroni;
|
||
|
|
||
|
PCF85063A rtc;
|
||
|
|
||
|
int main() {
|
||
|
// keep the pico awake by holding vsys_en high
|
||
|
gpio_set_function(2, GPIO_FUNC_SIO);
|
||
|
gpio_set_dir(2, GPIO_OUT);
|
||
|
gpio_put(2, true);
|
||
|
|
||
|
stdio_init_all();
|
||
|
|
||
|
printf("woken up!\n");
|
||
|
|
||
|
// turn on led to show we're awake
|
||
|
gpio_set_function(6, GPIO_FUNC_SIO);
|
||
|
gpio_set_dir(6, GPIO_OUT);
|
||
|
gpio_put(6, true);
|
||
|
|
||
|
|
||
|
rtc.init();
|
||
|
rtc.configure(PCF85063A::CLEAR_ALARM_FLAG);
|
||
|
// rtc.setup(false);
|
||
|
|
||
|
|
||
|
|
||
|
// Make sure we have 24-hour time (smaller display!)
|
||
|
// if(rtc.is_12_hour())
|
||
|
//rtc.set_24_hour();
|
||
|
datetime_t now = {
|
||
|
.year = 2022, .month = 5, .day = 27,
|
||
|
.hour = 12, .min = 29, .sec = 14
|
||
|
};
|
||
|
rtc.set_datetime(&now);
|
||
|
|
||
|
// stay awake for 1 second
|
||
|
sleep_ms(1000);
|
||
|
|
||
|
// shuold wake up 4 seconds after going to sleep
|
||
|
rtc.set_seconds_timer(3);
|
||
|
|
||
|
|
||
|
// printf("going to sleep!\n");
|
||
|
|
||
|
// go to sleep by driving vsys_en low
|
||
|
//gpio_put(2, false);
|
||
|
gpio_set_dir(2, GPIO_IN);
|
||
|
|
||
|
/*
|
||
|
while(true) {
|
||
|
datetime_t dt = rtc.get_datetime();
|
||
|
printf(
|
||
|
"%04d-%02d-%02d %02d:%02d:%02d\n",
|
||
|
dt.year, dt.month, dt.day,
|
||
|
dt.hour, dt.min, dt.sec
|
||
|
);
|
||
|
|
||
|
sleep_ms(1000);
|
||
|
}
|
||
|
*/
|
||
|
return 0;
|
||
|
}
|