MSP430的比较器
这两天研究了一下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的比较器的更多相关文章
- MSP430 G2553 比较器Comparator_A+、数据流程图DFD、状态转换图STD
一.CA+构造 MSP430G2553带有一个比较器Comparator_A+(CA+),其构造框图如下图所示. 二.输入 & 输出 如上图所示,比较器有一个同向输入端(V+)和一个反向输入端 ...
- MSP430常见问题之工作模式和功耗类
Q1:1,MSP430进入LP 模式后,CPU 停止运行,那么,进入中断执行退出后,由于SR的恢复,导致还处于LP 模式,是否意味着,CPU 在退出中断后立即停止了呢?2,也就是说,进入LP 模式后, ...
- 谈谈MSP430 的框架程序
最近在学习MSP430f149这块单片机,开始程序也没烧进去,弄了一天,发现串口不能下载,买了个jtag下载器,才搞定.现在也谈谈开始写程序的一些方法吧 程序重要的是框架,有这个基础之后才能行云流水的 ...
- msp430学习笔记-IO及低功耗
引用:http://bbs.ednchina.com/BLOG_ARTICLE_3013511.HTM MSP430F149有6个8位的IO口,其中P1,P2口占两个中断向量,共可以接16个中断源.还 ...
- MSP430 G2553 Launchpad实现电容测量
一.基本原理 对于Source-Free RC电路,其电容放电的特性可以描述为: 其中V0是电容的初始电压,t是放电时间,R是串接的电阻阻值,C是电容值,v(t)是t时刻电容上的电压.因此,若已知V0 ...
- msp430项目编程23
msp430中项目---风扇控制系统 1.比较器工作原理 2.电路原理说明 3.代码(显示部分) 4.代码(功能实现) 5.项目总结 msp430项目编程 msp430入门学习
- 关于MapReduce中自定义带比较key类、比较器类(二)——初学者从源码查看其原理
Job类 /** * Define the comparator that controls * how the keys are sorted before they * are pa ...
- Scala比较器:Ordered与Ordering
在项目中,我们常常会遇到排序(或比较)需求,比如:对一个Person类 case class Person(name: String, age: Int) { override def toStrin ...
- 对象比较器:Comparable和Comparator
在进行对象数组排序的过程中需要使用到比较器,比较器有两个:Comparable和Comparator ①.java.lang.Comparable:是在类定义是时候默认实现好的接口,里面提供有一个co ...
随机推荐
- 应该如何入门deep learning呢?从UFLDL开始!
抱歉,大家,这里不是要分享如何学习deep learning,而是想要记录自己学习deep learning的小历程,算是给自己的一点小动力吧,希望各位业内前辈能够多多指教! 看到有网友提到,Andr ...
- 1200: [HNOI2005]木梳 - BZOJ
Description Input 第一行为整数L,其中4<=L<=100000,且有50%的数据满足L<=104,表示木板下侧直线段的长.第二行为L个正整数A1,A2,…,AL ...
- hadoop 任务执行优化
任务执行优化 1. 推测式执行: 如果jobtracker 发现有拖后的任务,会再启动一个相同的备份任务,然后哪个先执行完就会去kill掉另一个,因此会在监控页面上经常能看到正常执行完的作业会有被ki ...
- eval()字符串转成对象
var s = "{a:1,b:2}"; console.log(typeof s); s = eval("(" + s + ")"); c ...
- asp.net单点登录(SSO)解决方案
前些天一位朋友要我帮忙做一单点登录,其实这个概念早已耳熟能详,但实际应用很少,难得最近轻闲,于是决定通过本文来详细描述一个SSO解决方案,希望对大家有所帮助.SSO的解决方案很多,但搜索结果令人大失所 ...
- case class inheritance
Scala 禁止case class inheritance case class Person(name: String, age: Int) case class FootballPlayer(n ...
- POJ 1942 Paths on a Grid(组合数)
http://poj.org/problem?id=1942 题意 :在一个n*m的矩形上有n*m个网格,从左下角的网格划到右上角的网格,沿着边画,只能向上或向右走,问有多少条不重复的路 . 思路 : ...
- Linux中的栈:用户态栈/内核栈/中断栈
http://blog.chinaunix.net/uid-14528823-id-4136760.html Linux中有多种栈,很容易弄晕,简单说明一下: 1.用户态栈:在进程用户态地址空间底部, ...
- ids & hdmi 原理
http://www.taiwanwebinar.com/zh_TW/STATIC/SITE/dwc_hdmi_tx.pdf http://blog.csdn.net/g_salamander/art ...
- 阿里巴巴Java面试题
研二是需要找实习的时候了,因阿里有同学内推就直接参加了电话面试,不说其他的废话直接上问题,阿里的面试官还是不错的,和蔼可亲,为人谦虚,大牛什么都懂.(投的职位是java研发)1.java中所有类的父类 ...