MSP430比较器小结

 

 

比较器就是模拟电压比较器。该模拟外设可以用于外部模拟信号的检测或者电源电压的监测

比较器包括:同向和反向输入端的输入多路选择器,比较器,RC滤波器,基准电压发生器;

我们主要需要设定两个寄存器CACTL1,CACTL2;

 

从图中可以看出,我们需要设定同向输入端的输入源,反向输入端的输入源;

从图中,我们可以看出,参考电压的选择是依靠Vcaref的

而参考电压是进入同向端还是进入反向端,则是由CARSEL和CAEx来决定的勒

同我们的参考电压进行比较的也就是CA0或者CA1了

通过CACTL2中的P2CA1,P2CA0来选择;

下面是一个基本的例程。

void main ()
{
   WDTCTL=WDTPW+WDTHOLD;
    
    CACTL1=CARSEL+CAREF0+CAON;
    CACTL2=P2CA0;
    P2DIR=0X00;    //把IO设置成比较器的输入端
    P2SEL|=BIT3;    //选择片内外设比较器
    P3DIR=0XFF;P3OUT=0XFF;
    
    while(1)
    {
        if((CACTL2|OXFE)==0XFF)
        {
            P3OUT&=~BIT0;
            CACTL1&=0XFE;   //清除上升沿时发出的中断请求的标志位;
     }
        else 
        {
            P3OUT|=BIT0;
        }
    }
}

对于这个例子我有点小小的疑问:CACTL中的CAIE即中断使能,这个位默认为0,就是说中断不会发生,那么,为什么我们还需要把中断请求标志位清除使之为0呢??

对上面那个简单例程的猜想:

  其中语句:P2DIR=0x00;

       P2SEL|=BIT3;

      这些在这个例程中,应该是不需要的,因为我根本就没有用到P2IN;

       并没有让P2为比较器做数据输入输出的事情;

  另外:

    我觉得CACTL1&=0XFE;这句也可以不用,因为我根本就没有开启CAIE,没有开启中断使能,怎么又会有中断请求,怎么又会有中断标志位致1呢?

这些都是我的猜想~~~希望能有高手指导指导,嘿嘿

转载于:https://www.cnblogs.com/droidxin/p/3416946.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值