|
求助!
我想采用定時器讀ADC采樣結(jié)果,外部還有程序上位機通過串口助手控制定時器的啟動。但是中斷中不能處理串口數(shù)據(jù)傳輸,若在中斷內(nèi)處理則,串口接收上位機數(shù)據(jù)的接收中斷被阻塞。若在中斷外部處理串口數(shù)據(jù)傳輸,則程序一直在定時器中斷中執(zhí)行,不大宋數(shù)據(jù)。請問有沒有什么好的辦法,在定時器中斷執(zhí)行一次后回到中斷源處繼續(xù)執(zhí)行主程序?
/***************************************************函數(shù)名稱:Timer初始化函數(shù)功能:***************************************************/void TimerA0Init(void){ TACTL = TASSEL1+TACLR; P1SEL |= BIT1; //CCTL0 = CCIE; BCSCTL1 |= DIVA_3; CCR0 = 800000; TACTL |= MC0;//+TAIE}
/*定時器中斷:讀轉(zhuǎn)換值,并通過串口發(fā)送到上位機*/
#pragma vector = TIMERA0_VECTOR
__interrupt void TimeA(void)
{
//P1SEL&=~BIT0;
//P1DIR|= BIT0;
ADC12CTL0 |= ADC12SC;
//ADC12CTL0&=~ENC;
result = ADC12MEM0;//讀轉(zhuǎn)換結(jié)果
/* if(result>FLAG) com1.fpSendString(&com1,"right\r\n",14); else com1.fpSendString(&com1,"error\r\n",14);*/
}
|
|