我写了一个ADC10序列通道重复转换模式的代码,但没法用,求高手指点

2019-03-24 13:45发布

#include<msp430g2553.h>
unsigned int a[3];
unsigned int i=0;
void main(void) {
        WDTCTL=WDTPW+WDTHOLD;
        P1OUT=0;
        ADC10CTL0|=ADC10ON+ADC10IE+REFON+REF2_5V+SREF_1+MSC;
        ADC10CTL1|=INCH_2+CONSEQ_3;
        ADC10DTC1|=0X01;
        ADC10AE0|=0X07;
        P1DIR=BIT0+BIT6;
        while(1)
        {
                ADC10CTL0&=~ENC;
                while(ADC10CTL1&ADC10BUSY);
                ADC10CTL0|=ADC10SC+ENC;
                ADC10SA=(unsigned int )a+i;
                __bis_SR_register(LPM0_bits+GIE);
                if(a>1)
                        P1OUT^=BIT0;
                else
                        P1OUT^=BIT6;
                i++;
                if(i>3)
                        i=0;
        }
}
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR(void)
{
        LPM0_EXIT;
}
我想用序列通道重复转换模式来转换3个通道的模拟量,可是每次i++后用于储存的数组后移了,但是ADC10SC的地址值却没有跟着移位,如何做到让每i++一次,通道也向后移一位? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
zhangchaoqun
2019-03-25 01:00
你知道怎么才能读取三次转换后寄存器里面的值吗

一周热门 更多>

相关问题

    相关文章