单片机莫名其妙复位

[复制链接]
25826|51
jack.how 发表于 2010-5-21 12:53 | 显示全部楼层
主程序没有死循环出现,程序最多只跑一遍!
一棵小草 发表于 2010-5-21 13:10 | 显示全部楼层
要知道程序的流程,可以仿真啊,靠,不会仿真的意思都不懂吧

真怀疑你是怎么用keil的,没有硬件仿真也可以软件仿真嘛,大不了设置断点,然后单步执行,不就知道什么原因了?
 楼主| 不戴帽子 发表于 2010-5-21 16:02 | 显示全部楼层
22# 一棵小草
我仿真过了,程序执行没有错误,下载后运行就不正确了,不明白为什么?请指点
 楼主| 不戴帽子 发表于 2010-5-21 16:03 | 显示全部楼层
21# jack.how
您说的非常对,我就是想让程序按顺序执行一遍,但是它到中途就会返回到主函数的开始处,我不明白这是为什么,仿真也没发现有问题啊
loveguigui0929 发表于 2010-5-21 16:39 | 显示全部楼层
不懂你说的是什么
puqingzj 发表于 2010-5-21 18:46 | 显示全部楼层
看看是不是编译后HEX超过了c52的容量
ningling_21 发表于 2010-5-21 18:50 | 显示全部楼层
这种问题我曾经碰到过,解决方法就是前面说的,不知道你是否是51单片机...
 楼主| 不戴帽子 发表于 2010-5-21 18:56 | 显示全部楼层
27# ningling_21
请您说的详细一点好吗,我的问题还没解决呢,谢谢
 楼主| 不戴帽子 发表于 2010-5-21 18:56 | 显示全部楼层
26# puqingzj
应该没抄吧,编译后是6k
ningling_21 发表于 2010-5-21 19:23 | 显示全部楼层
我用的是51的单片机,运行时程序莫名其妙的复位,经过指点,修改SP后就正常了...
yun_xiao 发表于 2010-5-23 11:31 | 显示全部楼层
程序功能是什么?
gx_huang 发表于 2010-5-23 15:38 | 显示全部楼层
修改SP就正常?C还需要修改SP?
hgjinwei 发表于 2010-5-23 17:27 | 显示全部楼层
这玩意还讨论了那么久?
仿真正常是因为你认为程序运行完main就算正常,但是在实际的处理器内部,程序是不会在main后面给你停住的,PC会一直往上跑,后面她到底在干什么就难于预知了,如果全是FF还好,跑完一串FF后就会回到0000H重新执行。如果不是,那她干了什么就只有她自个知道了。
zhangjiwei2007 发表于 2010-5-23 20:47 | 显示全部楼层
复位键是否松动,编程中是否写错。
flutters 发表于 2010-5-23 21:09 | 显示全部楼层
我也碰到类似情况,我碰到的是由于函数调用时,进入了中断嵌套后堆栈溢出了
shibaba065146 发表于 2010-5-25 11:11 | 显示全部楼层
哈哈:)
chenchenxxx 发表于 2010-5-26 09:25 | 显示全部楼层
怎么没有while? 内部看门狗复位了?
YEZI930 发表于 2010-5-27 09:14 | 显示全部楼层
看门狗呢?
YEZI930 发表于 2010-5-27 09:15 | 显示全部楼层
基本程序架构
void main(void)
{
    init();
   
    while(1)
    {
        f1();
        f2();
         .....
    }
}

void isr_uart(void) interrupt 4
{

}
ayb_ice 发表于 2010-5-21 10:48


按照标准写!
peigang 发表于 2010-5-27 16:04 | 显示全部楼层
太多人说了
建议画流程图
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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