完善资料让更多小伙伴认识你,还能领取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 个讨论
|
|
只有小组成员才能发言,加入小组>>
2631个成员聚集在这个小组
加入小组MSP430FR5994 使用库函数 定时器触发AD问题请教
1610 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2169 浏览 1 评论
4565 浏览 1 评论
2366 浏览 1 评论
1705 浏览 1 评论
706浏览 3评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
1624浏览 2评论
930浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-20 01:36 , Processed in 1.172771 second(s), Total 64, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号