[讨论] 汇编写多了,c语言不知咋写了?请看:

dood   2007-7-9 10:25 楼主
用一款51内核的单片机,单片机带usb sie等。。很多资源! 但是有些控制寄存器地址都是固定的, 好比:usb tx0 fifo=0x50 0x51.。。 c语言怎么从固定地址里面取数据啊,呵呵。。。c不熟,别见笑!

回复评论 (11)

回复:汇编写多了,c语言不知咋写了?请看:

在程序开始的时候会有一个头文件 在这个文件里就会把整个单片机上的特殊寄存器进行宏定义,然后你按宏定义进行操作就行了。
点赞  2007-7-9 10:26

回复:汇编写多了,c语言不知咋写了?请看:

汇编写多了吗? SFR不知道吗?
点赞  2007-7-9 10:28

回复:汇编写多了,c语言不知咋写了?请看:

hehe,c语言寄存器不是编译器自己分配的吗? 如果我没用到的特殊寄存器,c语言会自动避开吗? 呵呵,假设,,,一个寄存器作用是uart buffer 头文件有定义假设在 0x80吧,我没用到, c语言就不会再定义的头文件范围进行分配地址吧。。 呵呵,估计是这样。。
点赞  2007-7-9 10:30

回复:汇编写多了,c语言不知咋写了?请看:

很多人都问过了,帖子也很多,我就再打一遍吧 #define REG (*(int *)0x0000) REG = xxx; xxx = REG; 就可以用了
点赞  2007-7-9 10:33

回复:汇编写多了,c语言不知咋写了?请看:

我是奇怪c语言自动分配寄存器地址为什么 我是奇怪c语言不是自动分配寄存器地址吗? 为什么能避开我没没用到的特殊寄存器呢? 这些东西在哪里有讲呢?
点赞  2007-7-9 10:35

回复:汇编写多了,c语言不知咋写了?请看:

不是c自动分配,是编译器分配,但每种编译器的做法是不一样的
点赞  2007-7-9 10:38

回复:汇编写多了,c语言不知咋写了?请看:

如果是单片机内部 特殊寄存器,用 sfr beep=P3^3 之类定义 如果是Ram 最好不要指定,否则程序容易崩溃 如果是外部 RAM 用 #define XBYTE ((unsigned char volatile xdata *) 0) #define R8155 0x5f00 #define ReadIO(addr) XBYTE[R8155 + (addr)] #define WriteIO(addr,value) XBYTE[R8155 + addr] = value 来访问
点赞  2007-7-9 10:41

回复:汇编写多了,c语言不知咋写了?请看:

额。。。楼上的那个。。sfr beep=P3^3。。。错了吧 应该是sbit beep=p3^3。。。小错误。。。。
点赞  2007-7-9 10:49

回复:汇编写多了,c语言不知咋写了?请看:

额。。。 sorry~ sorry~~
点赞  2007-7-9 11:04

回复:汇编写多了,c语言不知咋写了?请看:

可以自己定义数组 进行数据的采集和分析就可以了
南京璞晓电子   www.cpx0.com需要 msn:njlianjian@hotmail.com
点赞  2007-7-9 16:20

回复:汇编写多了,c语言不知咋写了?请看:

太高深了
点赞  2007-7-10 21:40
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复