xdata是large存储类型,volatile是通过硬件来改变指针指向的内容。 #define XBYTE ((unsigned char volatile xdata *) 0) 定义 XBYTE 为 指向 xdata 地址空间unsigned char 数据类型的指针,指针值为0 这样,可以直接用XBYTE[0xnnnn]或*(XBYTE+0xnnnn)访问外部RAM了。
我看到过其他的C编程,通常是这么用的: *(unsigned char volatile xdata *)(0x3000)=0xFF这类的方式来进行对外部绝对地址的字节访问。其实XBYTE就相当于一个指向外部数据区的无符号字符型变量的指针(的名称,且当前的指针指向外部RAM的0地址),而在C里面指针一般和数组是可以混用的。可以直接用XBYTE[0xnnnn]或*(X...
这个是KeilC 这个是定义了一个端口I/O地址的意思。
这个宏可以当做一个常量用,也可以当做一个数组 常量就不用说了,直接赋值就好,赋值给谁,谁就是这个数组的首地址,然后这个变量(应该也是无符号字符指针类型的)也就可以当做数组使用了 取值的时候,应该是取硬件寄存器或者管脚的值 这种定义不太可能出现在PC开发中,应该是单片机中的吧?CPU系统指定了...
已经存在定义”#defineps((unsignedcharvolatilexdata*)0)”,你希望片外RAM的234H的值并存入变量x中,你应该写的语句是:() A. ps x=ps[234]; B. x=ps[0x234]; C. x=ps[234]; D. x=0x48; 相关知识点: 试题来源: 解析 B.x=ps[0x234]; ...
xdata是large存储类型,volatile是通过硬件来改变指针指向的内容。 define XBYTE unsigned char volatile xdata 0 定义 XBYTE 为 指向 xdata 地址空间unsigned char 数据类型的指针,指针值为0 这样,可以直接用XBYTE 0xnnnn 或 XBYTE 0xnnnn 访问外部RAM了。 至于 volatile的作用就是让编译器不至于优化掉它的操作: vola...
将一个立即数,强制转换一个指针,再以这个指针取出这个地址开始一个字节的内容。具体0x2f5f,是什么,那就要看芯片的数据手册了。比如说,如果A寄存器的地址是0x2f5f,那么,定义了 define A *(volatile unsigned char xdata *) 0x2f5f 那么就可能对寄存器A赋值,只要 A = 0xff;就可以了。去...
#define XBYTE ((unsigned char volatile xdata *) 0) 定义 XBYTE 为 指向 xdata 地址空间unsigned char 数据类型的指针,指针值为0 这样,可以直接用XBYTE[0xnnnn]或*(XBYTE+0xnnnn)访问外部RAM了。 单片机2009-03-08 上传大小:3KB 所需:50积分/C币 ...
【单选题】已经存在定义”#defineps((unsignedcharvolatilexdata*)0)”,你希望片外RAM的24的值并存入变量x,你应该写的语句是:()A. ps x=ps[24]; B. x=ps[0x24]; C. x=ps[24]; D. x=0x24; 如何将EXCEL生成题库手机刷题 相关题库:单片机原理及应用题库 > 手机使用 分享 复制链接 新浪...
已经存在定义”#defineps((unsignedcharvolatilexdata*)0)”,你希望片外RAM的234H的值并存入变量x中,你应该写的语句是() A、ps x=ps[234]; B、x=ps[0x234]; C、x=ps[234]; D、x=0x48;免费查看参考答案及解析 题目: [单选] 已经存在定义"#defineps((unsignedcharvolatilexdata*)0)",你希望片外...