R88 发表于 2013-10-12 09:17:11

PIC的寄存器这样写就不对,真奇怪。。。



用注释那种写法就不对。。。用16进制的写法就对。。。真奇怪,,头文件中都已经包含了各个位的定义啊。。

gaolf_2012 发表于 2013-10-12 12:18:36

volatile       unsigned char        INTCON                @ 0x0B;
volatile bit        GIE                @ ((unsigned)&INTCON*8)+7;
这些是地址
实际上你需要的是位置
#define BIT_GIE 7
#define BIT_PEIE 6

R88 发表于 2013-10-12 13:24:15

gaolf_2012 发表于 2013-10-12 12:18 static/image/common/back.gif
volatile       unsigned char        INTCON                @ 0x0B;
volatile bit        GIE                @ ((unsigned)&INTCON*8)+7;
这些是地址 ...

按我的写法应该是:
#define GIE 7
#define PEIE 6
不过在写个这个没啥意思了。。

eduhf_123 发表于 2013-10-12 13:34:58

你应该写:GIE = 1;
PEIE = 1;
INT0IE = 1;

aa5209999520 发表于 2013-10-12 14:58:56

呵呵,楼主到底有没学过C啊,注释中的写的算是一句程序吗?(语法错误)就算你想对寄存器位操作,那也应该是#define GIE 1
#define PEIE 1 或者GIE = 1;PEIE = 1;啊,又怎么会是#define GIE 7?

R88 发表于 2013-10-12 16:11:27

aa5209999520 发表于 2013-10-12 14:58 static/image/common/back.gif
呵呵,楼主到底有没学过C啊,注释中的写的算是一句程序吗?(语法错误)就算你想对寄存器位操作,那也应该 ...

我还真没怎么学过,你学过给我讲讲这块:

volatile       unsigned char      INTCON                @ 0x0B;
volatile bit      GIE                @ ((unsigned)&INTCON*8)+7;

这两条语句都是什么个意思。。。尤其第二句那个*8,,还有@。。

R88 发表于 2013-10-12 16:18:04

注释的地方写法没错,只不过头文件没有定义各个位的位置。。我之前看mk电调的程序,avr编译器的头文件就有定义各个位的位置。。。。写法就可以用我注释的写法,这样写看起来更明了。。

我没看懂上面两句话的含义。。所以以为除了地址的定义还有各个位的位置说明。。

aa5209999520 发表于 2013-10-12 16:18:39

R88 发表于 2013-10-12 16:11 static/image/common/back.gif
我还真没怎么学过,你学过给我讲讲这块:

volatile       unsigned char      INTCON               ...

对寄存器和位进行定义,@表示地址

R88 发表于 2013-10-12 16:20:35

aa5209999520 发表于 2013-10-12 16:18 static/image/common/back.gif
对寄存器和位进行定义,@表示地址

你就把这位老兄的帖子回答一下就行:http://www.amobbs.com/thread-5554400-1-1.html

哪里说明@表示地址了??

“对寄存器和位进行定义”--这个大家都知道。。

eduhf_123 发表于 2013-11-5 01:38:20

R88 发表于 2013-10-12 16:20 static/image/common/back.gif
你就把这位老兄的帖子回答一下就行:http://www.amobbs.com/thread-5554400-1-1.html

哪里说明@表示地址 ...

你既然是来求教的,就应该把态度放端正。

像你这个样子,对你的问题有一点了解但又不是很确定的朋友可能就都不敢回你的帖了;而真正对你的问题非常清楚的高手,在看到你这样的态度后,估计也懒得管你的“闲事”了。
页: [1]
查看完整版本: PIC的寄存器这样写就不对,真奇怪。。。