[技术问题解答] 结构体问题

[复制链接]
957|6
 楼主| moyou3344 发表于 2015-6-5 08:35 | 显示全部楼层 |阅读模式
用的芯片是MC56F84462,CW版本10.6
工程中定义了结构体,结构体中都是对位的定义,比如
typedef union
{
    unsigned long LONG;
        struct
        {
                unsigned short L_FLAG;//低位
                unsigned short H_FLAG;//高位
        } WORD;
        struct
        {
                unsigned long RELAY                  :1;
                unsigned long SERCH_FR        :1;//
                unsigned long VOL_END         :1;//
                unsigned long SERCH_RST       :1;               
                      unsigned long STOP_E0         :2;
                unsigned long CLR_E0          :1;
                unsigned long FIRST        :1;
                unsigned long START        :2;
                unsigned long RST_START   :1;
                unsigned long VOL_SH_ST       :1;
                unsigned long VOL_SH_END      :1;
                unsigned long SERCH_START     :1;
                unsigned long DC_START      :2;

            unsigned long ABORT_REVERT    :1;
            unsigned long WR_FLASH_START  :1;       
                unsigned long PRE_SHUT        :1;
                unsigned long PASSWORD        :1;//密码锁定
                unsigned long MD     :2;//
                unsigned long RX_DATA_LEN     :1;
                unsigned long TREF       :1;
                unsigned long END        :1;
                unsigned long OWNER_DATA      :1;                       
                unsigned long COMM_END        :1;//
                unsigned long LT_LED         :1;//       
                unsigned long LV_LED         :1;//               
                unsigned long VOL_TRIG        :1;//
                unsigned long VOL_BREAK_FULL  :1;//       
                unsigned long DC_FLAG         :1;//
        } BIT;
       
} flag_val;
程序中对位可以直接进行赋值,但是芯片是怎么执行赋值过程的呢,对于val.BIT.DC_FLAG=1是先进行清零再赋值1?
cowboy2014 发表于 2015-6-5 08:47 | 显示全部楼层
单片机怎么赋值不用管吧,那是编译器干的事情
 楼主| moyou3344 发表于 2015-6-5 08:50 | 显示全部楼层
cowboy2014 发表于 2015-6-5 08:47
单片机怎么赋值不用管吧,那是编译器干的事情

主要是我现在出现问题了,我将结构体中对位的赋值换成不是结构体形式赋值就不会出现问题,所以想知道为什么会出现这种状况。
cowboy2014 发表于 2015-6-5 08:57 | 显示全部楼层
moyou3344 发表于 2015-6-5 08:50
主要是我现在出现问题了,我将结构体中对位的赋值换成不是结构体形式赋值就不会出现问题,所以想知道为什 ...

你可以单步运行一下试试,看看结构体的赋值和不是结构体形式的赋值最终有什么不同
 楼主| moyou3344 发表于 2015-6-5 09:07 | 显示全部楼层
cowboy2014 发表于 2015-6-5 08:57
你可以单步运行一下试试,看看结构体的赋值和不是结构体形式的赋值最终有什么不同 ...

恩,有道理啊,我先试试
FSL_TICS_Robin 发表于 2015-6-9 10:19 | 显示全部楼层
非常感谢你关于DSC的技术问题。如果你没有其他问题,我们将此帖默认为已解决.
芙蓉洞 发表于 2015-6-10 08:45 | 显示全部楼层
楼主问题解决了吗?想了解一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

28

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部