zoukankan      html  css  js  c++  java
  • 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(1)
      {
          if((CACTL2 |0xfe)==0xff)
          {
            P3OUT &=~BIT5;     //比较电压是否超过0。25V
            CACTL1 &=0xfe;     //清除中断标志
            
          }
          else
          {
             P3OUT |=BIT5;
          }
      
      }
    
    }

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

  • 相关阅读:
    poj 1084 Brainman(归并排序)
    Poj 2299 Ultra-QuickSort(归并排序)
    poj 1068 Parencodings(栈)
    Poj 2499 Binary Tree(贪心)
    Poj 2255 Tree Recovery(二叉搜索树)
    poj 2021 Relative Relatives(暴力)
    Poj 2092 Grandpa is Famous(基数排序)
    解决UMeditor上传图片失败
    解决使用了属性overflow:scroll、overflow-y:scroll、overflow-x:scroll;的网页在iPhone iOS Safari浏览器中滑动不流畅问题
    Kindeditor上传图片报错
  • 原文地址:https://www.cnblogs.com/fengdashen/p/3408112.html
Copyright © 2011-2022 走看看