关于RTC Alarm的问题【悬赏问答】
main(){
RTC_config();
Alarm_config();
for(;;)
{
halt();
}
}
void RTC_config(void)
{
CLK_LSEConfig(CLK_LSE_ON);
while(CLK_GetFlagStatus(CLK_FLAG_LSERDY)==RESET)
{
}
CLK_RTCClockConfig(CLK_RTCCLKSource_LSE,CLK_RTCCLKDiv_1);
CLK_PeripheralClockConfig(CLK_Peripheral_RTC,ENABLE);
RTC_WakeUpClockConfig(RTC_WakeUpClock_RTCCLK_Div16);
}
void Alarm_config(void)
{
RTC_AlarmStructInit(&RTC_AlarmStr);
RTC_AlarmStr.RTC_AlarmTime.RTC_Seconds = 5;
RTC_AlarmStr.RTC_AlarmMask = RTC_AlarmMask_DateWeekDay | RTC_AlarmMask_Hours| RTC_AlarmMask_Minutes;
RTC_SetAlarm(RTC_Format_BIN, &RTC_AlarmStr);
RTC_ITConfig(RTC_IT_ALRA, ENABLE);
RTC_AlarmCmd(ENABLE);
enableInterrupts();
}
以下为中断程式
INTERRUPT_HANDLER(RTC_CSSLSE_IRQHandler, 4)
{
GPIO_ToggleBits(GPIOB,GPIO_Pin_0);
RTC_ClearITPendingBit(RTC_IT_ALRA);
RTC_SetAlarm(RTC_Format_BIN, &RTC_AlarmStr);
}
PB0起始输出值为hi ,PB0输出为五秒HI然后拉low1分钟之后hi一分钟循环,怀疑是当RTC的秒数到5时才会发生Alarm,Alarm不是我设定5秒就是五秒会进入一次中断吗我是哪里设定错了
RE:关于RTC Alarm的问题
你在哪个halt();后面加个空语句看看。:DRE:关于RTC Alarm的问题
在HALT()后面加了一个空字节还是相同的情形5秒然后-分钟循环RE:关于RTC Alarm的问题
问题以解决因为小弟个人误解所以造成此问题RTC Alarm 为单一次中断并不会重复重断如果需要使用RTC Alarm重复中断须将RTC 重新初始化就可以时现每几秒或几分或几小时中断。而RTC 重复中断有另一个方式就是RTC wake up,只要设定好时间他就会不断重复中断。感谢大大提供的意见。回复:关于RTC Alarm的问题
以下是使用RTC Alarm 5秒重复Alarm 和500ms 重复wake up 的程式。编译程式为IARRE:关于RTC Alarm的问题【悬赏问答】
哦原来你是这个意思啊!:D回复:关于RTC Alarm的问题【悬赏问答】
正是我要找的,学习学习RE:关于RTC Alarm的问题【悬赏问答】
Alarm功能,是指和RTC对比来实现的。如果你想要固定5s的话,可以用TIM。 谢谢 下载看一下
页:
[1]