[STM8] STM8s 在唤醒的时候,如何用C语言实现汇编跳转的效果?

[复制链接]
3700|8
 楼主| tieguanyin2008 发表于 2010-9-5 16:15 | 显示全部楼层 |阅读模式
如果想跳STM8s 在唤醒的时候,如何用C语言实现汇编跳转的效果?

比如:

main()
{
//Reset:

//Address_A:
Ini_System();

if(没按开机键)
{halt();}

if(按了开机键)
{run();}

while(1)
{//检测关机,如果关机:
{halt();}

//唤醒B
//这里如何跳到 Address_A?
}




{
blueicewind 发表于 2010-9-5 20:57 | 显示全部楼层
可以用中断去做;
香水城 发表于 2010-9-5 21:43 | 显示全部楼层
汇编跳转的效果什么样?
 楼主| tieguanyin2008 发表于 2010-9-5 21:55 | 显示全部楼层
汇编语言写的时候比如说检测到关机按键,直接设置好关机状态就跳转过去了。用C不知道怎么做,按上面的好象去不到同一地址。
 楼主| tieguanyin2008 发表于 2010-9-5 22:00 | 显示全部楼层
本帖最后由 tieguanyin2008 于 2010-9-5 22:01 编辑

想在C中实现下面的流程:

Powerdown:
halt;

Wakeup:
call ini_system
call run
...

;;;检测到关机信号
jump Powerdown
香水城 发表于 2010-9-5 22:29 | 显示全部楼层
IJK 发表于 2010-9-6 09:48 | 显示全部楼层
很简单啊:
在最外层加
while(1)
{
}
t2230510 发表于 2010-9-9 22:35 | 显示全部楼层
说到唤醒,我今天还有一个疑惑——在“wait”模式时禁止TIM1(TIM1_CR1 &= ~0x01; // 计数器关),等唤醒后再开TIM1,但试验的结果是唤醒后无法打开TIM1。why?
是不是要考虑唤醒时间啊?可wait的唤醒时间只有0.56us啊
 楼主| tieguanyin2008 发表于 2010-9-12 09:08 | 显示全部楼层
无法打开TIM1是不是TIM1其它寄存器在休眠前没设置好?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

90

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部