完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我用CC2541做了个小板子,有10个按键,一个灯。
试外部中断,发现时灵时不灵,有误操作。 程序如下: /**************************************************************************** * 名 称: InitKey() * 功 能: 设置KEY相应的IO口,采用中断方式 * 入口参数: 无 * 出口参数: 无 ****************************************************************************/ void InitKey() { P0IEN |= 0xf3; // P0.1 设置为中断方式 1:中断使能 PICTL |= 0xf3; //下降沿触发 IEN1 |= 0x20; //允许P0口中断; P0IFG = 0x00; //初始化中断标志位 P1IEN |= 0x0f; // P0.1 设置为中断方式 1:中断使能 PICTL |= 0x0f; //下降沿触发 IEN2 |= 0x10; //允许P1口中断; P1IFG = 0x00; //初始化中断标志位 EA = 1; //打开总中断 } /**************************************************************************** * 名 称: P0_ISR(void) 中断处理函数 * 描 述: #pragma vector = 中断向量,紧接着是中断处理程序 ****************************************************************************/ #pragma vector = P0INT_VECTOR __interrupt void P0_ISR(void) { DelayMS(20); //延时去抖 LED1 = ~LED1; //改变LED1状态 P0IFG = 0; //清中断标志 P0IF = 0; //清中断标志 } /**************************************************************************** * 名 称: P1_ISR(void) 中断处理函数 * 描 述: #pragma vector = 中断向量,紧接着是中断处理程序 ****************************************************************************/ #pragma vector = P1INT_VECTOR __interrupt void P1_ISR(void) { DelayMS(20); //延时去抖 LED1 = ~LED1; //改变LED1状态 P1IFG = 0; //清中断标志 P1IF = 0; //清中断标志 } 我延时20ms,不好使。请问高手,如何解决?谢谢! |
|
相关推荐
1个回答
|
|
感觉应该是中断函数的问题
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
高通的蓝牙QCC308x和51xx芯片开发工具和文档必须高通审核才能下载和使用吗?
939 浏览 0 评论
1495 浏览 0 评论
会员风采!华秋电子——致力于“为电子产业增效降本”的数字化智造平台
987 浏览 0 评论
【应用笔记】BlueNRG-LP、BlueNRG-LPS+省电模式
8040 浏览 1 评论
11259 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 16:46 , Processed in 0.390524 second(s), Total 42, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号