打印

比较器A的使用

[复制链接]
2862|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jxmzzr|  楼主 | 2012-5-26 15:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
比较器A是一个实现模拟电压比较的外围模块,广泛应用于工业仪表,手持式仪表等产品中,可以实现多咱测量功能,如测量电流,电压,电阻,电容监测以及外部模拟信号,也可结合其他模块实现精确的A/D转换功能。MSP430系列单片机大多数系列中都含有比较器A .
比较器A具有中断能力,比较器A响应中断的条件为
1:比较器A模块有比较结果输出;
2:CAIES选择比较器输出的上升沿或下降沿使中断标志CAIFG置位;
3:比较器A中断允许,系统总中断允许。
中断响应后,因为比较器A具有独立的中断向量,硬件会自动清除中断标志CAIFG。
如下例
利用比较器A的中断,实现当输入P2.3的高电压高于0.5Vcc时,使P1.2置位;当P2.3的电压低于0.5Vcc时,使P1.2复位。

# include"MSP430x14x.h"
void main(void)
{
   WDTCTL=WDTPW + WDTHOLD;            //停止看门狗
    P2SELl |=0x08;                                   //P2.3设置为比较器输入CA1
    P1DLR |=0x04;                                   //p1.2设置为输出  
    P10UT&=~0x04;                                 //p1.2输出低电平
    CACTL1=CARSEL+CAEX+CAREE1+CAON;//0.5Vcc加到正端,打开比较器
    CACTL2=P2CA1;                                    //P2.3加到比较器负端
    while(1)
     {
        if((CAOUT&CACTL2)<>CAOUT)        //检查输出,若为0,则p1.2输出高电平否
                                                            //输出低电平
         {
             P1OUT|=0x40;
        }else
          {
             P1OUT&=~0x40;
            }
         }
}
评分
参与人数 1威望 +1 收起 理由
tianm + 1

相关帖子

沙发
linas| | 2012-5-26 17:07 | 只看该作者
学习了。

使用特权

评论回复
板凳
拿起书本| | 2012-5-26 17:51 | 只看该作者
呵呵,比较器也可以将其当作一个1位模/数转换器(ADC)。

使用特权

评论回复
地板
molagefei| | 2012-5-26 17:53 | 只看该作者
帮顶了。

使用特权

评论回复
5
czdo| | 2012-5-26 18:43 | 只看该作者
:)

使用特权

评论回复
6
waitingf| | 2012-5-27 09:55 | 只看该作者
写的太简单了

使用特权

评论回复
7
someonewho| | 2012-5-27 10:16 | 只看该作者
请问 有可以下载的文档吗

使用特权

评论回复
8
沈老| | 2012-5-27 16:23 | 只看该作者
大信号比较时,延时更大。手册给的是小信号。

使用特权

评论回复
9
huangfeng33| | 2012-5-27 18:29 | 只看该作者
8# 沈老

如何理解大信号与小信号呢?期等答案。:handshake

使用特权

评论回复
10
apod502| | 2012-6-28 07:00 | 只看该作者
if((CAOUT&CACTL2)<>CAOUT)        //检查输出,若为0,则p1.2输出高电平否
                                                            //输出低电平
         {
             P1OUT|=0x40;
        }else
          {
             P1OUT&=~0x40;
            }
         }

P1OUT|=0x40;这句不是将P1.2输出高电平,是将P1.6输出高电平!!!!应是P1OUT|=0x04;

使用特权

评论回复
11
tianm| | 2012-6-28 09:41 | 只看该作者
学习就要多总结

使用特权

评论回复
12
huangfeng33| | 2012-7-3 18:02 | 只看该作者
进来学习一下,受教了,鼓励分享。帮顶了

使用特权

评论回复
13
wudayongnb| | 2012-7-3 21:34 | 只看该作者
if((CAOUT&CACTL2)<>CAOUT)  里<>这是什么运算  CACTL1=CARSEL+CAEX+CAREE1+CAON;
CAREE1是什么,如果是0.5VCC应该是CAREF_2或者CAREF1吧,这个程序编译了没,实际运行了没,比较器的输入端一定要交换吗

使用特权

评论回复
14
peter_zheng| | 2012-7-4 14:13 | 只看该作者
可以做AD,compareA+还可以做touchkey

使用特权

评论回复
15
lin562794072| | 2012-7-4 15:44 | 只看该作者
帮顶了

使用特权

评论回复
16
tianli1980| | 2012-7-12 10:44 | 只看该作者
理清思路,总结知识,归纳规律,是会学习的表现。所以版主给加分了,

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

460

主题

2188

帖子

12

粉丝