一。简略介绍:
ADC12模块中是由以下部分组成:输入的16路模仿开关(外部8路,内部4路),ADC内部电压参阅源,ADC12内核,ADC时钟源部分,收集与坚持/触发源部分,ADC数据输出部分,ADC操控寄存器等组成。
四种采样形式:
(1)单通道单次转化形式
(2)序列通道单词转化形式
(3)单通道屡次转化形式
(4)序列通道屡次转化形式
个人觉得(3)形式应该是运用较多的,
对选定的通道进行屡次转化,直到封闭该功用或ENC=0。进行如下设置:
x=CSStartAdd,指向转化开端地址
ADC12MEMx寄存转化成果
ADC12MCTLx寄存器中界说了通道和参阅电压
在这种形式下,改动转化形式,不必先中止转化,在当时正在进行的转化结束后,可改动转化形式。该形式的中止可有如下几种方法:
运用CONSEQ=0的方法,改动为单通道单次形式。
运用ENC=0直接使当时转化完结后中止。
运用单通道单次形式替换当时形式,一起使ENC=0
ADC12CTL0
ADC12CTL1
ADC12IE
ADC12IFG
ADC12IV
ADC12MEM0-15
ADC12MCTL0-15
一般做法:在大循环里开端转化,转化结束引发中止,咱们在中止里记载并处理转化数据。
二。ADC12寄存器阐明
———————————————————————–
寄存器类型
———————————————————————–
转化操控寄存器
———————————————————————–
中止操控寄存器
———————————————————————–
存储及其操控寄存器
———————————————————————–
1.ADC12CTL0
bit15~12
SHT1
ADC12SC——采样/转化操控位。在不同条件下,ADC12SC的意义如下所示:
——–|———————————————————————
ENC=1,
ISSH=0
——–|———————————————————————
ENC——转化答应位。
0:ADC12为初始状况,不能发动A/D转化;
1:初次转化由SAMPCON上升沿发动
ADC12TVIE——转化时刻溢出中止答应位(当时转化还没完结时,又产生一次采样恳求,则会产生转化时刻溢出)
0:没产生转化时刻溢出
1:产生转化时刻溢出
ADC12OVIE——溢出中止答应位(当ADC12MEMx华夏有数据还没有读出,而又有新的转化成果数据要写入时,则产生溢出)
0:没产生溢出
1:产生溢出
ADC12ON——ADC12内核操控位
0:封闭ADC12内核
1:翻开ADC12内核
REFON——参阅电压操控位
0:内部参阅电压产生器封闭
1:内部参阅电压产生器翻开
2.5V——内部参阅电压的电压值挑选位
0:挑选1.5V内部参阅电压
1:挑选2.5V内部参阅电压
MSC——屡次采样转化位(CONSEQ<>0表明当时转化形式不是单通道单次转化)
———–|———————————————————————————————
有用条件
SHP=1
CONSEQ<>0
———–|———————————————————————————————
SHT1、SHT0——采样坚持定时器1,采样坚持定时器0
别离界说保存在转化成果寄存器ADC12MEM8~ADC12MEM15和ADC12MEM0~ADC12MEM7中的转化采样时序与采样时钟ADC12CLK的联系。采样周期是ADC12CLK周期乘4的整数倍,即:
SHITx
n
2.ADC12CTL1
bit15~12
CSSTARTADD
CSSTARTADD——转化存储器地址位。该4位所表明的二进制数0~15别离对应ADC12MEM0~15。能够界说单次转化地址或序列转化的首地址。
SHS——采样触发输入源挑选位。
0:ADC12SC
1:Timer_A.OUT1
2:Timer_B.OUT0
3:Timer_B.OUT1
SHP——采样信号(SAMPCON)挑选操控位。
0:SAMPCON源自采样触发输入信号
1:SAMPCON源自采样定时器,由采样输入信号的上升沿触发采样定时器
ISSH——采样输入信号方向操控位
0:采样输入信号为同向输入
1:采样输入信号为反向输入
ADC12DIV——ADC12时钟源分频因子挑选位。分频因子为该3位二进制数加1
ADC12SSEL——ADC12内核时钟源挑选
0:ADC12内部时钟源——ADC12OSC
1:ACLK
2:MCLK
3:SMCLK
CONSEQ——转化形式挑选位
0:单通道单次转化形式
1:序列通道单次转化形式
2:单通道屡次转化形式
3:序列通道屡次转化形式
ADC12BUSY——ADC12忙标志(只用于单通道单次转化形式,在其它转化形式下,该位无效)
0:表明没有活动的操作
1:表明ADC12正处于采样期间、转化期间或序列转化期间
3.ADC12MEM0~ADC12MEM15
该组寄存器均为16位寄存器,用来寄存A/D转化成果。顶用其间低12位,高4位在读出时为0
4.ADC12MCTLx
关于每个转化存储器有一个对应的转化存储器操控寄存器,所以在进行CSSTARTADD转化存储器地址位设置的一起,也确认了ADC12MCTLx。该寄存器各位意义如下:
bit7
EOS
EOS——序列结束操控位
0:序列没有结束
1:该序列中最终一次转化
SREF——参阅电压源挑选位
0:Vr+=AVcc,Vr-=AVss
1:Vr+=VREF+,Vr-=AVss
2,3:Vr+=VEREF+,Vr-=AVss
4:Vr+=AVcc,Vr-=VREF-/VEREF-
5:Vr+=VREF+,Vr-=VREF-/VEREF-
6,7:Vr+=VEREF+,Vr-=VREF-/VEREF-
INCH——挑选模仿输入通道
0~7:A0~A7
8:VeREF+
9:VREF-/VeREF-
10:片内温度传感器的输出
11~15:(AVCC-AVSS)/2
5.ADC12IFG
bit15
IFG15
ADC12IFG.x置位:转化结束,而且转化成果现已装入转化存储寄存器。
ADC12IFG.x复位:ADC12MEMx被拜访。
6.ADC12IE
bit15
IE.15
ADC12IE.x=1:答应相应的中止标志位ADC12IFG.x在置位时产生的中止恳求服务。
ADC12IE.x=0:制止相应的中止标志位ADC12IFG.x在置位时产生的中止恳求服务。
7.ADC12IV
ADC12是一个多源中止:有18个中止标志(ADC12IFG.0~ADC12IFG.15与ADC12TOV,ADC12OV),但只要一个中止向量。所以需求设置这18个标志的优先级次序,依照优先级次序组织中止标志的呼应,高优先级的恳求能够中止正在服务的低优先级。
三。规范程序参阅:
#include “msp430x14x.h”
void InitADC12();
unsigned char wait;
int main( void )
{
}
void InitADC12()
{
}
#pragma vector=ADC_VECTOR
__interrupt void ADC()
{int result[7];
}
下面再来扼要的介绍一下这个模块不易了解的当地
1、MSP430能够运用内部、外部的参阅电压,内部1.5或2.5,外部0~3.3,能够经过寄存器设置,采样电压的输入规模最大为0~3.3即AVss~AVcc,不能检测负电压,假如需求检测负电压,能够运用运放,电压偏置成为正电压然后检测
2、运用外部AVss~AVcc作为参阅电压不行安稳,可是精度高,运用内部电压较安稳。
3、程序中一定要翻开大局中止_EINT();