RTC定时器可以精确的提供用于钟表计时的周期信号
该芯片也具备内部的RTC时钟模块,可以用来实现精确的低速计时器功能
本示例将演示如何使用内部的低速时钟为RTC提供时钟源,设置为0.5s的定时溢出中断,在中断里翻转LED的IO,实现LED的1Hz周期的闪烁。
注意配置RTC计时器周期有2个选项,第一个是比较器的,第二个是周期的,这里使能的溢出中断对应的是周期信号的,所以是第二个
若配置如下为0.1s周期,则执行LED切换电平的频率为5Hz.
#include "mcc_generated_files/system/system.h"
#include"mcc_generated_files/timer/delay.h"
/*
Main application
*/
void rtc_handler(void)
{
YELLOW_LED_Toggle();
}
int main(void)
{
SYSTEM_Initialize();
RTC_SetOVFIsrCallback(rtc_handler);
Enable_global_interrupt();
while(1)
{
if(SW_GetValue())
{
// DELAY_milliseconds(500);
}
else
{
YELLOW_LED_SetHigh();
}
}
}
接下来讲解Periodic Interrupt Timer使用方法
配置如上所示,使能,设置计数周期,使能周期中断。
然后代码这么写
void rtc_handler(void)
{
YELLOW_LED_Toggle();
}
int main(void)
{
SYSTEM_Initialize();
Enable_global_interrupt();
RTC_SetPITIsrCallback(rtc_handler);
while(1)
{
if(SW_GetValue())
{
}
else
{
YELLOW_LED_SetHigh();
}
}
}
即可让PIT中断生效。
|