大家好、
我正在处理 MSP430 RTC。 我希望每0.125秒生成一次 RTC 中断。
我已附上我的代码供您参考 告诉我代码是否正确。
谢谢
#include "common.h"
void RTC(void)
{
RTCCTL0_H = RTCKEY_H; // Unlock RTC
RTCCTL1 = RTCBCD | RTCHOLD | RTCMODE; // RTC enable, BCD mode, RTC hold
RTCPS1CTL = RT1IP_3 | RT1PSIE;
RTCCTL1 &= ~(RTCHOLD); // Start RTC
}
#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=RTC_VECTOR
__interrupt void RTC_ISR(void)
#elif defined(__GNUC__)
void __attribute__ ((interrupt(RTC_VECTOR))) RTC_ISR (void)
#else
#error Compiler not supported!
#endif
{
switch(__even_in_range(RTCIV, RTCIV_RT1PSIFG))
{
case RTCIV_NONE: break; // No interrupts
case RTCIV_RTCOFIFG: break; // RTCOFIFG
case RTCIV_RTCRDYIFG: break; // RTCRDYIFG
case RTCIV_RTCTEVIFG: // RTCEVIFG
break;
case RTCIV_RTCAIFG: break; // RTCAIFG
case RTCIV_RT0PSIFG:
break; // RT0PSIFG
case RTCIV_RT1PSIFG:
count++; //increment count at every 0.125 second
break; // RTCRDYIFG
default: break;
}
}