void init_TB()
{
TBCTL|=TBSSEL_2; //TACLK=SMCLK
TBCCTL0|=CCIE;
TBCCR0=62500; //CCR0定时周期15.625ms
TBCCTL1|=CM_1+CCIS_0+SCS+CAP+CCIE; //CCR1上升沿捕获,
TBCTL|=MC_1; //增计数模式
}
#pragma vector=TIMERB1_VECTOR
__interrupt void Timer_a1(void)
{
PutString0("A1 ");
if(TBIV==2)
count++; //捕获一个脉冲,count加一
TBCCTL0|=CCIE;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
{
// 8MHz SMCLK
TACTL = TASSEL_2 + MC_2; // SMCLK, start in continuous mode
TACCTL0 = SCS + CM1 + CAP + CCIE; // Sync, Neg Edge, Capture, Int
TACCTL1 = SCS + CM1 + CAP + CCIE; // Sync, Neg Edge, Capture, Int
TACCTL2 = SCS + CM1 + CAP + CCIE; // Sync, Neg Edge, Capture, Int
}
这个是可以运行的。你看看你哪不对了,要是用这个可以也不能运行,你就找找别的地方了。
430的中断比较多,需要都确认打开的
一周热门 更多>