[DSP编程] DSP中struct用法

[复制链接]
2751|8
 楼主| HD21425 发表于 2013-11-26 09:40 | 显示全部楼层 |阅读模式
DSP中位定义和结构体定义都是struct,那如何区别呢?
 楼主| HD21425 发表于 2013-11-26 10:08 | 显示全部楼层
此贴已结!
zhangmangui 发表于 2013-11-26 10:19 | 显示全部楼层
举例来说
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 {
   union  GPAMUX_REG   GPAMUX;
     ...
};
上面将定义的各种联合体又汇总到一起,上面结构体里的GPAMUX和上上面的GPAMUX_REG等价;
接下来就是最后的一个定义:
extern volatile struct GPIO_MUX_REGS GpioMuxRegs;
也就是定义了一个GpioMuxRegs结构体,其实整体就是个结构体的嵌套
GpioMuxRegs.GPAMUX.bit.C1TRIP_GPIOA13=**;
上句是应用  你跟着追踪一下,嵌套
zhangmangui 发表于 2013-11-26 10:19 | 显示全部楼层
HD21425 发表于 2013-11-26 10:08
此贴已结!

什么意思
 楼主| HD21425 发表于 2013-11-26 10:26 | 显示全部楼层
看书看懂了,还是非常感谢版主的热心帮忙!
 楼主| HD21425 发表于 2013-11-26 10:26 | 显示全部楼层
zhangmangui 发表于 2013-11-26 10:19
什么意思

非常感谢!
zhangmangui 发表于 2013-11-26 10:35 | 显示全部楼层
HD21425 发表于 2013-11-26 10:26
看书看懂了,还是非常感谢版主的热心帮忙!

相互学习  共同进步  
你说此贴已结  看来你不知道怎么结贴
看看这个方法
https://bbs.21ic.com/icview-442857-1-1.html
 楼主| HD21425 发表于 2013-11-26 11:49 | 显示全部楼层
zhangmangui 发表于 2013-11-26 10:35
相互学习  共同进步  
你说此贴已结  看来你不知道怎么结贴
看看这个方法

网站说需要一日以后才能结贴!
zhangmangui 发表于 2013-11-26 13:06 | 显示全部楼层
HD21425 发表于 2013-11-26 11:49
网站说需要一日以后才能结贴!

哦  是的  一日之后才能结贴
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

69

帖子

0

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