编自CSX_锅!

ADC12:

  • 采样→保持→量化→编码
  • 12 bits;200ksps(kilo samples per second)
  • 逐次逼近法实现 analog to digital;

ADC12具有多路通道模拟输入,却只有一个__转换内核__,故需要__模拟多路通道__每次将待转换的通道接入转换内核。转换内核由__采样保持器__和__转换器__构成;


基准电压

所有的ADC/DAC都需要一个基准电压,即Vref+ & Vref-

reference voltage分为external和internal(on-chip)两种;可通过软件选择;

on-chip reference voltage 又有1.5V和2.5V两种选择;

REFON = 1;     //enable the internal reference
REF2_5 = 1;    //reference voltage is 2.5V

当模拟输入>=最大reference voltage 数字输出为 full scale;(反向同理)

Conversion Formula:(12位)

The reference can be turned off to save power when not in use!!


相关寄存器

转换控制寄存器

ADC12CTL0

ADC12CTL1

中断控制寄存器

ADC12IFG & ADC12IE & ADC12IV

储存控制寄存器

ADC12MCTLx --> 通道控制寄存器

ADC12MEMx --> 通道储存寄存器

!寄存器不同控制位作用详见用户手册(或下一篇笔记);TI用户手册网址


时钟源

ADC工作时同样需要时钟驱动;ADC12CLK;Possible clock source:

SMCLK、MCLK、ACLK、internal oscillator ADC12OSC;

  • Using ADC12SSELx bits to select source clock.
  • Clock can be divided from 1-8 using the ADC12DIVx bits.

转换模式

  • 单通道单次转换
  • 序列通道单次转换
  • 单通道多次转换
  • 序列通道多次转换

可采用软件查询式和中断查询式两种方式读取转换数值。


中断

共18个中断源,共用一个中断向量!


ENC must be set to 1 before any conversion can take place!

void InitADC()
{ADC12CTL1 |= ADC12SSEL_2;    //ADC时钟MCLKADC12CTL1 |= ADC12DIV_0;     //ADC二分频ADC12CTL0 |= SREF_1;         //ADC基准源选择内部基准源ADC12CTL0 |= REF2_5V;        //ADC基准源选择2.5VADC12CTL0 |= ADC12SHT_3;     //ADC采样保持时间ADC12CTL0 &= ~ADC12SR;       //ADC采样率ADC12CTL0 |= REFON;          //开启基准;ADC12CTL1 |= INCH_0;         //选择ADC输入通道ADC12CTL1 |= 0x0001;         //允许A0模拟输入ADC12CTL0 |= ADC12ON;        //开启ADC
}
uint16_t GetADCValue(void)
{ADC12CTL0 |= ENC + ADC12SC;while(ADC10CTL1&ADC10BUSY);return ADC12MEM;
}

The ADC12 can be turned off when not in use to save power!

Msp430学习笔记—ADC12(一)相关推荐

  1. MSP430学习笔记2---两个LED同时亮灭和顺闪

    参照学习笔记1,再看看板子上写着P1.0(LED1) P1.6(LED2)很容易写出同时点亮两个LED的程序: 1 #include <msp430x14x.h> 2 3 void mai ...

  2. MSP430学习笔记

           系统的复位电路由POR和PUC信号驱动.        一个POR信号之后,初始化MSP430的条件如下:在复位模式时,RST/NMI引脚被配置.I/O引脚被设置为输出.外围设备模块被初 ...

  3. MSP430学习笔记-定时器A

    16 位定时器 A 模块寄存器 TACTL TIMER_A 控制寄存器 15-10 9-8 Unused TASSELx 7-6 5-4 3 2 1 0 IDx MCx Unused TACLR TA ...

  4. MSP430学习笔记(2)定时器A

    欢迎访问我的个人网站:http://www.qingshuimonk.com/ 3.        定时器A: 所有MSP430系列的FLASH型单片机都含有定时器A(Timer_A),由一个16位定 ...

  5. MSP430学习笔记5-利用蜂鸣器演奏音乐

    这个小程序仍然是定时器的运用,比较简单,具体的地方都在注释中注明了,参考注释. /********************************************* 程序功能:MCU控制蜂鸣器 ...

  6. MSP430学习笔记6-动态数码管的显示

    这个程序主要部分是我改写的,程序把看门狗当做普通定时器使用,在看门狗中断中进行数码管扫描,另外我加入了显示的缓冲区,想在数码管上显示什么数字只需要对缓冲数组中的值进行操作即可.最后加入了小数点的操作, ...

  7. MSP430学习笔记11-八路ADC采集诺基亚5110液晶显示

    本程序采用的是八路ADC单次采集的模式,根据配置,在单次的模式下转换完成后ADC12SC会自动复位,因此需要在循环中进行ADC12CTL0 |= ADC12SC;操作,而如果配置成连续采集的模式,只需 ...

  8. MSP430F5529 DriverLib 库函数学习笔记(八)模数转换模块(ADC12)

    目录 硬知识 模数转换概述 MSP430单片机ADC12模块介绍 MSP430单片机ADC12模块操作 ADC12的转换模式 采样和转换 转换存储器 使用片内集成温度传感器 ADC12模块寄存器 AD ...

  9. UML时序图(Sequence Diagram)学习笔记

    UML时序图(Sequence Diagram)学习笔记 原创 SuperMan-zhang 最后发布于2018-07-04 14:37:25 阅读数 94844 收藏 发布于2018-07-04 1 ...

最新文章

  1. mysql5.7和8.0的区别_Windows Terminal 1.0 和 Linux 版有啥区别
  2. mysql delete 注意
  3. 类: property
  4. Linux安装/卸载软件教程
  5. Silverlight 2 学习笔记之事件的重复绑定问题
  6. 为什么企业需要IT资产管理
  7. 具有CompletableFuture的异步超时
  8. 二值化图像是什么?图像如何二值化?
  9. App Start Up Step
  10. SMT工艺培训一日谈
  11. 编程实践精华总结集锦系列1: SpringBoot/Maven/IDEA/Java/Kotlin/Redis等等
  12. 群晖Docker青龙面板部署方法V2.11.0
  13. linux bond双活跟主备的区别,“双活中心”比“主备”方式更可靠
  14. web.xml 3.0
  15. 复旦大学计算机学院教师简介,复旦大学计算机科学技术学院导师教师师资介绍简介-危辉...
  16. EDA程序设计--计时器设计
  17. ❤️❤️❤️Unity废柴看过来,手把手教你做植物大战僵尸(二)—— 序列帧动画
  18. hadoop配置、运行错误总结[一]
  19. 机器学习——“物以类聚,人以群分”之聚类分析(层次聚类,K-means)
  20. 实体词典 情感词典_基于词典的文本情感分析(附代码)

热门文章

  1. iPhone苹果手机语音备忘录M4A文件损坏显示时长无法播放修复方法
  2. 微信支付异常(“应答的微信支付签名验证失败“)记录
  3. 面向端到端的情感对话生成研究综述
  4. 基于S7-1200 PLC实现PIDNN控制仿真
  5. EduSoho网校系统产品更新:PPT动画转码
  6. css 使用 :placeholder-shown 实现MaterialDesign风格的交互
  7. Mono 3.2 测试NPinyin 中文转换拼音代码
  8. pythonGUI(二)基本元素之二
  9. 操作系统安装前的操心
  10. OD破解软件找断点方法系列【2】----万能断点法(XP系统)