• 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呢?

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

  • 相关阅读:
    chrome 浏览器安装 postman
    react + antd Form表单校验
    Java 获取日期间的日期 & 根据日期获取星期
    PostgreSQL 按照日期范围查询
    momentjs 学习
    npm 常用命令
    Web中的安全性问题
    (转)Java 详解 JVM 工作原理和流程
    HashMap的工作原理
    对于org.apache.commons.dbcp.BasicDataSource的配置认知
  • 原文地址:https://www.cnblogs.com/droidxin/p/3416946.html
Copyright © 2020-2023  润新知