DSP中struct用法
DSP中位定义和结构体定义都是struct,那如何区别呢? 此贴已结! 举例来说struct GPAMUX_BITS{ // bits description
Uint16 PWM1_GPIOA0:1; // 0
Uint16 PWM2_GPIOA1:1; // 1
Uint16 PWM3_GPIOA2:1; // 2
Uint16 PWM4_GPIOA3:1; // 3
Uint16 PWM5_GPIOA4:1; // 4
Uint16 PWM6_GPIOA5:1; // 5
Uint16 T1PWM_GPIOA6:1; // 6
Uint16 T2PWM_GPIOA7:1; // 7
Uint16 CAP1Q1_GPIOA8:1; // 8
Uint16 CAP2Q2_GPIOA9:1; // 9
Uint16 CAP3QI1_GPIOA10:1; // 10
Uint16 TDIRA_GPIOA11:1; // 11
Uint16 TCLKINA_GPIOA12:1; // 12
Uint16 C1TRIP_GPIOA13:1;// 13
Uint16 C2TRIP_GPIOA14:1;// 14
Uint16 C3TRIP_GPIOA15:1;// 15
};
上面这个是结构体里定义了位域,也就是位域结构体,GPIO的每一位长度为一;
union GPAMUX_REG {
Uint16 all;
struct GPAMUX_BITS bit;
};
上面这个是联合体,占用同一个内存,也就是要么all 要么bit
其中bit又被定义为上面的位域结构体 即结构体GPAMUX_BITS和bit等价
struct GPIO_MUX_REGS {
unionGPAMUX_REG GPAMUX;
...
};
上面将定义的各种联合体又汇总到一起,上面结构体里的GPAMUX和上上面的GPAMUX_REG等价;
接下来就是最后的一个定义:
extern volatile struct GPIO_MUX_REGS GpioMuxRegs;
也就是定义了一个GpioMuxRegs结构体,其实整体就是个结构体的嵌套
GpioMuxRegs.GPAMUX.bit.C1TRIP_GPIOA13=**;
上句是应用你跟着追踪一下,嵌套 HD21425 发表于 2013-11-26 10:08 static/image/common/back.gif
此贴已结!
什么意思
看书看懂了,还是非常感谢版主的热心帮忙! zhangmangui 发表于 2013-11-26 10:19 static/image/common/back.gif
什么意思
非常感谢! HD21425 发表于 2013-11-26 10:26 static/image/common/back.gif
看书看懂了,还是非常感谢版主的热心帮忙!
相互学习共同进步
你说此贴已结看来你不知道怎么结贴
看看这个方法
https://bbs.21ic.com/icview-442857-1-1.html zhangmangui 发表于 2013-11-26 10:35 static/image/common/back.gif
相互学习共同进步
你说此贴已结看来你不知道怎么结贴
看看这个方法
网站说需要一日以后才能结贴! HD21425 发表于 2013-11-26 11:49 static/image/common/back.gif
网站说需要一日以后才能结贴!
哦是的一日之后才能结贴
页:
[1]