Volftooth 发表于 2012-11-21 15:00:04

可不可以定义一个指针变量、让其指向 SFR 寄存器?、

本帖最后由 Volftooth 于 2012-11-21 15:01 编辑

可不可以定义一个指针变量、让其指向 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 置位、

该怎么写?、或者能不能实现?、

takashiki 发表于 2012-11-21 15:17:46

不要再问这类问题了,不可能的。
SFR区只能直接寻址,使用指针了就是间接寻址了,必然冲突啊。

Volftooth 发表于 2012-11-21 17:16:43

takashiki 发表于 2012-11-21 15:17 static/image/common/back.gif
不要再问这类问题了,不可能的。
SFR区只能直接寻址,使用指针了就是间接寻址了,必然冲突啊。 ...

因为有一位是在中断中控制的、如果在主循环中用 P1 赋值会对 P1.4 有影响、

有没有其它的方法?、

Volftooth 发表于 2012-11-21 17:17:06

takashiki 发表于 2012-11-21 15:17 static/image/common/back.gif
不要再问这类问题了,不可能的。
SFR区只能直接寻址,使用指针了就是间接寻址了,必然冲突啊。 ...

因为有一位是在中断中控制的、如果在主循环中用 P1 赋值会对 P1.4 有影响、

有没有其它的方法?、

takashiki 发表于 2012-11-21 18:18:59

关中断,读,修改,写,开中断。
或者,把P1除了P1.4外的每一位单独写。

287504461 发表于 2012-11-21 23:23:48

你还是分开来写吧

barryliu 发表于 2012-12-9 01:37:41

51有位寻址,为何不用?
页: [1]
查看完整版本: 可不可以定义一个指针变量、让其指向 SFR 寄存器?、