找回密码
 注册
关于网站域名变更的通知
查看: 167|回复: 3
打印 上一主题 下一主题

编译器不能理解我用sbit拼合位信息,还是有BUG?

[复制链接]
  • TA的每日心情
    开心
    2022-1-29 15:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2022-3-11 14:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    变量:
    : v6 B! @. |  M# F7 o& p& Dvolatile bdata Hall_val,DRV_val;
    0 D+ ~2 h  X9 @2 y& Gsbit ha=Hall_val^2;. [2 x$ p( o" u# v& K$ c# d( P5 O
    sbit hb=Hall_val^1;
    + N, J1 z2 t- M( p; x' D. w' `sbit hc=Hall_val^0;
    . x: e; c7 @9 j7 G; O$ e$ n
    # {: Y/ j4 c% ?# n拼合:5 r" t  a/ ^: J* R3 [
    ha=Ha;hb=Hb;hc=Hc
    * k% C* Y( i. v, m$ a3 _; C" P: M屏蔽未用的位:2 C6 F3 e2 i) I8 ^# X" M1 ?2 [
    Hall_val&=0x0f;) b) g- h* H0 d, j
    使用:
    # y- x7 p9 h! o, @7 N6 ODRV_val=hal_drv[Hall_val];
    ' m* \% v7 v; N! A' D8 x/ v8 F* q  N. Z  S) O- k7 x
    结果,Hall_val的值总是0.
    , M, ^5 I: V  w8 i# e查汇编,发现不能理解1 g* m! i% U9 v  S; H: J; ]

    4 |# R+ z# ?& j) _! p* Y  N   151:                         ha=Ha;hb=Hb;hc=Hc;" A. X" y9 }) B, `% m
    C:0x0389    A2B6     MOV      C,Ha(0xB0.6)
    & U8 }& k) e& J6 a5 wC:0x038B    9212     MOV      ha(0x22.2),C& ~& x( @& [- x
    C:0x038D    A2B3     MOV      C,Hb(0xB0.3)
    8 g5 m% F0 y8 T! l; K2 _: V- A4 gC:0x038F    9211     MOV      hb(0x22.1),C
    ! E! U. s. f9 r; wC:0x0391    A2B2     MOV      C,Hc(0xB0.2)
    ) [+ H  x/ c; p' qC:0x0393    9210     MOV      hc(0x22.0),C- z& `7 z7 h7 x6 ]+ m! q2 s; ?% [
       152:                         Hall_val&=0x0f;
    8 }$ y: c, y, pC:0x0395    53230F   ANL      0x23,#0x0F1 D# h* {( T. M3 J9 |$ P9 R
    C:0x0398    752200   MOV      Hall_val(0x22),#0x00
    $ |* t' s/ g& m4 v8 K! @7 g   153:                         DRV_val=hal_drv[Hall_val];3 L0 t" l+ P2 Z1 M7 d/ ]
    % d5 O6 S# l( M7 E
    这个各位有什么经验分享指导一下吗?
    " k; i5 m  I# ?& a3 b9 P) n* T
  • TA的每日心情
    开心
    2022-1-29 15:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2022-3-11 14:42 | 只看该作者
    sbit定义的是位变量,无论怎么运算结果只有1或0
  • TA的每日心情
    开心
    2022-1-29 15:07
  • 签到天数: 2 天

    [LV.1]初来乍到

    3#
    发表于 2022-3-11 15:02 | 只看该作者
    用结构体定义位,然后用联合体把结构体和位字节定义在同一内存,这样就既可以单独操作位,也可以操作字节,
  • TA的每日心情
    开心
    2022-1-29 15:05
  • 签到天数: 2 天

    [LV.1]初来乍到

    4#
    发表于 2022-3-11 16:25 | 只看该作者
    Ha,Hb,Hc的定义很重要,代码里没有定义,所以看不出具体的问题,你可以用,0,1代替,测试
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-8-11 12:41 , Processed in 0.109375 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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