现在的位置: 首页 > 综合 > 正文

MSP430的比较器A

2013年11月12日 ⁄ 综合 ⁄ 共 1016字 ⁄ 字号 评论关闭

比较器A是一个实现模拟电压比较的外围模块~~~~~~~~~~~~

比较器A的主要功能是指出两个输入电压CA0和CA1的大小关系,然后设置输出信号CAOUT的值。如果CA0>CA1 则:CAOUT=1,否则CAOUT=0。

参与比较的两个电压CA0和CA1可以是外部或者内部基准电压。任何组合都是可能的。

 

 比较器结构

比较器结构 

 

比较器A一共有3个寄存器

CACTL1,CACTL2和CAPD

CATCTL1

其中CAEX 交换比较器的输入端

      CARSEL 选择内部参考源加到比较器A的+端或-,跟CAEX的选择有关,具体参照数据手册。

      CAREF1,CAREF0  参考电平发生器控制

      0:关闭

      1:选择0.25Vcc为参考电平

      2:        0.5Vcc

      3:选择二极管为参考电压

      CAON  开关 0关闭,1打开

      CAIES 中断沿触发

      0:上升沿

      1:下降沿

      CAIE   比较器A中断允许

      0:不允许

      1:允许

      CAIFG 比较器A中断标志

      0:没有

      1:有中断标志

 CACTL2

 

CACTL2.7~CACTL2.4具体看手册

PACA1,PACA0

0:外部信号不连接

1:连接

CAF

1的话输出信号经过滤波器

CAOUT 比较器A输出。readonly

 

 CAPD

CAPD

CAPD.x

0:输入缓冲开

1:输入缓冲关

 

 

 

比较器A的中断

interrupt

 

ex:

 电压检测:P2.3输入的未知电压接到比较器A正端,片内参考电压0.25Vcc接到比较器A负端,如果未知电压大于0.25Vcc,P1.0置位,否则P1.0复位。       

#include  "msp430x44x.h"
void main (void)
{
  WDTCTL = WDTPW + WDTHOLD; // 停止看门狗
P1DIR |= 0x01;                  // P1.0 输出
  CACTL1 = CARSEL + CAREF0 + CAON; // 0.25 Vcc = -comp
  CACTL2 = P2CA0;                 // P2.3 = +comp
  while (1)                       
  {
    if ((CAOUT & CACTL2)) 
    P1OUT |= 0x01;                // CAOUT =1, 置位 P1.0
    else P1OUT &= ~0x01;          // 否则复位
  }
}

抱歉!评论已关闭.