msp430adc程序

时间:2016-05-29 15:52:09
【文件属性】:

文件名称:msp430adc程序

文件大小:4KB

文件格式:C

更新时间:2016-05-29 15:52:09

adc12

msp430adc模数转换的c语言程序/**************************************************************************** 文件名:adc12.c 编写者:czhang 描述:ADC12模块程序。用于14xx系列。 MCLK:DCO ACLK:32.768kHz 版本:2005-4 V1.0 *****************************************************************************/ #include #include "adc12.h" unsigned char Wait=0; //等待转换结束的标志位 0:没有结束;1:结束 unsigned int AdMem[16]; //转换结果缓冲区 #define AD_CI 10 unsigned char AdCi=AD_CI; //单通道或者序列多次转换的转换次数 #define DUO_CI 0 //0:单通道或者序列单次转换 1:单通道或者序列多次转换 /**************************************************************************** 初始化 ****************************************************************************/ void Adc12Init() { ADC12CTL0 &= ~ENC; //使AD模块处于初始状态 ADC12CTL0 = MSC+REFON+REF2_5V+SHT0_15+SHT1_15; //使用内部2.5V参考电压,使用采样保持器。 } /**************************************************************************** 打开或关闭ADC12模块 doit: 0:打开 100:关闭 ****************************************************************************/ void Adc12Open(unsigned char doit) { if(doit==0) { ADC12CTL0 |= ADC12ON; ADC12CTL0 |= ENC; //允许转换 } else if(doit==100) { ADC12CTL0 &= ~ADC12ON; //不允许转换 ADC12CTL0 &= ~ENC; } } /**************************************************************************** 设置转换模式 adr:转换的首地址。取值范围为0~15 mod:转换模式。 0:单通道单次 1:序列通道单次 2:单通道多次 3:序列通道多次 ****************************************************************************/ void AdcDo(unsigned int adr,unsigned char mod) { ADC12CTL1 = (adr<<12)+SHP+(mod<<1); //SHP意思为由采样定时器控制采样 } /**************************************************************************** 设置通道 tongdao:选择的模拟输入通道,取值范围为0~15 eos: 0表示序列没有结束,0x80表示在序列转换时,表示本次转换结束后,本转换序列结束。 mem:转换存储器控制寄存器,取值: 0~15 verf:参考电压,取值范围为0~7 inter: 0:本通道转换完后不引发中断 1:本通道转换完后引发中断 ****************************************************************************/ void SetTongDao(unsigned char tongdao,unsigned char eos,unsigned char mem,unsigned char verf,unsigned char inter) { char *pmem_ctl= ADC12MCTL; pmem_ctl += mem; *pmem_ctl = tongdao+ eos + (verf<<4); if(inter==0) ADC12IE &= ~(0x1<


网友评论