×
嵌入式 > 技术百科 > 详情

msp430的一些常用的C语言控制程序---ADC12(1)

发布时间:2020-06-02 发布时间:
|
说说关于AD的程序吧:就写一下最简单的单通道单次采集吧:

//查询方式获取AD值
#include //我们的系统板子是msp430f149,所以得用这个头文件~
void ADC_Init(void);
unsigned ADC_Result;
void main(void){
       WDTCTL = WDTPW + WDTHOLD;
       ADC_Init();
      while(1){
          ADC12CTL0 |= ADC12SC;//ADC12SC 是当SAMPCON 由采样定时器产生,ADC12SC由0改为1启动转换 
          while(ADC12CTL1 & BIT0 == 1);//当ADC12BUSY == 1时等待
          ADC_Result = ADC12MEM0;//这块可单步运行时在IAR中观察到,或者有LED,可能对它处理一下显示~
    }
}
//
void ADC_Init(void)                      //初始化时钟 
{
    P6DIR &= ~BIT6;//设置p6.6为输入,这个口和板子上的接口有关.对了,149内置的是12位AD,精度足够一般用了
    P6SEL |= BIT6;  //选择P6.6的第二功能口 
    ADC12CTL0 = ADC12ON + REFON  + SHT0_6 ;//AD电源打开、参考电压打开、采样时间分频设置,一般6或8
    ADC12CTL0 &= ~REF2_5V;                              //选择1.5V参考电压,这个因为采集到的电压值变化有关
    ADC12CTL1 |= SHP + CONSEQ_0+ SHS_0;          //使用采样时钟,单通道单次采样        
    ADC12MCTL0 = SREF_1 + INCH_6;    //选择AD参考电压和输入通道  
    ADC12CTL0 |= ENC;    //ADC转化使能,此处一定得放在后面,要不结果容易出错
}

    这就是最简单的AD采集了,430还有另外三种模式,原理都差不多,就是多寄存器中的各位操作,这里我没有用中断模式,另外的三中模式得用中断方式来获得数据
 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
物联传感与Atmel强强联手 达成智能家居战略合作协议