C8051F340的问题

[复制链接]
25308|26
lhj200304 发表于 2009-12-22 11:22 | 显示全部楼层
把狗关了。我也被狗咬过
 楼主| luowei2651 发表于 2009-12-22 11:50 | 显示全部楼层
是的,20楼所说的情况,已经解决,谢谢各位!!!!!
xlsbz 发表于 2009-12-22 21:11 | 显示全部楼层
这个问题以前在论坛有人问过!
草履虫 发表于 2009-12-22 22:01 | 显示全部楼层
1. 我用51类的单片机,从来就不用他的那个startup.a51文件, 直接把那个东西删除后,自已写. 不用管那些东西.
2. 我没有研究过startup.a51这个文件, 只是猜想,这段代码只是启动的一些初始化设置, 可以自已写主程序将需要的寄存器初始化.以前的KEIL是没有的. 现在有了,也不要太关心删除它有问题.
这样的话,你的那个程序就应该没有问题了.
void main(void)
{
xxx_init();//自己写的初始化代码, 只需要初始化自已用的内存和寄存器就行了.
while(1){
//客户代码
}
}
以上是个人看法. 有问题请大家更正.
Down_Free 发表于 2009-12-23 09:54 | 显示全部楼层
程序最开始添加下面2句话试试看,就是用程序来关闭看门狗!
   WDTCN = 0xDE;                       // Disable watchdog timer
   WDTCN = 0xAD;
match07 发表于 2009-12-24 11:34 | 显示全部楼层
340一直用的挺好的,出现这种情况,看看是不是看门狗出问题了。340的看门狗默认是打开的,在初始化程序时应该先把看门狗关掉,初始化完成后再打开。
wlzts110 发表于 2009-12-24 15:32 | 显示全部楼层
Silabs IDE中默认的所有全局变量都是在进入main之前完成的,wdt 上电默认是打开的,如果全局变量太多,初始化时间会很长,进入main函数前wdt已经溢出了,导致重复复位。把全局变量的初始化放到main中试试看。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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