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