解决:C8051系列单片机,代码量较大时工作不正常问题
时间:10-02
整理:3721RD
点击:
问题:最近用一款C8051F380单片机,写一个项目程序,结果奇怪地发现,当我的代码量增加一些后,程序烧录进去后,发现单片机几乎没工作,没有进主函数,串口更是不能工作了。怀疑是内存资源用超了,一看,此单片机4K RAM和64K ROM,资源绰绰有余,而且主函数下第一句就关闭了看门狗。找了好半天原因,无果。
解决:最后,将调试功能的Run to main()勾去掉,发现程序能调试了,但是代码在XDATALOOP这儿就容易产生复位,心想,是不是这个循环上单片机耗费的时间太长了,没有及时关闭看门狗,从而导致单片机复位了。于是,我在单片机的Startup.A51文件里,在STARTUP1下增加了如下代码:
STARTUP1:
;关闭看门狗
MOV A,0D9H
ANL A,#0BFH
MOV 0D9H,A
CLR A
问题成功解决了。
挺实用的技巧,赞一个
领教了,哈哈
感谢小编,收藏了,哈哈哈哈哈!
感觉电子发烧友里的回复基本都是客套话:谢谢小编分享。
谢谢小编分享。
单片机上有这么大量的初始化内容也是很少见啊
出现这样的问题真的是很郁闷啊。幸好小编能解决了。
主要是变量初始化赋值占用时间
这样的 分析 结果 挺好 说不定看到后 会少走弯路
实用的技巧,赞一个
嗯,小编分享的很有用,个人感觉应该时代码量增加后,相应的变量也增加,在单片机启动时,从flash读取变量的时间加长,导致复位
那可以晚一点开启看门狗吧。
能有点用
支持一个
学习了,支持一个
mark !