打印
[STM8]

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

[复制链接]
2659|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不知道怎么做,按上面的好象去不到同一地址。

使用特权

评论回复
5
tieguanyin2008|  楼主 | 2010-9-5 22:00 | 只看该作者
本帖最后由 tieguanyin2008 于 2010-9-5 22:01 编辑

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

Powerdown:
halt;

Wakeup:
call ini_system
call run
...

;;;检测到关机信号
jump Powerdown

使用特权

评论回复
6
香水城| | 2010-9-5 22:29 | 只看该作者
goto

使用特权

评论回复
7
IJK| | 2010-9-6 09:48 | 只看该作者
很简单啊:
在最外层加
while(1)
{
}

使用特权

评论回复
8
t2230510| | 2010-9-9 22:35 | 只看该作者
说到唤醒,我今天还有一个疑惑——在“wait”模式时禁止TIM1(TIM1_CR1 &= ~0x01; // 计数器关),等唤醒后再开TIM1,但试验的结果是唤醒后无法打开TIM1。why?
是不是要考虑唤醒时间啊?可wait的唤醒时间只有0.56us啊

使用特权

评论回复
9
tieguanyin2008|  楼主 | 2010-9-12 09:08 | 只看该作者
无法打开TIM1是不是TIM1其它寄存器在休眠前没设置好?

使用特权

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

本版积分规则

15

主题

90

帖子

1

粉丝