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