打印

是我疯了还是PICC疯了?

[复制链接]
2252|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hjh002|  楼主 | 2008-8-8 15:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
发现怪问题了,我用的PICC 9.6 ,在一个发声子程序中钳入汇编,我们知道 BTFSS f,b 这条指令,只有当发生跳转的时候
才是两个周期,如果不发生跳转,接着执行紧跟着它的那条指令的话,是单周期的,今天我却碰到了相反的情况,看图:
沙发
hjh002|  楼主 | 2008-8-8 15:53 | 只看该作者

另一个图

这是怎么回事呢?
说明一下,这条指令在这个子程序中多次出现,但是只有这个子程序中的最后这一条发生这样的情况,因为是用32K的晶

体用来做发声程序,差了一个指令周期声音都变了, 头大了.


使用特权

评论回复
板凳
yewuyi| | 2008-8-8 17:09 | 只看该作者

请问一下,你是软件仿真还是带硬件仿真器的结果?

使用特权

评论回复
地板
yewuyi| | 2008-8-8 17:19 | 只看该作者

最好能把项目打包后给有PICC9.60编译器的XD测试

呵呵,我只有PICC8.05,950版本一直不能用。。。

使用特权

评论回复
5
hjh002|  楼主 | 2008-8-8 17:28 | 只看该作者

是软件仿真的结果,烧到IC上运行结果也一样.

没有硬件仿真.

使用特权

评论回复
6
lanyong| | 2008-8-8 17:33 | 只看该作者

莫优化

优化后,有些程序段乱跑.

不知道是否是这个问题哦.

使用特权

评论回复
7
hjh002|  楼主 | 2008-8-9 09:51 | 只看该作者

找到一半原因.

原来是编译器把这条指令改掉了,把BTFSS 改成了BTFSC,但是为什么编译器会把它改掉,原因不明中,去掉优化也一样.呵呵,用PICC,不明原因的神奇事情几乎个个项目都会发生,且个个不同.

使用特权

评论回复
8
yewuyi| | 2008-8-9 10:13 | 只看该作者

去掉优化不代表没有一点优化,除非你完全用汇编写

只要用C,即使去掉优化,在一些显而易见的问题上,编译器应该还是会做一些优化的,这种优化基本对你的代码没有影响。

使用特权

评论回复
9
hjh002|  楼主 | 2008-8-9 11:30 | 只看该作者

解决办法也有了

原来是RETURN指令在作怪,只需在RETRUN指令前随便插一条其他指令,比如NOP,编译器就不会把指令改掉了,看来RETURN指令前世一定是欠了PICC很多钱,或者是有负于PICC一片痴心,哈哈.

使用特权

评论回复
10
w321| | 2008-8-10 11:55 | 只看该作者

呵呵, 受教了

   

使用特权

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

本版积分规则

13

主题

120

帖子

0

粉丝