历史上的今天

今天是:2024年10月10日(星期四)

正在发生

2019年10月10日 | MSP430学习笔记2-ADC12

发布者:CuriousObserver 来源: eefocus关键字:MSP430  ADC12  信号源 手机看文章 扫描二维码
随时随地手机看文章

开发版型号:SEED—MSP430F5529A


开发工具   :CCS 5.4v


以下内容是CCS中ADC12操作的一些简单的demo,现整理如下:


有关MSP430F5529芯片ADC12相关资料,可参考《MSP430x5xx and MSP430x6xx Family User's Guide (Rev. M)——Chapter 28 ADC12_A》


1:demo描述


Description: A single sample is made on A0 with reference to AVcc.


Software sets ADC12SC to start sample and conversion - ADC12SC 


automatically cleared at EOC. ADC12 internal oscillator times sample (16x)


and conversion. In Mainloop MSP430 waits in LPM0 to save power until ADC12


conversion complete, ADC12_ISR will force exit from LPM0 in Mainloop on


reti. If A0 > 0.5*AVcc, P1.0 set, else reset.


参考AVcc电压、以A0定时器作为采样输入信号源的、单通道单次模式采样,当采样信号大于0.5*AVcc时,P1.0置位,否则为0。

代码如下:

 1 #include

 2 

 3 int main(void)

 4 {

 5   WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT

 6   ADC12CTL0 = ADC12SHT02 + ADC12ON;         // Sampling time, ADC12 on

 7   ADC12CTL1 = ADC12SHP;                     // Use sampling timer

 8   ADC12IE = 0x01;                           // Enable interrupt

 9   ADC12CTL0 |= ADC12ENC;

10   P6SEL |= 0x01;                            // P6.0 ADC option select

11   P1DIR |= 0x01;                            // P1.0 output

12 

13   while (1)

14   {

15     ADC12CTL0 |= ADC12SC;                   // Start sampling/conversion

16 

17     __bis_SR_register(LPM0_bits + GIE);     // LPM0, ADC12_ISR will force exit

18     __no_operation();                       // For debugger

19   }

20 }

21 

22 #pragma vector = ADC12_VECTOR

23 __interrupt void ADC12_ISR(void)

24 {

25   switch(__even_in_range(ADC12IV,34))

26   {

27   case  0: break;                           // Vector  0:  No interrupt

28   case  2: break;                           // Vector  2:  ADC overflow

29   case  4: break;                           // Vector  4:  ADC timing overflow

30   case  6:                                  // Vector  6:  ADC12IFG0

31     if (ADC12MEM0 >= 0x7ff)                 // ADC12MEM = A0 > 0.5AVcc?

32       P1OUT |= BIT0;                        // P1.0 = 1

33     else

34       P1OUT &= ~BIT0;                       // P1.0 = 0

35 

36     __bic_SR_register_on_exit(LPM0_bits);   // Exit active CPU

37   case  8: break;                           // Vector  8:  ADC12IFG1

38   case 10: break;                           // Vector 10:  ADC12IFG2

39   case 12: break;                           // Vector 12:  ADC12IFG3

40   case 14: break;                           // Vector 14:  ADC12IFG4

41   case 16: break;                           // Vector 16:  ADC12IFG5

42   case 18: break;                           // Vector 18:  ADC12IFG6

43   case 20: break;                           // Vector 20:  ADC12IFG7

44   case 22: break;                           // Vector 22:  ADC12IFG8

45   case 24: break;                           // Vector 24:  ADC12IFG9

46   case 26: break;                           // Vector 26:  ADC12IFG10

47   case 28: break;                           // Vector 28:  ADC12IFG11

48   case 30: break;                           // Vector 30:  ADC12IFG12

49   case 32: break;                           // Vector 32:  ADC12IFG13

50   case 34: break;                           // Vector 34:  ADC12IFG14

51   default: break;

52   }

53 }

2:代码分析


1)主函数中代码:


1 ADC12CTL0 = ADC12SHT02 + ADC12ON;         // Sampling time, ADC12 on

2 ADC12CTL1 = ADC12SHP;                     // Use sampling timer

3 ADC12IE = 0x01;                           // Enable interrupt

4 ADC12CTL0 |= ADC12ENC;

6 ADC12CTL0 |= ADC12SC;                   // Start sampling/conversion

参考控制寄存器如下:

 

ADCSHT0x :采样保持定时器0,该四位定义了保存在转换存储寄存器中转换结果的采样周期;

ADC12ENC:转换允许

ADC12SHP:选择采样定时器A0输出 

ADC12IE:中断允许 (来自中断允许寄存器)

 

2)中断部分代码:


中断寄存向量ADC12IV中的数字(0-36)用来判断中断标志寄存器中相关位是否置位,此时表明转换结果已经装入转换存储寄存器中,具体数字的含义参见下图:

3)


