这两天研究了一下430的比较器,开始的时候,没有看懂是怎么一回事,在网站看这方面的博客,好像懂了,但是一到编程,就变得无从下手,但是,皇天不负有心人,笔者还是把他弄懂了

其实这里就是看懂一幅图,两个寄存器,明白工作原理就可以了

这是比较器A的逻辑图,比价器A由4个部分组成

标号1:内部参考电压发生器,可以产生0.25V,0.50v的参考电压

标号2,:外部电压输入端,CA0对应P2.3,CA1对应P2.4

标号3:内部比较器,今天上课刚好上了比较器,也就是正输入端大于负输入端的时候,比较器输出一个1,同时产生一个中断标志位

标号4:也就是比较结果输入端

因此,一般的模版就可以出来了

1:设置内部的参考电压

2:打开外部的输入端

3:设置外部I/O的属性,也就是P2.3或者P2.4的输入属性

4:判断输出的结果

步骤一对应上个步骤的1:这时候就要熟悉寄存器了,比较器A有两个寄存器CACTL1,CACTL2

设置内部参考电压是用CACTL1:这里举一个模版例子:CACTL1 = CARSEL+CAREF1+CAON;

翻译就是,将CACTL1 = 内部参考电压在比较器的正向端输入还是反向端输入+选择是0.25V参考电压还是0.5V参考电压+打开比较器A

步骤二对应上个步骤的2

打开外部的输入端:用的是CACTL2,CACTL2=P2CAO

翻译就是,外部选择的是P2CAO也就是讲P2.3作为输入端,

步骤三:设置I/O属性

P2DIR = 0x00;//把IO设为比较器的输入端
 P2SEL |=BIT3;

步骤四:比较输入输出结果:

这时候也要熟悉寄存器了,CACTL2中的最低位,也就是CAOUT,如果正向端大于负向端的话,cout变为1,这时候典型的判断语句就是

if((CACTL2|0xfe) == 0xff)//最低位如果置位为1的话,CACTL1中的最低位,也就是比较器的中断标志位也会置位

{

进一步操作;

中断标志置位为1

}

示例代码:将P2.3输入的电压与0.25进行比较,如果大于的话,点亮led灯,并将中断标志清除

#include<msp430x14x.h>

void main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
CACTL1 =CARSEL +CAREF1 +CAON;
CACTL2 = P2CA0; P2DIR = 0x00;//把IO设为比较器的输入端
P2SEL |=BIT3;
P3OUT |=BIT5;
P3DIR |=BIT5; while()
{
if((CACTL2 |0xfe)==0xff)
{
P3OUT &=~BIT5; //比较电压是否超过0。25V
CACTL1 &=0xfe; //清除中断标志 }
else
{
P3OUT |=BIT5;
} } }

版权所有:转载请注明链接地址:http://www.cnblogs.com/fengdashen/p/3408112.html

