alisha 发表于 2006-7-4 11:38:59

讨论如何实现AVR软件复位的方法

我现在调试一个程序,要求开关按下,程序进入睡眠状态,被唤醒后从程序的初始化开始执行,也就是和机器上电复位的效果一样,用GOTO语句吗?RAM中的数据会影响程序的执行吗?老大们有这么试过吗?

our_avr 发表于 2006-7-4 11:48:48

笨拙的办法是死循环等狗





楼上的兄弟不是在换工作吗??现在有去吗??好象我们在同一个城市哦!


-----此内容被our_avr于2006-07-04,11:49:48编辑过

yuhuashan 发表于 2006-7-4 11:52:56

void (*reset)(void)=0x0000

mored 发表于 2006-7-4 12:33:19

关中断,跳转到0

alisha 发表于 2006-7-4 13:36:36

1楼,2楼的我要试下先。

3楼的没看懂,还要麻烦您多打两字。



our_avr我上次面试没有结果,工作内容多是机械装配方面的,我也不懂,也不喜欢做。

你在哪里上班啊,有空一起出来喝茶聊天,以前经常去水天堂茶馆打包分,最近很少去了。

mored 发表于 2006-7-4 14:01:12

void reset()

{

asm( "cli" );

asm( "clr r30" );

asm( "clr r31" );

asm( "ijmp" );

}


-----此内容被mored于2006-07-04,14:24:42编辑过

our_avr 发表于 2006-7-4 14:25:56

哦,我过去也长去水天堂的!钱堂人家的还要贵点,感觉到咖啡厅比较划算,只要消费个25元就可以座半天!哈哈!不过没有零食。有机会还想多向你学习学习!

本人菜鸟一个

给个QQ:61252284
-----此内容被our_avr于2006-07-04,14:27:35编辑过

alisha 发表于 2006-7-4 15:55:30

我看过你刚才发的程序了,你就别装了,我回家找找我的QQ去,好久都没有用了。

5楼的兄弟,谢谢你啊,我要周末到机器上试下,俺板子多不怕烧!

【2楼】 yuhuashan 好像是函数指针,我不太会用,能多讲点吗?void (*reset)(void)=0x0000


-----此内容被alisha于2006-07-04,16:05:14编辑过

diziaihaozhe 发表于 2011-10-12 21:17:23

谢谢5楼!

chushichongyu 发表于 2011-10-13 11:21:48

二楼的程序是不是这莫理解。。
这个函数是返回一个指针,这个指针指向了0x0000这个地址。。
只要执行这个函数,那么,对于程序段寄存器ip会被赋值为0x0000,
所以代码会重新执行一遍。。。
那堆栈呢,清空了吗,还有其他的系统开销都会怎么变化呢?
小弟大三,刚学完微机原理,所以斗胆请教一句。。

438629087 发表于 2011-10-13 12:38:13

asm("jmp 0x0000");这句能行不?

stm8s 发表于 2011-10-13 17:17:27

看看

滴答滴答下雨啦 发表于 2013-11-21 11:02:32

学过了,我也试试……
页: [1]
查看完整版本: 讨论如何实现AVR软件复位的方法