可不可以定义一个指针变量、让其指向 SFR 寄存器?、
可不可以定义一个指针变量、让其指向 SFR 寄存器?、
程序中比如我有个结构体:
struct P1func
{
unsigned char reserved : 4;
unsigned char ctl : 1;
unsigned char scan : 3;
};
struct P1func *p1f;
想让 p1f 指向 P1 的地址、
然后使用的时候直接就可以 p1f->ctl = 1 就将 P1.4 置位、
该怎么写?、或者能不能实现?、
[解决办法]
可以的呀,你这样不是已经可以了吗?只要再给p1f一个具体的地址,就可以了。
[解决办法]
指向寄存器,寄存器已经被分配了绝对地址。
还有确定是可以的。
[解决办法]
可以这样使用
[解决办法]
不可以,寄存器和存储器(按地址存取)不是一回事。
[解决办法]
51里面不允许非sfr声明的变量定位到SFR区
像ARM这样的体系就很灵活,可以这么搞
[解决办法]
是可以的了,好像。我用飞思卡尔的单片机好像就是这样定义的了。