重赏!msp430 比较器A 的中断
小生刚学msp430,中断不是很会使用,我看到好多模块都有,但是只知道定时器怎样中断——自动计时溢出后就触发中断,但是比较器A会怎样触发中断啊?中断标志位CAIFG为1时...
小生刚学msp430,中断不是很会使用,我看到好多模块都有,但是只知道定时器怎样中断 —— 自动计时溢出后就触发中断,但是比较器A会怎样触发中断啊?
中断标志位 CAIFG 为 1 时出发中断,但什么情况 CAIFG 会置1?跟 CAOUT有关吗?
谢谢 展开
中断标志位 CAIFG 为 1 时出发中断,但什么情况 CAIFG 会置1?跟 CAOUT有关吗?
谢谢 展开
展开全部
比较器A模块
以下图可以看出比较器A的结构大概可以分4部分构成,分别为模拟输入,比较器A核心,低通虑波器,基准电压部分和中断部分组成。
首先,整个比较器A的工作必需由CAON位置为1时才能工作的,此位属CACTL1控制寄存器。单片机上电时此位是为0的,也就是说比较器是不工作的。
以下大概讲述几个部分电路的功能和一些相关信息。
模拟输入电路:
外部模拟引脚信号CA0,CA1(正负端)可以分别由P2CA0,P2CA1位控制开或关。经过软件的设置可以分别与内部的几个基准电压进行比较(0.5VCC,0.25VCC,三极管门值电压)或外部其中的电压进行比较。
应用的硬件比较可以分为以下三种组合:
[1]两个外部引脚输入信号进行比较
[2]其中一个外部引脚信号与内部的0.5VCC或0.25VCC比较
[3] 其中一个外部引脚信号与内部基准电压比较
参考电压发生器
参考电压电路是可以由CARSEL,CARERF0,CARERF1位来控制电压的产生。通过软件设置可以选择几种电压输出到比较器的输入中作为比较,当然此参考电压也可以通过单片机的引脚往外部提供参考电压之用。
比较器A核心
比较器CAON位控制开关,CAEX位控制位控制方向。
低通虑波器
低通虑波器只需一个CAF位来控制此虑波器的功能开与关。此虑波器功能是用于消除比较器输出信号的毛剌,以保证信号的质量和中断请求的可靠性。
中断请求
比较器A模块是具有中断功能的,如比较器功能CAIE中断允许开了,在CAIF信号产生时将生产中断(当然GIE要为1时)。比较器A模块是具有中断独立向量的,是一个单独的中断,CUP接受请求后会硬件自动清除中断标志位CAIFG。
点击可放大图片查看
比较器模块相关寄存器说明
CACTL1 比较器控制寄存器1
CAEX: 控制内部比较器A的输入信号和输出信号的方向
CARSEL:控制内部参考电压加到比较器A的正输入端还是负输入端
由结构图可以看出,CAEX,CARSEL在不同设置时,比较器A输入端的所加的参考电压是有不同的.
请参考以下列表:
-----------------------------------
CARSEL CAEX 参考电压接入端
0 0 内部参考源加到比较器的正端
0 1 内部参考源加到比较器的负端
1 0 内部参考源加到比较器的负端
1 1 内部参考源加到比较器的正端 CAREF1, CAREF0 选择参考源:
0 使用外部参考
1 选择0.25VCC为参考电压
2 选择0.5VCC为参考电压
3 选择二极管电压为参考电压,须参见具体IC的资料
-----------------------------------
CAON: 控制比较器A的打开与关闭
0 关闭比较器工作
1 打开比较器工作
CAIES: 中断边沿触发模式选择
0 上升沿使中断标志CAIFG置位
1 下降沿使中断标志CAIFG置位
CAIE:比较器中断允许
0 禁止中断
1 允许中断
CAIFG: 比较器中断标志
0 没有中断请求
1 有中断请求标志信号
CACTL2 比较器控制寄存器2
P2CA1:控制输入端CA1
0 外部引脚信号不与比较器A连接
1 外部引脚信号与比较器A连接
P2CA0:控制输入端CA0
0 外部引脚信号不与比较器A连接
1 外部引脚信号与比较器A连接
CAF: 选择比较器输出端是否经过RC低通滤波器
0 开通RC低通滤波器
1 直通信号
CAOUT: 比较器A输出的信号
0 CA0小于CA1
1 CA0大于CA1
CAPD 端口禁止寄存器
比较器A模块的输入输出与IO口共用引脚,可以控制IO端口输入缓冲器的通断开关.CAPD控制位初始化为0,则端口输入缓冲器有效.当相应位为1时,端口输入缓冲器无效。
--------------------------------------------------------------------------------
例程[1]
以下是在MC430F14开发板上实现的简单的比较器A应用。利用外部一个可调电位器调节电压与比较器A内部参考电压相比较。如外部调节电压小于内部参考电压,则D2 LED亮。否则LED灭。参考实验如下图:
复制代码
#include <msp430x14x.h>
void main (void)
{
WDTCTL = WDTPW + WDTHOLD; // 停狗
P1DIR |= BIT1; // 设置P1.0为输出
CAPD |= 0x08; // 断开端口引脚
//设置比较器A的负端接内部参考电压源0.25 Vcc,并打开比较器A工作
CACTL1 = CARSEL + CAREF0 + CAON;
CACTL2 = P2CA0; // 设置P2.3引脚与比较器A的正端连接,以作输入
while (1) // 测试比较器A的输出,用MC430F14板上的LED作指示
{
if ((CAOUT & CACTL2))
P1OUT |= BIT1; // 如果CAOUT位输出为1,则LED关
else
P1OUT &= ~BIT1; // 否则LED亮
}
}
以下图可以看出比较器A的结构大概可以分4部分构成,分别为模拟输入,比较器A核心,低通虑波器,基准电压部分和中断部分组成。
首先,整个比较器A的工作必需由CAON位置为1时才能工作的,此位属CACTL1控制寄存器。单片机上电时此位是为0的,也就是说比较器是不工作的。
以下大概讲述几个部分电路的功能和一些相关信息。
模拟输入电路:
外部模拟引脚信号CA0,CA1(正负端)可以分别由P2CA0,P2CA1位控制开或关。经过软件的设置可以分别与内部的几个基准电压进行比较(0.5VCC,0.25VCC,三极管门值电压)或外部其中的电压进行比较。
应用的硬件比较可以分为以下三种组合:
[1]两个外部引脚输入信号进行比较
[2]其中一个外部引脚信号与内部的0.5VCC或0.25VCC比较
[3] 其中一个外部引脚信号与内部基准电压比较
参考电压发生器
参考电压电路是可以由CARSEL,CARERF0,CARERF1位来控制电压的产生。通过软件设置可以选择几种电压输出到比较器的输入中作为比较,当然此参考电压也可以通过单片机的引脚往外部提供参考电压之用。
比较器A核心
比较器CAON位控制开关,CAEX位控制位控制方向。
低通虑波器
低通虑波器只需一个CAF位来控制此虑波器的功能开与关。此虑波器功能是用于消除比较器输出信号的毛剌,以保证信号的质量和中断请求的可靠性。
中断请求
比较器A模块是具有中断功能的,如比较器功能CAIE中断允许开了,在CAIF信号产生时将生产中断(当然GIE要为1时)。比较器A模块是具有中断独立向量的,是一个单独的中断,CUP接受请求后会硬件自动清除中断标志位CAIFG。
点击可放大图片查看
比较器模块相关寄存器说明
CACTL1 比较器控制寄存器1
CAEX: 控制内部比较器A的输入信号和输出信号的方向
CARSEL:控制内部参考电压加到比较器A的正输入端还是负输入端
由结构图可以看出,CAEX,CARSEL在不同设置时,比较器A输入端的所加的参考电压是有不同的.
请参考以下列表:
-----------------------------------
CARSEL CAEX 参考电压接入端
0 0 内部参考源加到比较器的正端
0 1 内部参考源加到比较器的负端
1 0 内部参考源加到比较器的负端
1 1 内部参考源加到比较器的正端 CAREF1, CAREF0 选择参考源:
0 使用外部参考
1 选择0.25VCC为参考电压
2 选择0.5VCC为参考电压
3 选择二极管电压为参考电压,须参见具体IC的资料
-----------------------------------
CAON: 控制比较器A的打开与关闭
0 关闭比较器工作
1 打开比较器工作
CAIES: 中断边沿触发模式选择
0 上升沿使中断标志CAIFG置位
1 下降沿使中断标志CAIFG置位
CAIE:比较器中断允许
0 禁止中断
1 允许中断
CAIFG: 比较器中断标志
0 没有中断请求
1 有中断请求标志信号
CACTL2 比较器控制寄存器2
P2CA1:控制输入端CA1
0 外部引脚信号不与比较器A连接
1 外部引脚信号与比较器A连接
P2CA0:控制输入端CA0
0 外部引脚信号不与比较器A连接
1 外部引脚信号与比较器A连接
CAF: 选择比较器输出端是否经过RC低通滤波器
0 开通RC低通滤波器
1 直通信号
CAOUT: 比较器A输出的信号
0 CA0小于CA1
1 CA0大于CA1
CAPD 端口禁止寄存器
比较器A模块的输入输出与IO口共用引脚,可以控制IO端口输入缓冲器的通断开关.CAPD控制位初始化为0,则端口输入缓冲器有效.当相应位为1时,端口输入缓冲器无效。
--------------------------------------------------------------------------------
例程[1]
以下是在MC430F14开发板上实现的简单的比较器A应用。利用外部一个可调电位器调节电压与比较器A内部参考电压相比较。如外部调节电压小于内部参考电压,则D2 LED亮。否则LED灭。参考实验如下图:
复制代码
#include <msp430x14x.h>
void main (void)
{
WDTCTL = WDTPW + WDTHOLD; // 停狗
P1DIR |= BIT1; // 设置P1.0为输出
CAPD |= 0x08; // 断开端口引脚
//设置比较器A的负端接内部参考电压源0.25 Vcc,并打开比较器A工作
CACTL1 = CARSEL + CAREF0 + CAON;
CACTL2 = P2CA0; // 设置P2.3引脚与比较器A的正端连接,以作输入
while (1) // 测试比较器A的输出,用MC430F14板上的LED作指示
{
if ((CAOUT & CACTL2))
P1OUT |= BIT1; // 如果CAOUT位输出为1,则LED关
else
P1OUT &= ~BIT1; // 否则LED亮
}
}
展开全部
是比较P1.6正向端和P1.7反向端,正反向端可自行设定,输出端P2.6(就是CAOUT)。
你仔细的看看电子文档。
P2CA0、P2CA1=1,CAEX=0(无反向器),CAON=1,CAF=0(不带阻容)。当P1.6〉P1.7,P2.6输出高电平,置CAFIG=1触发中断,程序转到中断向量0FFF6H中,在这里加一个跳转指令,转到相应的执行程序中。
你仔细的看看电子文档。
P2CA0、P2CA1=1,CAEX=0(无反向器),CAON=1,CAF=0(不带阻容)。当P1.6〉P1.7,P2.6输出高电平,置CAFIG=1触发中断,程序转到中断向量0FFF6H中,在这里加一个跳转指令,转到相应的执行程序中。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好有难度
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询