congcongy
驱动牛犊
驱动牛犊
  • 注册日期2003-07-05
  • 最后登录2006-10-18
  • 粉丝0
  • 关注0
  • 积分27分
  • 威望4点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:987回复:2

有关固件编程的问题

楼主#
更多 发布于:2003-07-29 08:52
在SMART板中的MAINLOOP.H头文件中有如下定义:
typedef union _epp_flags
{
struct _flags
{
unsigned char timer             : 1;
unsigned char bus_reset         : 1;
unsigned char suspend           : 1;
unsigned char setup_packet   : 1;
unsigned char remote_wakeup : 1;
unsigned char in_isr : 1;
unsigned char control_state : 2;
unsigned char configuration : 1;
unsigned char verbose : 1;
unsigned char ep1_rxdone : 1;
unsigned char setup_dma : 2;
unsigned char dma_state       : 2;
unsigned char power_down : 1; } bits;
unsigned short value;
} EPPFLAGS;
麻烦哪位大哥说一下上面那些定义的变量具体代表什么啊!
另外,有些变量我好象没有看到它被赋值就当作条件判断,这是怎么回事啊!
还有,如上变量后面加一个:1或:2是什么意思啊,难道这就是初值吗不象吧,我看了C51的书好象没这样赋值的,第一次使用C51,谢了。




flytomoon
驱动巨牛
驱动巨牛
  • 注册日期2003-07-09
  • 最后登录2004-10-18
  • 粉丝1
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-07-29 08:57
这些都是可以根据你自己的具体需要可以自己定义的,方便你的应用,开发板没有开发的变量,不过需要你比较熟才可以。
hex1993
驱动牛犊
驱动牛犊
  • 注册日期2001-09-04
  • 最后登录2005-02-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-29 09:18
这些定义是定义了D12各个动作的标志位,使用联合体结构定义,这种方法使FW结构比较紧凑,代码少,可读性较强。其实这与在C51中定义BIT 变量类型效果是一样的。后面的1,2等数代表这个标志位所占的BIT 数。一般如果是1,表明这个标志位只有两种状态,如SUSPEND,只有SUSPEND / NO SUSPEND;如果是2,则最多可以表示四种状态,如CONTROL_STATE,有 TRANSMIT / RECIEVE / IDLE 三种。
游客

返回顶部