用MSP430g2553单片机,采用内部时钟,定时10s让LED亮,4s让LED灭,程序如下,我测试了,一分钟有一秒的误差,有没有例子,可以更精准一点,没有接外部晶振,谢谢!
#include "io430g2553.h"
#include "io430.h"
unsigned int i;
void main (void)
{
WDTCTL = WDTPW + WDTHOLD;
P2DIR|=BIT1;
P2OUT &= ~BIT1;
i=0;
while(CALBC1_1MHZ==0xff||CALDCO_1MHZ==0XFF);
BCSCTL1=CALBC1_1MHZ;
DCOCTL=CALDCO_1MHZ;
TA1CTL|=TASSEL_2+TACLR+MC_3+ID_3;
TA1CCTL0=CCIE;
TA1CCR0=65000;
__enable_interrupt(); //LPM4;
while(1);
}
#pragma vector=TIMER1_A0_VECTOR
__interrupt void ta10_isr(void)
{
i++;
if(i == 10)
{
P2OUT ^= BIT1;
}
else if(i==14)
{
P2OUT ^= BIT1;
i=0;
}
else ;
}