打印

PIC单片机的问题,已发过贴,新开,贴上程序,请高手指点

[复制链接]
1757|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sevenwolf|  楼主 | 2014-6-10 12:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我把最简单的程序贴上来,我描述下我外部接口RB0,1,2,4输出口,RB3 PWM,RB5作为电平输入记录脉宽。下边程序是精简到最小的程序,软件仿真没有问题,ICD2仿真或烧入芯片会有问题,至于具体问题就是会进这段代码
else if(gPowerRatio>gcPower)
                                {
                                        gPowerRatio-=1;
                                        LED3=~LED3;
                                };看完程序就知道,按程序的编写要求这段代码时不可能执行的,但是使用ICD2调试的时候是会进入的,烧写进芯片也是会进入的。
程序是现在是用9.83的编译的,先前用9.80的也是这样,如果用9.80请更改下报错的寄存器名称,就是将OPTION_REG更改为OPTION,芯片用的是PIC16F88

c.rar

1.41 KB

沙发
sevenwolf|  楼主 | 2014-6-10 12:44 | 只看该作者
再次说明,上述程序在MPLAB IDE 中软件仿真没有问题,不过我无法用软件模拟出RB5的信号,所以没有测试RB5的电平中断;在ICD2仿真中是有问题的,就是会进上边那段代码,在ICD2仿真中是实际电路仿真,RB5测试的是100HZ的周期信号

使用特权

评论回复
板凳
sevenwolf|  楼主 | 2014-6-10 14:50 | 只看该作者
在proteus中仿真也是和在ICD2中仿真一样的结果,真的很诡异,到时什么东西改变了变量

使用特权

评论回复
地板
yklstudent| | 2014-6-10 16:48 | 只看该作者
完全没出现楼主描述的现象 试了下

使用特权

评论回复
5
sevenwolf|  楼主 | 2014-6-10 20:09 | 只看该作者
yklstudent 发表于 2014-6-10 16:48
完全没出现楼主描述的现象 试了下

你用我的代码试试,难道我的软件有问题?

使用特权

评论回复
6
sevenwolf|  楼主 | 2014-6-10 22:04 | 只看该作者
附件中是完整的项目包,MPLAB IDE的和MPLAB X IDE的都有,MPLAB X用的是XC8 FREE版的,还有PROTEUS的仿真图纸用的是PROTERS 8,不信的自己编译运行看看就知道,我是没办法理解。

PIC16F88.rar

220.17 KB

使用特权

评论回复
7
yklstudent| | 2014-6-11 09:24 | 只看该作者
.......................................

PIC16F88.zip

252.27 KB

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
sevenwolf + 3 很给力!
8
sevenwolf|  楼主 | 2014-6-11 12:04 | 只看该作者
yklstudent 发表于 2014-6-11 09:24
.......................................

什么意思,我看了你里边更改的,但只是改了EEPROM,我没用

使用特权

评论回复
9
yklstudent| | 2014-6-11 12:15 | 只看该作者
我改了EEPROM  你哪只眼睛看到我改EEPROM了?
怎么不去试试呢,无语的要死

使用特权

评论回复
10
sevenwolf|  楼主 | 2014-6-11 12:29 | 只看该作者
yklstudent 发表于 2014-6-11 12:15
我改了EEPROM  你哪只眼睛看到我改EEPROM了?
怎么不去试试呢,无语的要死

我看到,谢谢
但是我不明白在中断开关中断为什么会造成这个结果,非常感谢

使用特权

评论回复
11
sevenwolf|  楼主 | 2014-6-11 12:50 | 只看该作者
yklstudent 发表于 2014-6-11 12:15
我改了EEPROM  你哪只眼睛看到我改EEPROM了?
怎么不去试试呢,无语的要死

非常感谢你的答复 ,再次感谢,是我自己对PIC的结构不了解,其实关键还是在ei()这条语句上,一旦在中断在开再次开了中断,中断就可能重入了,但是PIC不支持重入,所以状态寄存器或W,这些都可能出错了。再次感谢。

使用特权

评论回复
12
yklstudent| | 2014-6-11 13:22 | 只看该作者
sevenwolf 发表于 2014-6-11 12:50
非常感谢你的答复 ,再次感谢,是我自己对PIC的结构不了解,其实关键还是在ei()这条语句上,一旦在中断在 ...

结贴 给分吧

使用特权

评论回复
13
sevenwolf|  楼主 | 2014-6-11 14:19 | 只看该作者
yklstudent 发表于 2014-6-11 13:22
结贴 给分吧

这个现在还结不了,还没一天,前一个已经结了,放心吧

使用特权

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

本版积分规则

17

主题

72

帖子

1

粉丝