MSP430——AD10的DTC問題
AD單通道單次轉換一次是沒有問題的。
本文引用地址:http://www.ex-cimer.com/article/201611/316481.htmADC10CTL0 = SREF_1+ADC10SHT_2 + REFON+ADC10ON+ ADC10IE ;
ADC10AE0 |= 0x40;
ADC10CTL1 = INCH_6;
ADC10CTL0 |= ENC + ADC10SC;
設置AD轉換,選擇通道6,使能通道6的模擬輸入,及一些相關信息。最后開啟AD轉換。
接下來嘗試AD單通道連續(xù)轉換。
ADC10CTL0|=SREF_0+ADC10SHT_2+MSC+ADC10IE+ADC10ON;
ADC10CTL1|=INCH_6+SHS_0+ADC10SSEL_0+CONSEQ_2;
ADC10AE0 |= 0x40;
ADC10DTC1 = 0x0A;
ADC10SA = 0x200;
ADC10CTL0 |= ENC + ADC10SC;
設置AD,啟動DTC。
在單次轉換時,AD將轉換結果存入AD10MEM時就會產生中斷;在單通道多次轉換時,啟動DTC,那么,在一次完整的數據搬移之后才會產生中斷。(也就是說,開啟了中斷,在進入中斷程序之后,AD轉換已經結束了,結果也已經保存起來。)
在調試時犯了一個錯誤,就是在設置AD之前加了一條語句__bis_SR_register( CPUOFF + GIE );結果程序運行到下面一句設置AD時,就執(zhí)行不下去,死在哪里。呵呵……發(fā)現原來是把CPU給禁止了。
評論