大学生电子设计竞赛
直播中

高群

7年用户 219经验值
私信 关注
[问答]

如下程序,请问其中的char wk0[31]; char wk1[31];等是表示什么意思(功能)?


在iodefine.h 文件中,对IO寄存器进行了定义,例如对port0的定义:
struct st_port0 {
union {
unsigned char BYTE;
struct {
unsigned char :5;
unsigned char B2:1;
unsigned char B1:1;
unsigned char B0:1;
} BIT;
} PDR;
char wk0[31];
union {
unsigned char BYTE;
struct {
unsigned char :5;
unsigned char B2:1;
unsigned char B1:1;
unsigned char B0:1;
} BIT;
} PODR;
char wk1[31];
union {
unsigned char BYTE;
struct {
unsigned char :5;
unsigned char B2:1;
unsigned char B1:1;
unsigned char B0:1;
} BIT;
} PIDR;
char wk2[31];
union {
unsigned char BYTE;
struct {
unsigned char :5;
unsigned char B2:1;
unsigned char B1:1;
unsigned char B0:1;
} BIT;
} PMR;
char wk3[31];
union {
unsigned char BYTE;
struct {
unsigned char :3;
unsigned char B4:1;
unsigned char :1;
unsigned char B2:1;
unsigned char :1;
unsigned char B0:1;
} BIT;
} ODR0;
char wk4[63];
union {
unsigned char BYTE;
struct {
unsigned char :5;
unsigned char B2:1;
unsigned char B1:1;
unsigned char B0:1;
} BIT;
} PCR;
char wk5[31];
union {
unsigned char BYTE;
struct {
unsigned char :5;
unsigned char B2:1;
unsigned char B1:1;
unsigned char B0:1;
} BIT;
} DSCR;
};
其中的char wk0[31]; char wk1[31];等是表示什么意思(功能)?

回帖(4)

高群

2018-7-23 00:53:27

你好!你的问题我们已经收到,会尽快答复,请随时关注Rulz新消息!
举报

高群

2018-7-23 01:06:48

wk这个变量是用来占用两个寄存器地址之间的空白位置的,比如PORT0.PDR的地址为0008 C000h,中间通过32长度的数组wk[31],进行空间占位,那么下一个寄存器PORT0.PODR地址为0008 C020h。后续所有的wk的数组都是用来对空间进行占位的。这个数组变量在编程的时候不能使用。
举报

高群

2018-7-23 01:13:49

明白了,谢谢
举报

高群

2018-7-23 01:26:10

In reply to Seven Sun:
明白了,谢谢
举报

更多回帖

发帖
×
20
完善资料,
赚取积分