初学msp430,有些问题想要求助

2019-03-24 08:53发布

首先是一个adc10的模块程序如下,不懂之处已标红,望有人给我解释解释,尤其是那个控制器1左移12是有什么意义,非常不解,谢谢了!
/*
* ADC10Conversion(unsigned char):
* 功能: adc10启动并根据传入采样通道完成一次采样
* 输入: 要采样的adc10的通道
* 输出: 一次完成的采样值
**/
unsigned int ADC10Conversion(unsigned char inch)
{
    //if(inch > 7)     /* ADC10 channel #0~7*/
        //return 0;
    if(inch > 7 && inch < 15)
        return 0;
   
    ADC10CTL0 &= ~ADC10SC;
    ADC10CTL0 &= ~ENC;
    ADC10CTL1  = ((unsigned int)inch << 12) + ADC10SSEL_3;     //input channel + clock source select SMCLK
    ADC10AE0   = BIT0 << inch;  //Analog input enabled
    ADC10CTL0 |= ENC + ADC10SC; //adc10 enabled + start sample and conversion
    ADC10CTL0 |= ADC10SC;
    while(ADC10CTL1 & ADC10BUSY);
    return ADC10MEM;
}
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
fangkaixin
2019-03-24 12:12
< :TI_MSP430_内容页_SA7 -->
supermiao123 发表于 2016-10-19 15:50
inch 应该是输入通道的意思,你这个是什么芯片,寄存器看着对应不上

msp430f2272
主要是看不懂为何前面的返回值要<15
还有后面一个控制寄存器1选择的通道左移12是什么意思

一周热门 更多>

相关问题

    相关文章