OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6681|回复: 2

有关待机唤醒,我有个问题想问

[复制链接]

23

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
195
金钱
195
注册时间
2012-10-24
在线时间
0 小时
发表于 2012-11-2 09:30:05 | 显示全部楼层 |阅读模式
我看了原子的代码后,发现和以前有个哥们儿,问原子那待机唤醒的问题一个样。就是按WKUP键后就进入了中断服务程序,如果WKUP按了3秒后,那么check_WKUP这个函数就会返回1,否则就返回0.那么中断函数中,如果check_WKUP返回1的话,就会进入待机模式。那么为什么在按下3秒后,又能够从待机模式退出呢?这始终令我头疼。
      我有个猜想是这样的。是不是进入待机模式后,按下WKUP键,唤醒系统了,因为唤醒的时候就像硬件复位一样,那些中断,配置什么的都没配置的,所以不会进入中断服务,而是进入WKUP_Init程序,然后配置相关东西,之后运行到
                                       if(Check_WKUP()==0) Sys_Standby();    //不是开机,进入待机模式 

        这个程序,然后进入  Check_wkup程序,看我的WKUP按键有没按下3秒,如果按下3秒了,返回值就是1,那么就不会进入 Sys_Standby() 这个待机模式的程序了呢?
           当然,在程序运行的时候,按下WKUP,这时因为已经设置了EXTI和NIVC这些中断配置,所以才会进入外部中断0,运行     
                                  EXTI0_IRQHandler()   这个程序,从而判断WKUP是否按下3秒,如果按下3秒,则返回值为1,进入        
     Sys_Enter_Standby();    这个程序


         说简单一点,就是   没进入待机模式的时候,按WKUP就会进入   EXTI0_IRQHandler()    这个中断函数,如果按下3秒了就进入待机模式。
          如果已经在待机模式下,按下WKUP,就会唤醒,此时不进入 EXTI0_IRQHandler()   这个中断函数,而是进入main函数的开头,一条条指令扫描下来,然后运行到 WKUP_Init()  函数,之后进入,运行  if(Check_WKUP()==0) Sys_Standby();    这条语句,从而判断WKUP键是否按下3秒,如果按下3秒,则开机,从待机模式下唤醒,不进入待机模式。



          我只能这样才能理解这个程序。如果不是这样理解的话,那么不管是待机状态还是唤醒状态,只要按下WKUP键,都会进入外部中断0的中断服务程序,如果WKUP按下3秒的话,就会进入待机模式。而  WKUP_Init()  这个程序就只有开机的时候运行过一次了。
               void EXTI0_IRQHandler(void)
                 {                           
                        XTI->R=1<<0;  //清除LINE10上的中断标志位   
                        f(Check_WKUP())//关机?
                        {     
                                   Sys_Enter_Standby(); 
                         }
                 }
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

25

主题

683

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1351
金钱
1351
注册时间
2012-4-25
在线时间
195 小时
发表于 2012-11-2 09:36:08 | 显示全部楼层
兄弟 自己 仔细看看 再来问啊,上面已经解释清楚了

1 如果是正常运行,先执行中断程序。 
2 如果是待机状态,则先复位并初始化。

还有一个你要 看清那个 WK_UP的按键 电路原理,当按键按下时候 就 是上升沿了,就先复位了,这样说的明白了吧
1-1
回复 支持 反对

使用道具 举报

23

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
195
金钱
195
注册时间
2012-10-24
在线时间
0 小时
 楼主| 发表于 2012-11-2 09:45:03 | 显示全部楼层
回复【2楼】mygod:
---------------------------------
嗯,我就是这样想的。待机状态,上升沿的话,就复位,从头开始运行,而不进入中断是吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-3-1 00:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表