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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    变量:: o/ x( y* W+ G. |. Q: }# o9 u& H
    volatile bdata Hall_val,DRV_val;
    : a( {0 @. ]. Q+ Msbit ha=Hall_val^2;( Q( m# k" u& b: m0 J+ S( @
    sbit hb=Hall_val^1;7 n! |4 V0 u9 u4 R/ G* U$ y) F
    sbit hc=Hall_val^0;, r4 l# W. B* s! ~" T$ c

    ' [; T; |, l: w5 H拼合:# t7 I1 o; _- \' g7 I
    ha=Ha;hb=Hb;hc=Hc7 g9 c" D0 T# R0 j( E8 @6 U$ S+ o
    屏蔽未用的位:4 A& g( D# {0 Y" z
    Hall_val&=0x0f;! L7 v! p- |8 A
    使用:
    5 O7 W( Y/ m" o  \: r1 DDRV_val=hal_drv[Hall_val];( Y- |# _  P3 u' Q3 n

    - f( I! |: z" y' M结果,Hall_val的值总是0.
    8 s1 x/ R+ g( U查汇编,发现不能理解
    9 [0 }9 \# F- B" s8 D% m% l( g4 t% d" _0 t- f: q
       151:                         ha=Ha;hb=Hb;hc=Hc;
    ; f: D! n" Q4 \  L: J7 h% i9 HC:0x0389    A2B6     MOV      C,Ha(0xB0.6)
    ; N* [5 @3 _7 ]( A$ S6 O! J) O+ i, CC:0x038B    9212     MOV      ha(0x22.2),C
    ) M/ E* {7 G8 I3 K& E, l( JC:0x038D    A2B3     MOV      C,Hb(0xB0.3)
    2 ?9 S0 e4 r  sC:0x038F    9211     MOV      hb(0x22.1),C2 j( T# _! V6 q9 }1 i* u
    C:0x0391    A2B2     MOV      C,Hc(0xB0.2)* I: G9 k3 K6 v; @: w+ P0 C
    C:0x0393    9210     MOV      hc(0x22.0),C3 j, W" f+ {4 H& X$ f# p9 ]$ }0 W
       152:                         Hall_val&=0x0f;3 _4 q! r# i5 ~9 A6 n
    C:0x0395    53230F   ANL      0x23,#0x0F7 h; r& P, i, Q8 w
    C:0x0398    752200   MOV      Hall_val(0x22),#0x00& }: p% q9 \) i0 ?
       153:                         DRV_val=hal_drv[Hall_val];
    ! M0 v: U8 i# S# [9 e. B1 x- @7 H7 n! m+ W& C1 q, }
    这个各位有什么经验分享指导一下吗?
    1 e8 ~% Z3 @: O- `9 @
  • 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-6-21 03:51 , Processed in 0.062500 second(s), 23 queries , Gzip On.

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

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

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