本帖最后由 leshak 于 2013-2-5 14:16 编辑
折腾了几天定时器,死活也搞不出来,没用外部晶振,用的是内部DCO,现将代码复制如下:
#include "io430.h"
void main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
DCOCTL|=0x60;
BCSCTL1|=0x83; //DC0 4.25M RSELx=11,DCOx=3 MODx=0 3V 4.25 MHz
BCSCTL2|=0x00;
CCTL1|=CCIE;
CCR1=42500-1; //准备10ms定时
TACTL = TASSEL_2+MC_1+TAIE+TACLR; //TIMA=SMCLK UP MODE开中断 清计数器
P2DIR=0X01; //P2.0输出 对应TIMER1 A
__bis_SR_register(LPM0_bits+GIE) ; //开启中断一定要进入低功耗模式嘛?
}
#pragma vector=TIMER1_A1_VECTOR
__interrupt void Timer_A (void)
{
switch( TAIV )
{
case 2:break;
case 4: P2OUT^=0X01; // Capture/compare blocks TACCR1, TACCR2
case 10:break;
}
}
不知道哪里出了问题,测P2.0就一直是高电平,还望高手指点下,谢谢了
|