1  if (ADC12MEM0 >= 0x7ff)                 // ADC12MEM = A0 > 0.5AVcc?

2       P1OUT |= BIT0;                        // P1.0 = 1

3     else

4       P1OUT &= ~BIT0;                       // P1.0 = 0

参考电压使用VCC,因为ADC精度为12位(4095),所以0x7FF(2047)就是0.5Vcc的AD值


关键字:MSP430  ADC12  信号源 引用地址:MSP430学习笔记2-ADC12

上一篇:如何使用MSP430的ADC测量模拟电压?
下一篇:MSP430(F5529)学习笔记——UCS配置详解

推荐阅读

本来要接着写滴答定时器的,但是趁热打铁写下SPI2到SPI1的移植。 为什么SPI2到SPI1的移植要放在nRF24L01模块里写呢,因为无线模块最重要的数据传输就是通过SPI实现的。为什么需要移植呢,因为即使是一个厂家的板子,不同型号之间它的无线模块引脚也有可能是不同的,顺便稿下移植,加深下理解。SPI2移植到SPI1呢,自己做的时候遇到了一些问题,就从...
大多数读者应该知道Intel 的处理器、TSMC生产的SoC(System on Chip)等逻辑半导体的相关工艺,也明白到这些规则只不过对产品的命名罢了。那么,DRAM中提到的1X(18nm)、1Y(17nm)、1Z(16nm)等又都意味着什么?在本文中,我们就此讨论一下所谓的“XXnm”的DRAM的真正意义。那么,所谓“XXnm”指的是哪里的尺寸呢?在谈论这个之前,我们先来聊一下当...
7月15日,JEDEC固态存储协会正式发布了DDR5 SDRAM内存标准规范,拉开了PC新时代的序幕。 根据规范,DDR5内存的频率(数据传输率)起步就是DDR4标准极限的3200MHz,而最高可以达到6400MHz,按照惯例实际产品还会大大超过这一水准,同时电压从1.2V进一步降低至1.1V,而单个Die的容量为8-32Gb(1-4GB)。 今天,韩国存储巨头SK海力士宣布,正式发布全球第一款DD...
中国机械臂厂商主要扎堆于中低端领域,缺乏核心技术,但如今,时代给了我们一次弯道超车的机会。文|罗宁“这个机器人的每一个环节,拆掉都够我们一个院当毕业设计了。”“现在终于理解为什么十个普通工程师也比不上一个天才工程师了。”四个月前,B站UP主稚晖君凭借一辆可以自动驾驶的自行车登上热搜(之前的文章链接),经过一段时间的“闭关修炼”,当...

史海拾趣

问答坊 | AI 解惑

晶闸管使用大全

晶闸管使用大全,很详细,可供参考…

查看全部问答∨

max038的问题

为啥俺用这电路做的MAX038会发热???????还很汤哦???????都不敢用哦,怕烧了!!!高手解解!!! [ 本帖最后由 326309158 于 2009-8-27 17:14 编辑 ]…

查看全部问答∨

基于freescale QE128的低功耗设计

是中文版的,飞思卡尔出的appnote。不知道是哪位大虾翻译的,可以看看…

查看全部问答∨

C51有关题目求教!!!

可以用C51做电流-电压转换电路吗 有电路图吗…

查看全部问答∨

处理矩阵键盘的按键延时,大家都加多少ms啊?

我的按键表现在界面上连续移动时很慢,手松开后还要隔一会儿才能停下来,你们是怎么处理的呢?…

查看全部问答∨

用c编单片机用到的地址

  由于学校里面教的时候用的是汇编编的程序,c都是我自学的,所以在编程序的时候遇到一个很怪的问题怎么都想不通 比如我们用汇编的时候直接用TCON,但是用c编的时候却要在申明变量的时候指定TCON的地址 SFR TCON=OX88H; 但是在用标准c ...…

查看全部问答∨

VCD光盘格式

哪位老大知道VCD光盘中的INFO.VCD、ENTRIES.VCD、LOT.VCD、PSD.VCD等文件格式的?发我邮箱也可以:zxr415@163.com ,或者如果知道哪里的网站上有讲的话,给个连接也可以,非常感谢…

查看全部问答∨

SOJ和SOG封闭有什么不同啊

J和G在尺寸和形状上有什么不同?…

查看全部问答∨

求大虾指点

      各位大侠,因毕业设计问题,纠结心头。大家可否指点一个电路或是芯片能将单片机产生的方波进行功放至可以直接驱动扬声器?…

查看全部问答∨

5V1A充电器方案;CL1128

CL1128特性: 1、5%以内的恒压精度,5%以内的恒流精度; 2、原边反馈省去T431和光耦以降低成本; 3、低启动电流:1μA(典型值); 4、低静态电流:300μA(典型值); 5、可调输出恒定电压,恒定电流及功率; 6、峰值电流模控制; 7 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved