[PIC®/AVR®/dsPIC®产品] Proteus仿真出错

[复制链接]
 楼主| kuheye 发表于 2014-2-14 20:37 | 显示全部楼层 |阅读模式
前几天使用Proteus(ver7.7)仿真,芯片为PIC16F1828
发现无法清除电平变化中断的标志位,尽管程序代码将IOCBF清零,但INCOT,BIT0(IOCIF)一直无法清零
导致一退出中断,又立即进入中断,陷入死循环,导致看门狗动作

后来产品更改需要,第2版样机更改为PIC16F1936,故障依旧

发现电平中断仿真出错的具体位置是,无法清零IOCIF(INTCON,0)
数据手册上说这个标志位是"只读"的,只要将IOCBF全部清零,这个标志位自动清零

IOCIF 标志位是只读位,在IOCBF 寄存器中所有电平变化中断标志都由软件清零后,该位被清零。
在Proteus中仿真,即便清除了IOCBF,也无法清零IOCIF

上面两种型号的单片机,在MPLAB IDE SIM环境下,正常
可以清晰看到,只要将IOCBF清零,这IOCIF自动清零
youss 发表于 2014-2-15 00:27 | 显示全部楼层
后来产品更改需要,第2版样机更改为PIC16F1936,故障依旧

都成产品了还用Proteus仿真?用MPLAB-IDE加个PICkt3可在线仿真还能看到实际运行情况不更好吗!
 楼主| kuheye 发表于 2014-2-15 12:08 | 显示全部楼层
1.产品设计中,更换芯片,(PIC16F1828端口不够,换成PIC16F1936)不是成熟的产品换芯片
2.PICkit3与Proteus仿真,各有千秋,前者好处自然不必多说,后者也比较便利,不用做成实物,就把程序调的差不多了,非常适合旅行中用笔记本开发东西(整天被老板囚禁在办公室的工程师,无法理解这点)
NE5532 发表于 2014-2-15 22:22 | 显示全部楼层
不敢苟同,P调完的程序,还得弄回硬件上再测一次,工程师应该在办公室里写程序,写歌可以在旅途中。
yklstudent 发表于 2014-2-17 12:25 | 显示全部楼层
有意思的 呵呵。。。。。。。。
2850151772 发表于 2014-2-21 14:25 | 显示全部楼层
呵呵。。。
 楼主| kuheye 发表于 2014-4-9 16:40 | 显示全部楼层
NE5532 发表于 2014-2-15 22:22
不敢苟同,P调完的程序,还得弄回硬件上再测一次,工程师应该在办公室里写程序,写歌可以在旅途中。 ...

问题已经解决,还是自己的源代码有问题.Proteus没有问题.
重新编写源代码,Proteus仿真通过.

顺便说一句,没用过Proteus的人,没有资格评论Proteus
存在就是合理,既然有人用它,就有它合理的一面,而没使用过的人,无法理解
vic.kong 发表于 2016-5-4 17:10 | 显示全部楼层
kuheye 发表于 2014-4-9 16:40
问题已经解决,还是自己的源代码有问题.Proteus没有问题.
重新编写源代码,Proteus仿真通过.

hi,哥们儿:
不知道你的这个问题是如何解决的,我现在也遇到这个问题~谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

88

帖子

2

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

31

主题

88

帖子

2

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