历史上的今天
今天是:2025年04月14日(星期一)
2020年04月14日 | 6)MSP430的比较器A
2020-04-14 来源:eefocus
比较器A是一个实现模拟电压比较的外围模块~~~~~~~~~~~~
比较器A的主要功能是指出两个输入电压CA0和CA1的大小关系,然后设置输出信号CAOUT的值。如果CA0>CA1 则:CAOUT=1,否则CAOUT=0。
参与比较的两个电压CA0和CA1可以是外部或者内部基准电压。任何组合都是可能的。
比较器结构

比较器A一共有3个寄存器
CACTL1,CACTL2和CAPD

其中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.7~CACTL2.4具体看手册
PACA1,PACA0
0:外部信号不连接
1:连接
CAF
1的话输出信号经过滤波器
CAOUT 比较器A输出。readonly

CAPD
CAPD.x
0:输入缓冲开
1:输入缓冲关
比较器A的中断

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; // 否则复位
}
}
史海拾趣
|
微波产业尽管在持续创新,许多产品仍根植于相同技术。例如,砷化镓(GaAs)就是目前许多先进功放及其它有源器件的核心技术。但在这些现象中,孕育着可能变革许多产品制造方式方法的创新。这些“颠覆性技术”会以闻所未闻、见所未见的完全新奇的面目兴 ...… 查看全部问答> |
|
请问哥哥姐姐们,在主程序和子程序之间,或者个子程序之间可以共用寄存器吗?比如R0,R1 我自己试了一下看,好像不可以。但如果我需要用到多个R0 或R1,因为要使程序程序简练,需用到多次寄存器间接寻址指令(只能是寄存器R0或R1) 该怎么实现呢? ...… 查看全部问答> |
|
急!向Seven_zhangxw大哥求助!NK大于32M的问题! 我用的2450,BSP包config.bib文件里定义了,ROMSIZE = 02000000,即最大nk.bin只能到32M。如果我加一堆组件的话,比如说用中文的系统之类的,nk.bin会超过32M,这样就下不进去系统了。 1、我修改了WINCE500\\PLATFORM\\SMDK2450\\Files\\config.b ...… 查看全部问答> |
|
110V 10 Series Driver (700mA@35) for External LED Driver 这些LED参考设希望对大家有用! … 查看全部问答> |




