用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 ;
}
Ling Zhu2:
你好,DCO 精度见 datasheet
建议加晶振对比一下结果。
灰小子:
dco误差较大,想要更精准建议使用外部晶振