完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include "msp430x42x.h"/*430单片机寄存器头文件*/
void main( void ) { // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD;//停止看门狗 FLL_CTL0|=XCAP18PF;//设置晶振匹配电容18pf左右 P1DIR|=BIT4+BIT3+BIT1; P1OUT&=~(BIT4+BIT3+BIT1); P1IES|=BIT5+BIT6+BIT7;//三个端口为下降沿中断 P1IE|=BIT5+BIT6+BIT7;//三个端口中断允许 _EINT();//中断允许 while(1); } #pragma vector=PORT1_VECTOR __interrupt void PORT1_ISR(void) { unsigned int i; unsigned char PushKey; P1OUT&=~(BIT4+BIT3+BIT1); PushKey=P1IFG&(BIT5+BIT6+BIT7);//读取P1IFG的5.6.7位(那个键被按下) for(i=0;i<1000;i++) {};//略延迟后再做判断 if((P1IN&PushKey)==PushKey) { P1IFG=0;return;//认为按键无效,不做处理直接退出 } if(PushKey&BIT5) { P1OUT|=BIT3; } if(PushKey&BIT6) { P1OUT|=BIT1; } if(PushKey&BIT7) { P1OUT|=BIT4; } P1IFG=0; return; } 该程序实现的功能是按下不同的键点亮不同的灯。p1.5~p1.7对应按键,p1的1、3、4口对应发光二级管 我在调试中遇到的问题是:只有按下p1.7对应的键才会点亮灯,按其他键,没有任何灯亮,请高手帮忙解决一下,为啥不响应其他按键的中断呢? |
|
相关推荐
1 个讨论
|
|
只有小组成员才能发言,加入小组>>
3031个成员聚集在这个小组
加入小组2923 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3594 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2341 浏览 1 评论
4800 浏览 1 评论
2573 浏览 1 评论
1327浏览 3评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3600浏览 2评论
2928浏览 1评论
1510浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 18:30 , Processed in 1.362129 second(s), Total 68, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号