RTC_PeriodicIntConfig(RTC_Per_128Hz); /* Enable the RTC interrupt */ VIC_ITCmd(RTC_ITLine, ENABLE); /* Configure the RTC interrupt priority */ VIC_Config(RTC_ITLine, VIC_IRQ, 0);
然后在第一个任务里开启RTC中断使能 RTC_ITConfig(RTC_IT_Per,ENABLE);
这个设置就是前面说的用MDK软件仿真经常去不掉RTC的中断标志位 在中断服务里是 void RTC_IRQHandler(void) { if(RTC_GetFlagStatus(RTC_FLAG_Per)) OSTimeTick(); } 照理来说执行if(RTC_GetFlagStatus(RTC_FLAG_Per))后,中断控制器中的RTC相应RawInt标志应该变为0,可这个标志经常不变,RTC的中断标志已经变了。 这个情况可能是MDK的问题。
TIM0中断的问题现在已经正常了,我也不知道怎么变正常的,真是见鬼了。
STR的资料读起来太累了。
|