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

2020-02-01 16:34发布

本帖最后由 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 置位、

该怎么写?、或者能不能实现?、
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
takashiki
1楼-- · 2020-02-01 18:52
 精彩回答 2  元偷偷看……
Volftooth
2楼-- · 2020-02-01 20:33
takashiki 发表于 2012-11-21 15:17
不要再问这类问题了,不可能的。
SFR区只能直接寻址,使用指针了就是间接寻址了,必然冲突啊。 ...

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

有没有其它的方法?、
Volftooth
3楼-- · 2020-02-02 02:07
takashiki 发表于 2012-11-21 15:17
不要再问这类问题了,不可能的。
SFR区只能直接寻址,使用指针了就是间接寻址了,必然冲突啊。 ...

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

有没有其它的方法?、
takashiki
4楼-- · 2020-02-02 03:28
关中断,读,修改,写,开中断。
或者,把P1除了P1.4外的每一位单独写。
287504461
5楼-- · 2020-02-02 04:14
你还是分开来写吧
barryliu
6楼-- · 2020-02-02 06:56
 精彩回答 2  元偷偷看……

一周热门 更多>