18F的编译器有点癫狂??

[复制链接]
yewuyi 发表于 2009-3-20 21:41 | 显示全部楼层

TO LS

PICC为什么不能用SWITCH&nbsp;???还是第一次听说有这个限制。。。<br /><br /><br />倒塌了,我程序里面都是用了大量的SWITCH,真不敢想象没有SWITCH的程序是什么样的。。。<br /><br /><br />另外,PICC也不是你说的有什么BUG把?PICC对函数指针支持不好,那是因为PIC16本身不太适合使用函数指针的原因,另外一个限制就是不要使用变量的绝对地址定位,如果非要用,尽量把这个变量绝对定位的RAM空间的后面,这是因为PICC不保留绝对定位的变量地址,如果不放在后面的话,可能形成变量地址覆盖。<br /><br />我用了PICC805、950两个版本,还有一个960版本,但960版本一直还没用来做产品。。。
machunshui 发表于 2009-3-21 10:16 | 显示全部楼层

还真没发现PICC有什么bug

还真没发现PICC有什么bug,<br />编译器的BUG是不容易发现的,绝大部分是用户自己的问题.<br /><br />不过楼主的这个问题很奇怪,代码感觉不会有什么问题,<br /><br />这个问题比较难以发现,发现了调试一下,看看编译后的汇编代码,应该比较容易找到问题的根源.<br /><br />等待楼主的答案...<br /><br /><br />
李冬发 发表于 2009-3-21 12:16 | 显示全部楼层

PICC的SWITCH就是发现了问题的!你的东西可用不表明它没问题

  
yewuyi 发表于 2009-3-21 12:34 | 显示全部楼层

请冬发君明示SWITCH有什么问题?

  
soso 发表于 2009-3-21 15:20 | 显示全部楼层

都局限在对子函数本身的讨论

&nbsp;&nbsp;&nbsp;你保证了你的工程里任何时刻对delay()的调用是唯一的么?这样的延时程序最好是做成可重入函数才保险。估计有些人没听说过可重入函数吧?再说,程序里有这样通过傻瓜数数的方式延时的设计,可以窥见程序员的基本功底的。
soso 发表于 2009-3-21 15:24 | 显示全部楼层

mcc18的内核是gcc

&nbsp;&nbsp;&nbsp;估计我们的水平还不能达到怀疑gcc的程度。
wolfererer 发表于 2009-3-21 17:01 | 显示全部楼层

这算不算bug

<br /><br /><br />芯片使用&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pic16f877a<br /><br />&nbsp;运行环境&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MPLAB&nbsp;8.10<br /><br />编译器&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PICC9.60&nbsp;PL0<br /><br />程序如下:<br /><br /><br />#include&nbsp;&ltpic.h&gt<br /><br />__CONFIG(HS&nbsp;&&nbsp;WDTEN&nbsp;&&nbsp;PWRTEN&nbsp;&&nbsp;BOREN&nbsp;&&nbsp;LVPDIS&nbsp;&&nbsp;DEBUGDIS&nbsp;&&nbsp;PROTECT);<br /><br />void&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;array[2];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array[0]&nbsp;=&nbsp;0x44;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array[1]&nbsp;=&nbsp;~array[0];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(array[1]&nbsp;==&nbsp;(~array[0]))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RB0&nbsp;=&nbsp;0;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RB1&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//程序跳到了这里&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br /><br />这是为什么?<br /><br />编译器Bug?<br />
李冬发 发表于 2009-3-21 20:55 | 显示全部楼层

在switch语句里,msp430gcc有同样的问题!

  
sssbang 发表于 2009-3-22 22:19 | 显示全部楼层

ls说的我都不敢用switch

究竟是什么问题啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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