|
1、调试环境
msp430f5438a + iar7.10
2、调试代码
- void rtc_init(void)
- {
- RTCCTL01 |= RTCAIE + RTCRDYIE + RTCHOLD + RTCMODE;
- RTCAMIN = RTCAE;
- RTCAHOUR = 0x00;
- RTCADOW = 0x00;
- RTCADAY = 0x00;
- RTCCTL01 &= ~(RTCHOLD);
- }
复制代码
- #pragma vector = RTC_VECTOR
- __interrupt void RTC_ISR(void)
- {
- _EINT();
- switch (__even_in_range(RTCIV, 16))
- {
- case RTC_NONE:
- _NOP();
- break;
- case RTC_RTCRDYIFG: //注释1:如果不开启中断嵌套(不使用_EINT()),则可以正常进入RTCRDY中断
- _NOP();
- break;
- case RTC_RTCTEVIFG:
- _NOP();
- break;
- case RTC_RTCAIFG:
- _NOP();
- break;
- case RTC_RT0PSIFG:
- _NOP();
- break;
- case RTC_RT1PSIFG:
- _NOP();
- break;
- case 12:
- _NOP();
- break;
- case 14: //注释2:如果开启中断嵌套(使用_EINT()),调试发现,程序执行到此处,而这里是保留区域
- _NOP();
- break;
- case 16:
- _NOP();
- break;
- default:
- _NOP();
- break;
- }
- }
复制代码
3、调试现象
当RTC中断中不开启中断嵌套,则程序每秒钟可正常进入RTCRDY中断,如程序中的注释1;
当RTC中断中开启中断嵌套,则程序每秒钟将进入case 14位置,如程序中的注释2;
真的是百思不得其解!恳请各位指教,不胜感激!
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|