MSP430——AD10的DTC問(wèn)題
AD單通道單次轉換一次是沒(méi)有問(wèn)題的。
本文引用地址:http://dyxdggzs.com/article/201611/316481.htmADC10CTL0 = SREF_1+ADC10SHT_2 + REFON+ADC10ON+ ADC10IE ;
ADC10AE0 |= 0x40;
ADC10CTL1 = INCH_6;
ADC10CTL0 |= ENC + ADC10SC;
設置AD轉換,選擇通道6,使能通道6的模擬輸入,及一些相關(guān)信息。最后開(kāi)啟AD轉換。
接下來(lái)嘗試AD單通道連續轉換。
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,啟動(dòng)DTC。
在單次轉換時(shí),AD將轉換結果存入AD10MEM時(shí)就會(huì )產(chǎn)生中斷;在單通道多次轉換時(shí),啟動(dòng)DTC,那么,在一次完整的數據搬移之后才會(huì )產(chǎn)生中斷。(也就是說(shuō),開(kāi)啟了中斷,在進(jìn)入中斷程序之后,AD轉換已經(jīng)結束了,結果也已經(jīng)保存起來(lái)。)
在調試時(shí)犯了一個(gè)錯誤,就是在設置AD之前加了一條語(yǔ)句__bis_SR_register( CPUOFF + GIE );結果程序運行到下面一句設置AD時(shí),就執行不下去,死在哪里。呵呵……發(fā)現原來(lái)是把CPU給禁止了。
評論