MSP430——AD10的DTC问题
AD单通道单次转换一次是没有问题的。
本文引用地址://m.amcfsurvey.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单通道连续转换。
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时,就执行不下去,死在哪里。呵呵……发现原来是把CPU给禁止了。
评论