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