金凌新电源 发表于 2024-5-9 17:06:50

IO bit出错

u8    jj;
bit    i;

jj=2;
P33=jj>>1;



jj=2;
i=jj>>1;
P33=i;

这两种运行都错误,第一好象是赋了8位的值到P3口上
第二个没置1


huaruolong 发表于 2024-5-10 08:06:41

一般不这样写,若写P3 = jj >> 1; 是对的,因为是整个P3组对应一个16进制数,比如P3 = 0x01,这确定了p3这组I/O的每一个I/O口设定,而P3^3 是p3组内的一个,只能写=0; 或这等于1,不能写P3^3 = 0x01;同样的到了bit对应的是0或1,不能写bit i = 0x01;0x01和1十进制都是1,但二者是不同的。

Lkck8210 发表于 2024-5-10 11:19:06

huaruolong 发表于 2024-5-10 08:06
一般不这样写,若写P3 = jj >> 1; 是对的,因为是整个P3组对应一个16进制数,比如P3 = 0x01,这确定了p3这 ...

P3^3=X;这种写法是错误的
P3^3不可以放在等号的左边
不要误导新人
应改为
sbit P33 = P3^3;
P33 = X;

huaruolong 发表于 2024-5-10 13:57:28

Lkck8210 发表于 2024-5-10 11:19
P3^3=X;这种写法是错误的
P3^3不可以放在等号的左边
不要误导新人


我确实错了,必须先把sbit led = P3^3; 然后再 led = 0;不能写P3^3 = 0;

huaruolong 发表于 2024-5-10 13:58:19

zhange 发表于 2024-5-10 14:12:56

类型不对吧   u88位   bit1位   要不都为bit要不都为u8    建议不要缩写了   直接写unsignedchari    或 jj   或者char i或 jj
页: [1]
查看完整版本: IO bit出错