关于MSP430G2553的AD采样问题

2019-07-15 16:11发布

求问下面这段程序有什么问题吗?
#include"msp430g2553.h"
unsigned char c[32];
unsigned int e=0;
void main(void) {
        P1DIR|=BIT0+BIT6;
        P1OUT=BIT0+BIT6+BIT1;
        P1SEL|=0x01;//使能ADC通道A0
        ADC10CTL0|=REFON+REF2_5V+ADC10IE+SREF_1;
        ADC10CTL1|=INCH_0+CONSEQ_2;//最大采样通道为A0,采用序列单通道连续采样的模式
        ADC10CTL0|=ADC10SSEL_1;
        ADC10DTC1|=0X20;//每一个通道连续采样32次
        _EINT();

        ADC10CTL0|=ENC;//开始采样
        while(1)
        {
                ADC10CTL0&=~ENC;//关闭采样使能
                while(ADC10CTL1&ADC10BUSY);//判断是否有采样或转换动作
                ADC10CTL0|=ENC;//开始采样
        }


}
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR(void)
{
           unsigned int b,d=0;
       P1OUT^=BIT0+BIT6;
       c[e]=ADC10MEM;
       e++;
       if(e==32)
       {

               for(b=0;b<=31;b++)
               {
                       d=d+c[b];
               }
       }
       b=b/32;
       P1OUT=b;
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
符亮
1楼-- · 2019-07-15 19:57
太感谢l楼主的慷慨了,提供那么详细的资料!!!
符亮
2楼-- · 2019-07-15 22:21
而且AD采样的思路和老师讲的基本都差不多!!
monkeys
3楼-- · 2019-07-16 02:40
好深奥,真的好深奥

一周热门 更多>