求救,使用picc8.05,整数比较,偶然出错的问题<br />我使用picc,由于芯片空间小,使用9级优化。在e2prom地址为data1,data2中,存方固定数,在中断中脉冲计数,并存放到e2prom地址data3,data4中,每次进入脉冲中断后,首先计数加一并存放到data3,data4中,并和存放到data1,data2中的预存数相比较,如果相等,则执行工作a,否则退出并显示,现在遇到一个问题,大部分情况下,当条件成立时,可以执行工作a,但是极少数情况,当计数到了,却没有执行工作a,请问这样比较有没有问题,是否是程序优化的问题?<br />union <br />{<br /> struct<br /> {uchar a;<br /> uchar b;<br /> }onechar;<br /> uint c;<br />}bcd;<br />temp1=EE_READ(data1);<br />temp2=EE_READ(data2);<br />bcd1.onechar.a=temp1;<br />bcd1.onechar.b=temp2;<br />temp1=EE_READ(data3);<br />temp2=EE_READ(data4);<br />bcd1.onechar.a=temp1;<br />bcd2.onechar.b=temp2;<br />if(bcd1.c==bcd2.c)<br />{工作a;} |