ad_init.c

来自「MSP430单片机常用模块与综合系统实例精讲」· C语言 代码 · 共 56 行

C
56
字号
#include <MSP430X14X.h>
#include "ad_init.h"

void Init_ADC(void)
{
    P6SEL = 0X07;             //设置P6.0为模拟输入通道
    
    ADC12CTL0 &= ~(ENC);      //设置ENC为0,从而修改ADC12寄存器的值
    ADC12CTL1 |= CSTARTADD_0; //转换的起始地址为:ADCMEM0
    
    ADC12MCTL0 = INCH_0;      //设置参考电压分别为AVSS和AVCC,
                              //输入通道为A0
    ADC12MCTL1 = INCH_1;      //设置参考电压分别为AVSS和AVCC,
                              //输入通道为A1
    ADC12MCTL2 = INCH_2;      //设置参考电压分别为AVSS和AVCC,
                              //输入通道为A2
    ADC12MCTL3 = INCH_3;      //设置参考电压分别为AVSS和AVCC,
                              //输入通道为A3
    ADC12MCTL4 = INCH_4;      //设置参考电压分别为AVSS和AVCC,
                              //输入通道为A4
    ADC12MCTL5 = INCH_5;      //设置参考电压分别为AVSS和AVCC,
                              //输入通道为A5
    ADC12MCTL6 = INCH_6;      //设置参考电压分别为AVSS和AVCC,
                              //输入通道为A6
    ADC12MCTL7 = INCH_7 + EOS;//设置参考电压分别为AVSS和AVCC,
                              //输入通道为A6
    	    
    ADC12CTL0 |= ADC12ON;
    ADC12CTL0 |= MSC;
    
    
    ADC12CTL1 |= CONSEQ_1;    //转换模式为:多通道、单次转换
    
    ADC12CTL1 |= ADC12SSEL_1; //SMCLK
    ADC12CTL1 |= ADC12DIV_0;  //时钟分频为1
    ADC12CTL1 |= (SHP);	      //采样脉冲由采用定时器产生
                
    ADC12CTL0 |= ENC;         //使能ADC转换
    return;
}
void Init_TimerA(int time)
{
    TACTL = TASSEL1 + TACLR;  // 选择SMCLK,清除TAR
    TACTL += ID1;			
    TACTL += ID0;             // 1/8 SMCLK
    CCTL0 = CCIE;	      // CCR0 中断允许
    CCR0 = time;	      // 时间间隔
    TACTL |= MC0;	      // 增记数模式
    
    return;
}




⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?