打印
[PIC®/AVR®/dsPIC®产品]

Proteus仿真出错

[复制链接]
2539|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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调完的程序,还得弄回硬件上再测一次,工程师应该在办公室里写程序,写歌可以在旅途中。

使用特权

评论回复
5
yklstudent| | 2014-2-17 12:25 | 只看该作者
有意思的 呵呵。。。。。。。。

使用特权

评论回复
6
2850151772| | 2014-2-21 14:25 | 只看该作者
呵呵。。。

使用特权

评论回复
7
kuheye|  楼主 | 2014-4-9 16:40 | 只看该作者
NE5532 发表于 2014-2-15 22:22
不敢苟同,P调完的程序,还得弄回硬件上再测一次,工程师应该在办公室里写程序,写歌可以在旅途中。 ...

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

顺便说一句,没用过Proteus的人,没有资格评论Proteus
存在就是合理,既然有人用它,就有它合理的一面,而没使用过的人,无法理解

使用特权

评论回复
8
vic.kong| | 2016-5-4 17:10 | 只看该作者
kuheye 发表于 2014-4-9 16:40
问题已经解决,还是自己的源代码有问题.Proteus没有问题.
重新编写源代码,Proteus仿真通过.

hi,哥们儿:
不知道你的这个问题是如何解决的,我现在也遇到这个问题~谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

88

帖子

2

粉丝