首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Codewarrior中怎么定义位变量

对,看看用CW生成的C语言工程中该芯片的头文件怎么定义的。
比如定义PTDA,可以这样写
typedef union {
  byte Byte;
  struct {
    byte PTAD0   :1;                                       /* Port A Data Register Bit 0 */
    byte PTAD1   :1;                                       /* Port A Data Register Bit 1 */
    byte PTAD2   :1;                                       /* Port A Data Register Bit 2 */
    byte PTAD3   :1;                                       /* Port A Data Register Bit 3 */
    byte PTAD4   :1;                                       /* Port A Data Register Bit 4 */
    byte PTAD5   :1;                                       /* Port A Data Register Bit 5 */
    byte PTAD6   :1;                                       /* Port A Data Register Bit 6 */
    byte PTAD7   :1;                                       /* Port A Data Register Bit 7 */
  } Bits;
  struct {
    byte grpPTAD :8;
  } MergedBits;
} PTADSTR;

extern volatile PTADSTR _PTAD @0x00000000;

#define PTAD _PTAD.Byte
#define PTAD_PTAD0 _PTAD.Bits.PTAD0
#define PTAD_PTAD1 _PTAD.Bits.PTAD1
#define PTAD_PTAD2 _PTAD.Bits.PTAD2
#define PTAD_PTAD3 _PTAD.Bits.PTAD3
#define PTAD_PTAD4 _PTAD.Bits.PTAD4
#define PTAD_PTAD5 _PTAD.Bits.PTAD5
#define PTAD_PTAD6 _PTAD.Bits.PTAD6
#define PTAD_PTAD7 _PTAD.Bits.PTAD7
#define PTAD_PTAD _PTAD.MergedBits.grpPTAD

这样PTAD_PTAD0就是一位。
这个没有遇到过,在CW中好象不能把函数定义成位的形式。
返回列表