本帖最后由 woshigeshuai 于 2019-4-24 09:45 编辑
C程序
ram20^=4;
if((RB0==1) && (ram20&BIT(3)==0))
{
if(ram29<0X9A)
ram29++;
if(ram29>=0x9c)
ram29--; // need test
ram20|=BIT(3);
}
实际运行的,第二个判断条件居然没有
movlw 4
xorwf byte_DATA_24, f
btfss PORTB, RB0
bcf byte_DATA_24, 3
movfw byte_DATA_29
xorlw 9D
bnz loc_CODE_23F
; ---------------------------------------------------------------------------------------
测试使用下面的方法可以
ram20^=4;
if(RB0==1 && ram203==0)
{
if(ram29<0X9A)
ram29++;
if(ram29>=0x9c)
ram29--; // need test
ram20|=BIT(3);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
有大师级的自信不够,还要有一点真正的水平。
哎,吐槽下:遇到太多人,一有问题,就说C编译器和CPU有bug,赶紧给他解决和赔偿...被指正出来,嘴巴比金刚石还硬死不承认.
一周热门 更多>