查了下论坛有些人问RTC 闹钟中断的问题,看到有些人有疑问,我把我的代码贴上去,战舰的实现是没有问题的。。基于 RTC实验修改的。。以下是修改的。
记住在main 函数加上 beep_init() 这个函数,不然蜂鸣器不会响。。
void RTC_IRQHandler(void)
{
if(RTC->CRL&0x0001) //秒钟中断
{
RTC_Get(); //更新时间
}
if(RTC->CRL&0x0002) //闹钟中断
{
RTC->CRL&=~(0x0002); //清闹钟中断
RTC_Get(); //更新时间
printf("Alarm Time:%d-%d-%d %d:%d:%d
",calendar.w_year,calendar.w_month,calendar.w_date,calendar.hour,calendar.min,calendar.sec);//输出闹铃时间
RTC->CRH |=1<<1; //开启闹铃
BEEP = 1; // 蜂鸣器
delay_ms(200);
BEEP=0;
}
RTC->CRL&=0X0FFA; //清除溢出,秒钟中断标志
while(!(RTC->CRL&(1<<5))); //等待RTC寄存器操作完成
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>