打印
[STM8]

STM8L 外部中断问题

[复制链接]
4472|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
playerol|  楼主 | 2015-6-3 16:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 playerol 于 2015-6-3 16:58 编辑

用STM8L051 进入HALT,用PB5外部中断唤醒,   初始化
GPIO_Init(GPIOB,KEY,GPIO_Mode_In_PU_IT);     
   EXTI_SetPortSensitivity(EXTI_Port_B,EXTI_Trigger_Rising_Falling);
   ITC_SetSoftwarePriority(EXTI5_IRQn,ITC_PriorityLevel_3);
进入HALT部分语句
sim();
GPIO_Init(GPIOB,KEY,GPIO_Mode_In_PU_IT);
rim();
halt();

中断部分

INTERRUPT_HANDLER(EXTI5_IRQHandler, 13)
{

  sim();   
  GPIO_Init(GPIOB,GPIO_Pin_5,GPIO_Mode_In_PU_No_IT);
   EXTI_ClearITPendingBit(EXTI_IT_Pin5);
   rim();
}


本意是按下或松开唤醒,到一定时间自动进入睡醒,但结果是按下不断进入中断,要松开才继续别的部分程序,并且开机前按下,开机后松开没有唤醒。
请教下各路大神如何处理????
沙发
playerol|  楼主 | 2015-6-5 11:52 | 只看该作者
本帖最后由 playerol 于 2015-6-5 12:04 编辑

仿真看了,不管怎么设置都会在按下时,不断在中断里死循环,EXTI_SR1=0x02,用EXTI_ClearITPendingBit(EXTI_IT_Pin5);或用EXTI->SR1=0x02都用,直到松开才不死循环,路过的大神指点下啦

使用特权

评论回复
板凳
fengmailx| | 2015-6-29 18:40 | 只看该作者
解决了嘛?

使用特权

评论回复
地板
lefeng| | 2015-6-29 18:43 | 只看该作者
按键去抖动了吗,楼主

使用特权

评论回复
5
playerol|  楼主 | 2015-7-10 15:58 | 只看该作者

没有,本想做到小于100uA,急着打样给客人,就没有搞halt()模式,各样尽量做低功耗大约0.4ma,勉强可以接受

使用特权

评论回复
6
playerol|  楼主 | 2015-7-10 16:00 | 只看该作者
lefeng 发表于 2015-6-29 18:43
按键去抖动了吗,楼主

没有,打算有触发就算唤醒,过些时间才进入睡眠

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

28

帖子

0

粉丝