在使用 SAMD Arduino 时,我发现自己需要多个警报,在中断时触发事件。
大多数人建议TimeAlarm.h
,这是一个与图书馆安排计时器和警报的Time.h
图书馆。不幸的是,警报不会在中断时间运行。
我没有添加 Time 和 TimeAlarms 库,而是提出了“菊花链”RTC 警报。我想知道这是好还是坏的做法。这样的东西能咬人吗?
代码快照:
void main() {
...
//set alarm at 16:0:0 and trigger Event_1 at interrupt time
rtc.enableAlarm(16,0,0);
rtc.attachInterrupt(Event_1_isr);
...
}
void Event_1_isr() {
...some code...
//Set next alarm and interrupt Event_2
rtc.setAlarmTime(16, 0, 15);
rtc.enableAlarm(rtc.MATCH_HHMMSS);
rtc.detachInterrupt();
rtc.attachInterrupt(Event_2_isr);
}
void Event_2_isr() {
...some code...
//I guess you get the point
rtc.setAlarmTime(16, 0, 30);
rtc.enableAlarm(rtc.MATCH_HHMMSS);
rtc.detachInterrupt();
rtc.attachInterrupt(Event_3_isr);
}