找回密码
 立即注册
查看: 433|回复: 5

IO bit出错

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-03-21 16:30:53

13

主题

19

回帖

192

积分

注册会员

积分
192
发表于 2024-5-9 17:06:50 | 显示全部楼层 |阅读模式
u8    jj;
bit    i;

jj=2;
P33=jj>>1;



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

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


回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:358
  • 最近打卡:2025-06-18 08:01:08

4

主题

66

回帖

1197

积分

金牌会员

积分
1197
发表于 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,但二者是不同的。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:294
  • 最近打卡:2025-03-06 09:25:41

8

主题

318

回帖

1837

积分

金牌会员

积分
1837
发表于 2024-5-10 11:19:06 | 显示全部楼层
huaru*** 发表于 2024-5-10 08:06
一般不这样写,若写P3 = jj >> 1; 是对的,因为是整个P3组对应一个16进制数,比如P3 = 0x01,这确定了p3这 ...

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:358
  • 最近打卡:2025-06-18 08:01:08

4

主题

66

回帖

1197

积分

金牌会员

积分
1197
发表于 2024-5-10 13:57:28 | 显示全部楼层
Lkck*** 发表于 2024-5-10 11:19
P3^3=X;这种写法是错误的
P3^3不可以放在等号的左边
不要误导新人

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:358
  • 最近打卡:2025-06-18 08:01:08

4

主题

66

回帖

1197

积分

金牌会员

积分
1197
发表于 2024-5-10 13:58:19 | 显示全部楼层
[url][/url]
0015.png
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:268
  • 最近打卡:2025-06-17 07:01:20

62

主题

830

回帖

1552

积分

金牌会员

积分
1552
发表于 2024-5-10 14:12:56 | 显示全部楼层
类型不对吧   u8  8位   bit  1位   要不都为bit  要不都为u8    建议不要缩写了   直接写  unsigned  char  i    或 jj   或者  char i  或 jj
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-18 12:48 , Processed in 0.113974 second(s), 85 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表