MSP430的比较器的更多相关文章

  1. MSP430 G2553 比较器Comparator_A+、数据流程图DFD、状态转换图STD

    一.CA+构造 MSP430G2553带有一个比较器Comparator_A+(CA+),其构造框图如下图所示. 二.输入 & 输出 如上图所示,比较器有一个同向输入端(V+)和一个反向输入端 ...

  2. MSP430常见问题之工作模式和功耗类

    Q1:1,MSP430进入LP 模式后,CPU 停止运行,那么,进入中断执行退出后,由于SR的恢复,导致还处于LP 模式,是否意味着,CPU 在退出中断后立即停止了呢?2,也就是说,进入LP 模式后, ...

  3. 谈谈MSP430 的框架程序

    最近在学习MSP430f149这块单片机,开始程序也没烧进去,弄了一天,发现串口不能下载,买了个jtag下载器,才搞定.现在也谈谈开始写程序的一些方法吧 程序重要的是框架,有这个基础之后才能行云流水的 ...

  4. msp430学习笔记-IO及低功耗

    引用:http://bbs.ednchina.com/BLOG_ARTICLE_3013511.HTM MSP430F149有6个8位的IO口,其中P1,P2口占两个中断向量,共可以接16个中断源.还 ...

  5. MSP430 G2553 Launchpad实现电容测量

    一.基本原理 对于Source-Free RC电路,其电容放电的特性可以描述为: 其中V0是电容的初始电压,t是放电时间,R是串接的电阻阻值,C是电容值,v(t)是t时刻电容上的电压.因此,若已知V0 ...

  6. msp430项目编程23

    msp430中项目---风扇控制系统 1.比较器工作原理 2.电路原理说明 3.代码(显示部分) 4.代码(功能实现) 5.项目总结 msp430项目编程 msp430入门学习

  7. 关于MapReduce中自定义带比较key类、比较器类(二)——初学者从源码查看其原理

    Job类 /**   * Define the comparator that controls    * how the keys are sorted before they   * are pa ...

  8. Scala比较器:Ordered与Ordering

    在项目中,我们常常会遇到排序(或比较)需求,比如:对一个Person类 case class Person(name: String, age: Int) { override def toStrin ...

  9. 对象比较器:Comparable和Comparator

    在进行对象数组排序的过程中需要使用到比较器,比较器有两个:Comparable和Comparator ①.java.lang.Comparable:是在类定义是时候默认实现好的接口,里面提供有一个co ...

随机推荐

  1. 然爸读书笔记(2013-5)----Rework(重来)

    (1)你没有必要耗尽你一生的积蓄,承担财务风险. (2)你可以一边继续日常工作,一边开始创业,这样随时都能有现金满足需要.你甚至不需要办公室. 现在可以在家工作,和从未见面离你千里之外的人合作. (3 ...

  2. git初探

    1 Linux下Git和GitHub环境的搭建 第一步: 安装Git,使用命令 "sudo apt-get install git" 第二步: 到GitHub上创建GitHub帐号 ...

  3. 1027: [JSOI2007]合金 - BZOJ

    Description 某公司加工一种由铁.铝.锡组成的合金.他们的工作很简单.首先进口一些铁铝锡合金原材料,不同种类的原材料中铁铝锡的比重不同.然后,将每种原材料取出一定量,经过融解.混合,得到新的 ...

  4. Unity3D 自动打包整个项目(以AssetBundle实现)

    原地址:http://blog.csdn.net/huang7jiao/article/details/18370653 需求: 在移动开发中,手动控制资源的加载.释放和热更新,是很有必要的. 而Un ...

  5. Android ViewPager的每个页面的显示与销毁的时机

    大家在用viewPager的时候要创建一个pagerAdapter对象,用于给viewPager设置页面的. viewPager里面有一个container容器. viewPager的容器缓存3个显示 ...

  6. Amzon MWS API开发之订单接口

    Amazon订单接口是Amazon MWS 开发接口中的一大块,我们可以通过接口调用来获得订单数据. 在调用接口之前,首先我们要获得相关店铺商家的店铺密钥等信息.如下: 在此我将所有信息定义在一个类中 ...

  7. ubuntu下如何设置主机名

    方法如下: 在终端输入 hostname 查看主机名主机名存放在/etc/hostname中 ,sudo gedit /etc/hostname 修改后保存/etc/hosts 还有一份 , sudo ...

  8. Qt之QtSoap(访问WebService)

    http://blog.csdn.net/u011012932/article/details/51673800

  9. WPF之外观模式

    名词解释: 外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义一个高层接口,这个接口使得这一子系统更加容易使用. 必要元素: 一个外观类和多个子系统类(外观类中注入各个子系统类). 上例子: ...

  10. python脚本工具 - 3 目录遍历

    遍历系统中某一目录下的所有文件名 #! /usr/bin/python # coding:utf-8 import os def dirList(path): filelist = os.listdi ...