msp430f149单片机两个中断怎么处理

21ic官方微信-->
后使用快捷导航没有帐号?
查看: 2214|回复: 5
MSP430F149的外部中断问题求助
&&已结帖(0)
主题帖子积分
中级工程师, 积分 4380, 距离下一级还需 620 积分
中级工程师, 积分 4380, 距离下一级还需 620 积分
主题帖子积分
专家等级:结帖率:13%
主题帖子积分
中级工程师, 积分 4380, 距离下一级还需 620 积分
中级工程师, 积分 4380, 距离下一级还需 620 积分
做外部中断 用的是下降沿中断 实验结果是稍微用手接触处下P1口 就发生中断了 还没把它接地呢 这也太灵敏了
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
中级工程师, 积分 4380, 距离下一级还需 620 积分
中级工程师, 积分 4380, 距离下一级还需 620 积分
主题帖子积分
专家等级:结帖率:13%
主题帖子积分
中级工程师, 积分 4380, 距离下一级还需 620 积分
中级工程师, 积分 4380, 距离下一级还需 620 积分
#include &msp430x14x.h&
#include &BoardConfig.h&
void main( void )
& & WDTCTL = WDTPW + WDTHOLD;& &//关闭看门狗
& & BoardConfig(0xb0);& && && & //打开流水灯,关闭数码管和电平转换
& & P1IES |= BIT0;& && && && && &// P1.0~P1.3选择下降沿中断
& & P1IE&&|= BIT0;& && && && && &// 打开中断使能
& & P1OUT=0XFF;
& & P1DIR = 0;
& & P2DIR = 0
& & P2OUT = 0
& & _EINT();& && && && && && &&&//打开全局中断控制位
& & while(1)
& && &&&LPM1;
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
中级工程师, 积分 4545, 距离下一级还需 455 积分
中级工程师, 积分 4545, 距离下一级还需 455 积分
主题帖子积分
专家等级:结帖率:9%
主题帖子积分
中级工程师, 积分 4545, 距离下一级还需 455 积分
中级工程师, 积分 4545, 距离下一级还需 455 积分
不会,帮顶
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 10803, 距离下一级还需 9197 积分
资深工程师, 积分 10803, 距离下一级还需 9197 积分
主题帖子积分
专家等级:结帖率:64%打赏:0.00受赏:0.10
主题帖子积分
资深工程师, 积分 10803, 距离下一级还需 9197 积分
资深工程师, 积分 10803, 距离下一级还需 9197 积分
干扰,建议对该端口加10K上拉电阻在试试的啊
后来乍到,前辈们多多包涵了啊。。
主题帖子积分
高级技术员, 积分 530, 距离下一级还需 470 积分
高级技术员, 积分 530, 距离下一级还需 470 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
高级技术员, 积分 530, 距离下一级还需 470 积分
高级技术员, 积分 530, 距离下一级还需 470 积分
是的,下降沿中断加上拉,
上升沿中断加下拉,
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
中级技术员, 积分 123, 距离下一级还需 177 积分
中级技术员, 积分 123, 距离下一级还需 177 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
中级技术员, 积分 123, 距离下一级还需 177 积分
中级技术员, 积分 123, 距离下一级还需 177 积分
一种好方法。另外多看看手册是硬道理
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
突出贡献奖章
等级类勋章
湍急之河流
发帖类勋章
时间类勋章
技术高手奖章
人才类勋章
技术奇才奖章
人才类勋章
涓涓之细流
发帖类勋章
时间类勋章
时间类勋章MSP430F149-利用IO中断方式实现按键检测程序
> MSP430F149-利用IO中断方式实现按键检测程序
MSP430F149-利用IO中断方式实现按键检测程序
#include <msp430x14x.h>#define key1 0x01#define key2 0x02#define key3 0x04#define delay_small 200本文引用地址:#define key_1 0xfe //定义返回键值1#define key_2 0xfd //定义返回键值2#define key_3 0xfb //定义返回键值3void key_process_0(void);void key_process_1(void);void key_process_2(void);void key_check (void);unsigned char key_ //定义键值全局变是//*************************************************************************void main(void){WDTCTL = WDTPW + WDTHOLD; // 停止看门狗P1OUT |= BIT1; //关LED P1DIR |= BIT1; // 设置P1.1为输出 //以下设置是采用不同的编写方式,新手可以参考使用 P2IE |= BIT0+BIT1+BIT2; // P2.0-P2.2 IO口中断使能 P2IES |= 0x07; // P2.0-P2.2 IO口边沿触发中断方式设置 P2IFG &= ~(key1+key2+key3); // P2.0-P2.2 IO口中断标志位清除 _EINT(); //中断允许 // 或直接写成 _BIS_SR(LPM4_bits + GIE);LPM4; // 进入低功耗LPM4,此时单片机功耗最低while(1){ P2IE &= ~(BIT0+BIT1+BIT2); // P2.0-P2.2 IO口关闭中断允许 P2IFG &= ~0x07; // P2.0-P2.2 IO口中断标志位清除 key_check (); switch (key_value) //对键值进行处理.采switch语法结构查询 { case key_1: key_process_0(); //调用键处理程序1 case key_2: key_process_1(); //调用键处理程序2 case key_3: key_process_2(); //调用键处理程序2 default: } key_value=0x00; //键值清除 P2IE |= BIT0+BIT1+BIT2; // P2.0-P2.2 IO口中断使能 P2IFG &= ~0x07; // P2.0-P2.2 IO口中断标志位清除 LPM4;}}//*************************************************************************//P2中断服务程序#pragma vector=PORT2_VECTOR__interrupt void Port_2(void){switch (P2IFG) { case 0x01: key_value=0 case 0x02: key_value=0 case 0x04: key_value=0 default: P2IFG &= ~0x07; // P2.0-P2.2 IO口中断标志位清除 } P2IFG &= ~0x07; // P2.0-P2.2 IO口中断标志位清除 LPM4_EXIT;}//*************************************************************************void key_process_0(void) //值处理,用户可以自己修改...{P1OUT ^= BIT1;}//*************************************************************************void key_process_1(void) //值处理,用户可以自己修改...{P1OUT ^= BIT1;}//*************************************************************************void key_process_2(void) //值处理,用户可以自己修改...{P1OUT ^= BIT1;}//**************************************************************************void key_check (void){for(i=0;i<delay_i++); //延时去抖动if(0xff !=(P2IN | 0xf8)) //是否有键存在? { while(0xff !=( P2IN | 0xf8)); //一直等待按键松开 }else key_value = 0x00; //延时去抖动无键按下,则清除键变量.}//**************************************************************************
分享给小伙伴们:
我来说两句……
最新技术贴
微信公众号二
微信公众号一MSP430F149_用中断方法实现按键功能_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
MSP430F149_用中断方法实现按键功能
上传于|0|0|文档简介
&&以MSP430F149为处理器,用中断方法实现按键功能,按不同的键,LED闪烁次数不同。
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢查看: 565|回复: 2
求助msp430f149定时器A怎么同时执行两种功能?
主题帖子精华
初级会员, 积分 58, 距离下一级还需 142 积分
在线时间0 小时
小弟最近在做智能小车,背景是2011全国大学生电子设计竞赛的智能小车题目,现在已经单独把超声波测距的程序写好了,用的定时器A。单独地另一个程序是定时器A定时10ms检测一次黑线,用来转弯。现在想把这两个功能结合到一起,只用定时器A,请教写程序的思路,例如定时器A怎么配置,用不用重新初始化什么的
学不再累,有心就行
主题帖子精华
金钱103090
在线时间619 小时
帮顶。。。。
我是开源电子网站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子
主题帖子精华
新手上路, 积分 22, 距离下一级还需 28 积分
在线时间0 小时
回复【2楼】正点原子:
---------------------------------
一个定时器两个中断源不就行了&&CCR1&用来&…………&CCR2用来……
Powered by

我要回帖

更多关于 msp430f149中断优先级 的文章

 

随机推荐