PIC单片机必死大 法

[复制链接]
4204|10
 楼主| snakeemail 发表于 2011-8-25 20:33 | 显示全部楼层 |阅读模式
本帖最后由 snakeemail 于 2011-8-25 22:28 编辑

最近PIC的单片机死机了,死的很彻底,连晶振都没波形了。
最后发现不是硬件问题,而是软件问题。单片机是使用18系列的,编译器为C18,程序在高、低中断都调用了一个程序,结果引起了“可重入”问题,当高中断打断低中断,死了。
而且像这种问题是隐形的问题,特别不好查,故此纪念。
解决的方法很简单,以后将程序都放到主循环中就ok了。
NE5532 发表于 2011-8-25 22:22 | 显示全部楼层
楼主高兴得太早,软件死机不会停晶振的。
谈的元 发表于 2011-8-26 07:54 | 显示全部楼层
楼主高兴得太早,软件死机不会停晶振的。
NE5532 发表于 2011-8-25 22:22

楼主需要再检查
yewuyi 发表于 2011-8-26 08:38 | 显示全部楼层
楼主高兴得太早,软件死机不会停晶振的。
NE5532 发表于 2011-8-25 22:22


呵呵,如果进入SLEEP并且再也醒不过来,到也是可能的。
yewuyi 发表于 2011-8-26 08:40 | 显示全部楼层
不过LZ的解决方案是因噎废食,太绝对化了。

可重入其实就是临界代码的一种表现,写一个无临界代码的程序,是一个程序员的基本功能。
 楼主| snakeemail 发表于 2011-8-26 18:29 | 显示全部楼层
不过LZ的解决方案是因噎废食,太绝对化了。

可重入其实就是临界代码的一种表现,写一个无临界代码的程序,是一个程序员的基本功能。
yewuyi 发表于 2011-8-26 08:40

是的。不过看了不知多少书,才有讲呀。又不举例子,只能自己搞。
yewuyi 发表于 2011-8-26 22:52 | 显示全部楼层
高手:因为他失败经历的比别人多,所以成为高手,因为他成功的产品比别人多,所以成为高手.
lzw625 发表于 2011-9-12 20:11 | 显示全部楼层
说明你写程序的结构有问题,中断套嵌在PIC单片机中,最好不要用
lzw625 发表于 2011-9-12 20:24 | 显示全部楼层
说明你写程序的结构有问题,中断套嵌在PIC单片机中,最好不要用
shizaigaole 发表于 2011-9-13 07:50 | 显示全部楼层
PIC18按说可以支持重入,
编译器不支持而已。
黄jiajia 发表于 2011-9-14 19:29 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:提供500W线性 交流电源。0~300VAC,45~500Hz 提供10KW,0-330V直流电源,具体见http://blog.21ic.com/user1/3639/archives/2012/88528.html

547

主题

1909

帖子

8

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