Initial Release
This commit is contained in:
61
rtc/rtc_alarm_repeat/rtc_alarm_repeat.c
Normal file
61
rtc/rtc_alarm_repeat/rtc_alarm_repeat.c
Normal file
@@ -0,0 +1,61 @@
|
||||
/**
|
||||
* Copyright (c) 2021 Raspberry Pi (Trading) Ltd.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "hardware/rtc.h"
|
||||
#include "pico/stdlib.h"
|
||||
#include "pico/util/datetime.h"
|
||||
|
||||
static volatile bool fired = false;
|
||||
|
||||
static void alarm_callback(void) {
|
||||
datetime_t t = {0};
|
||||
rtc_get_datetime(&t);
|
||||
char datetime_buf[256];
|
||||
char *datetime_str = &datetime_buf[0];
|
||||
datetime_to_str(datetime_str, sizeof(datetime_buf), &t);
|
||||
printf("Alarm Fired At %s\n", datetime_str);
|
||||
stdio_flush();
|
||||
fired = true;
|
||||
}
|
||||
|
||||
int main() {
|
||||
stdio_init_all();
|
||||
printf("RTC Alarm Repeat!\n");
|
||||
|
||||
// Start on Wednesday 13th January 2021 11:20:00
|
||||
datetime_t t = {
|
||||
.year = 2020,
|
||||
.month = 01,
|
||||
.day = 13,
|
||||
.dotw = 3, // 0 is Sunday, so 3 is Wednesday
|
||||
.hour = 11,
|
||||
.min = 20,
|
||||
.sec = 00
|
||||
};
|
||||
|
||||
// Start the RTC
|
||||
rtc_init();
|
||||
rtc_set_datetime(&t);
|
||||
|
||||
// Alarm once a minute
|
||||
datetime_t alarm = {
|
||||
.year = -1,
|
||||
.month = -1,
|
||||
.day = -1,
|
||||
.dotw = -1,
|
||||
.hour = -1,
|
||||
.min = -1,
|
||||
.sec = 00
|
||||
};
|
||||
|
||||
rtc_set_alarm(&alarm, &alarm_callback);
|
||||
|
||||
// Alarm will keep firing forever
|
||||
while(1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user