ADC10序列通道单次转换又读不到数据

2019-03-24 14:37发布

最近在学430,但是总遇到这样那样的问题,还请各位多多指点啊~~#include "msp430x21x2.h" void Delay(unsigned short time);unsigned  int ad_value[3]; void main(){     WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT   ADC10CTL0 = SREF_1+REFON+REF2_5V+ADC10SHT_2 + MSC+ADC10ON+ADC10IE; // ADC10ON, interrupt enabled   ADC10CTL1 = INCH_2+CONSEQ_1;  ADC10DTC1 = 0x03;                         // 3 conversions  ADC10AE0 |= 0x07;                         // P2.2,1,0 ADC10 option select  P1DIR =0X01;  Delay(1); while(1) {    //P1OUT |=0X01;    ADC10CTL0 &= ~ENC;    while (ADC10CTL1 & BUSY);               // Wait if ADC10 core is active    ADC10SA = (unsigned int)ad_value+1;                                            // Data buffer start    ADC10CTL0 |= ENC + ADC10SC;             // Sampling and conversion start        __bis_SR_register(CPUOFF + GIE);        // LPM0, ADC10_ISR will force exit        if(ad_value[0]>0)      P1OUT |=0X01;     } } 
#pragma vector=ADC10_VECTOR __interrupt void ADC10(void) {  _BIC_SR(CPUOFF);        // Clear CPUOFF bit from 0(SR) } 

void Delay(unsigned short time){    unsigned short i, j; for(; time > 0; time--)  {     for(j = 0; j < 10; j++)     {      for(i = 0; i < 100; i++);     }  }}
这是自已弄的一小段程序,想用数组把转换的数据读出来,数组的首地址送给ADC10SA,不知这样可对 ADC10SA = (unsigned int)ad_value+1;现在就是数组里面读不出东西,请各位帮着分析下,哪里出了问题的~~~ [ 本帖最后由 woody13 于 2012-3-10 16:05 编辑 ] 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
ckx提问
1楼-- · 2019-03-24 21:43
 精彩回答 2  元偷偷看……
鸵鸟蝈蝈
2楼-- · 2019-03-25 03:27
< :TI_MSP430_内容页_SA7 --> 例程试过了没有,能不能正常工作?
modernthink
3楼-- · 2019-03-25 04:16
ADC10SA的设置为啥要+1?那ad value「0」不会收到数据的啊
peter_zheng
4楼-- · 2019-03-25 05:25
 精彩回答 2  元偷偷看……
fangdikui
5楼-- · 2019-03-25 10:34
解决了没有呀,我也遇到了这个问题
fangel
6楼-- · 2019-03-25 13:29
你这里只有初始化和中断,连AD转换都没,怎么会有数据啊。又是数据溢出或者数据类型定义出错也会不出数据

一周热门 更多>

相关问题

    相关文章