typedef struct bit0 : 1

来源:互联网 发布:淘宝页面显示不全 编辑:程序博客网 时间:2024/05/23 19:31
#define Uint unsigned inttypedef struct{Uint bit0  : 1;Uint bit1  : 1;Uint bit2  : 1;Uint bit3  : 1;Uint bit4  : 1;Uint bit5  : 1;Uint bit6  : 1;Uint bit7  : 1;Uint bit8  : 1;Uint bit9  : 1;Uint bit10 : 1;Uint bit11 : 1;Uint bit12 : 1;Uint bit13 : 1;Uint bit14 : 1;Uint bit15 : 1;}Bit;typedef struct{Uint bytel  : 8;Uint byteh  : 8;}Byte;typedef union{Bit bit;Byte byte;Uint port;}UNport;#define PA      ((volatile UNport *)(0x7000))#define PA_Buffer  ((volatile UNport *)(0x7001))#define PA_Dir    ((volatile UNport *)(0x7002))#define PA_Attrib    ((volatile UNport *)(0x7003))#define PA_Latch    ((volatile UNport *)(0x7004))#define PB      ((volatile UNport *)(0x7005))#define PB_Buffer    ((volatile UNport *)(0x7006))#define PB_Dir    ((volatile UNport *)(0x7007))#define PB_Attrib    ((volatile UNport *)(0x7008))#define Poscu      ((volatile UNport *)(0x7013))#define Ptbu      ((volatile UNport *)(0x700e))#define Ptbc      ((volatile UNport *)(0x700f))#define Pt0    ((volatile UNport *)(0x700a))#define Pt1      ((volatile UNport *)(0x700c))#define Pt0u      ((volatile UNport *)(0x700b))#define Pt1u      ((volatile UNport *)(0x700d))#define Pintu    ((volatile UNport *)(0x7010))#define Pintc    ((volatile UNport *)(0x7011))#define Padm      ((volatile UNport *)(0x7014))#define Padl    ((volatile UNport *)(0x702c))#define Padu      ((volatile UNport *)(0x7015))#define Padmuxu  ((volatile UNport *)(0x702b))#define Pda0      ((volatile UNport *)(0x7017))#define Pda1      ((volatile UNport *)(0x7016))#define Pdau      ((volatile UNport *)(0x702a))#define Pwdogc    ((volatile UNport *)(0x7012))#define Pflashu  ((volatile UNport *)(0x7555))//-------------------------------------------------------------------------------------------------------//以下部分在编程中直接调用使用;#define Watchdog_Clear  Pwdogc->port#define P0_0  PA->bit.bit0#define P0_1  PA->bit.bit1#define P0_2  PA->bit.bit2#define P0_3  PA->bit.bit3#define P0_4  PA->bit.bit4#define P0_5  PA->bit.bit5这种结构体定义方式书上没有解释?不明白什么意思?Uint bit: 1;: 1?没见过?为什么这样可以将凌阳单片机的接口进行位定义?

回答:

一.

typedef struct { Uint bit0 : 1; Uint bit1 : 1; Uint bit2 : 1; Uint bit3 : 1; Uint bit4 : 1; Uint bit5 : 1; Uint bit6 : 1; Uint bit7 : 1; Uint bit8 : 1; Uint bit9 : 1; Uint bit10 : 1; Uint bit11 : 1; Uint bit12 : 1; Uint bit13 : 1; Uint bit14 : 1; Uint bit15 : 1; }Bit; 这个结构体有16个单元,每个单元一位,正好可以用于单片机中的数据保存和读取问题.应该是16位机吧

二.

 

typedef struct { Uint bit0 : 1; Uint bit1 : 1; Uint bit2 : 1; Uint bit3 : 1; Uint bit4 : 1; Uint bit5 : 1; Uint bit6 : 1; Uint bit7 : 1; Uint bit8 : 1; Uint bit9 : 1; Uint bit10 : 1; Uint bit11 : 1; Uint bit12 : 1; Uint bit13 : 1; Uint bit14 : 1; Uint bit15 : 1; }Bit; 每个成员各自占1个bit,这是按bit位来定义结构体的 

 

原创粉丝点击