msp430外部中断中断问题谢谢,不知为啥程序就是不行呢,咋都进去中断。谢谢

已解决问题
重赏!msp430 比较器A 的中断
小生刚学msp430,中断不是很会使用,我看到好多模块都有,但是只知道定时器怎样中断 && 自动计时溢出后就触发中断,但是比较器A会怎样触发中断啊?
中断标志位 CAIFG 为 1 时出发中断,但什么情况 CAIFG 会置1?跟 CAOUT有关吗?
浏览次数:2108
用手机阿里扫一扫
最满意答案
该答案已经被保护
比较器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亮&&&}&}&
答案创立者
以企业身份回答&
正在进行的活动
生意经不允许发广告,违者直接删除
复制问题或回答,一经发现,拉黑7天
快速解决你的电商难题
店铺优化排查提升2倍流量
擅长&nbsp 店铺优化
您可能有同感的问题
扫一扫用手机阿里看生意经
问题排行榜
当前问题的答案已经被保护,只有知县(三级)以上的用户可以编辑!写下您的建议,管理员会及时与您联络!
server is okmsp430串口收发程序,该如何解决 - 单片机当前位置:& &&&msp430串口收发程序,该如何解决msp430串口收发程序,该如何解决www.MyException.Cn&&网友分享于:&&浏览:75次msp430串口收发程序现在想用msp430的串口进行收发程序开发,但不知道对方一次发送过来多少数据?如何才能完整接收呢?我感觉使用中断的方式一次只能接收一个字节的数据,不能把对方发送的完整数据全部接收!请问有什么解决办法?谢谢!另外,使用串口通信,一方是msp430,一方是c51,串口速率都设置为115200,但因为430单片机和51单片机执行每次指令需要的周期不同,请问这样会影响通信吗?谢谢!------解决方案--------------------
使用中断形式,来了接收中断就去读数据,然后尽快把数据存储到某个地方或者进行其它的处理,然后再把中断打开,处理得好不会丢数据的,两方的指令周期不同没有关系,保证波特率一致且能快速处理接收到的数据就行了。
------解决方案--------------------
1. 串口本身只是定义了物理层的东西,至于说数据是否接收完全这要靠上层协议来保证。2. CPU指令的速度和外设工作没有很直接的关系,一般外设比CPU慢,这也引入中断机制的部分原因。3. 串口确实是基于单个字符传送的,这点其实很重要。
------解决方案--------------------还有一点 楼主要注意 MSP430串口是全双工的, 串口发送缓冲区和串口接收缓冲区是分开的,而51是半双工的,串口发送缓冲区和串口接收区是在一块的,所以发送和接收是不能同时的,这块51的数据处理 是要注意的
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有问一个MSP430 C语言中断的问题。谢谢!_百度知道
问一个MSP430 C语言中断的问题。谢谢!
一个程序里面有好几个中断,怎么设置何时执行什么中断?还有怎么知道如何触发中断的?比如下面的程序:
#ifdef __IAR_SYSTEMS_ICC__
#if __VER__ &= 200
#pragma vector=UART1RX_VECTOR
__interrupt void usart1_rx (void)
interrupt[UART1RX_VEC...
我有更好的答案
判断是否产生了中断,或者判断程序是否运行的情况,一般有2个简单的方法,如下:1. Debug调试端口,不限于某些通讯协议,I2C、SPI、UART等,把程序运行的情况传递出来。
这个方法比较适用于复杂的程序。2. 设置一个IO作为标记,有示波器直接看IO跳变规律来判断程序运行情况,或中断。
没有示波器也问题不大,可以外接LED作指示,一样能达到是否触发了中断和程序运行情况。
这个方法简单,只需要在程序中加入IO口翻转指令。至于如何设置何时启动中断,则要根据你的应用要求来了。个人认为什么时候启动中断都次要,关键是中断程序和外部程序的配合。
我能加你QQ或者其他联系方式详问下吗?谢谢你啊。
采纳率:66%
当打开UCA0中断时:当RXBUF0收满的时候,URXIFG0就会置1触发中断;当TXBUF0为空的时候,UTXIFG0就会置1触发中断;是收中断还是发中断需要自己在中断函数里判断IFG2的哪一位为1。
要看中断优先级,优先级高的可以中断低的,低的不可以中断高的,如果中断优先级相同,那个中断先有先执行那个。
为您推荐:
其他类似问题
msp430的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。msp430外部中断的问题_百度知道
msp430外部中断的问题
#include &msp430g2553.h&
#include &start.h&
#include &display.h&
unsigned int count,
unsigned char P23_IFG;
void main(void)
distance=0;
P23_IFG=0;
我有更好的答案
标志位我一般都放在中断里
采纳率:36%
为您推荐:
其他类似问题
您可能关注的内容
外部中断的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。msp430中加入低功耗程序就只能进入串口发中断但进不了定时器中断了?麻烦给看看,谢谢,代码如下:_百度知道
msp430中加入低功耗程序就只能进入串口发中断但进不了定时器中断了?麻烦给看看,谢谢,代码如下:
我有更好的答案
ta0中__bis_SR_register(LPM0_bits+GIE);在中断中未作EXIT_LPM0;
采纳率:34%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 msp430外部中断 的文章

 

随机推荐