小问题

[复制链接]
2165|11
 楼主| zxser09 发表于 2010-1-9 12:06 | 显示全部楼层 |阅读模式
请问在C语言里,如把ADC  指定一个缓存空间(8位的) 然后P1口去读这个缓存地址里的数据~· 怎么定义~1! 高手指点
HWM 发表于 2010-1-9 15:55 | 显示全部楼层
如果ADC是MCU内的内置部件,则其IO寄存器组内会有相应的寄存器(若你所说的缓冲器)存在。如此情况下,通常在相关头文件内有定义,直接使用就是了。

如果ADC是外扩的部件,则通常会在MCU的存储器空间中有一个映射地址存在。可以采用宏定义将其定义为一个名字即可

第三种情况就是你所说的,将ADC接口直接和IO端口相连,此类情况就如同直接访问IO口就是了。
chunyang 发表于 2010-1-9 15:59 | 显示全部楼层
无法实现,如果缓存是利用片内寄存器或RAM实现的,IO口无法去读内部资源,只能将内部数据输出至IO,而如果ADC为外置同时利用外部缓存如锁存时则无需什么“定义”,用P1以外的IO去控制外部资源进行缓存操作,然后直接用P1口去读即可,这时的操作地址就是P1口的IO地址。
HWM 发表于 2010-1-9 16:35 | 显示全部楼层
LZ意思可能是指如何将ADC的输出数据寄存器用C中的变量来对应,不同的情况有不同的实现方式。但有一点要补充的是,除了数据寄存器外,还有控制和状态方面的信息要连接。类似二楼所说的,还存在有1)头文件中的命令和状态寄存器,2)存储器空间所映射的命令和状态空间地址,3)连接在数据IO口(P1)以外的附加命令和状态IO口。
 楼主| zxser09 发表于 2010-1-9 17:35 | 显示全部楼层
thanks, 您说的:如果ADC是外扩的部件,则通常会在MCU的存储器空间中有一个映射地址存在。可以采用宏定义将其定义为一个名字即可。
    能否举个例子。
HWM 发表于 2010-1-9 17:42 | 显示全部楼层
#define  var_name  (var_type)(*io_address)
 楼主| zxser09 发表于 2010-1-9 17:58 | 显示全部楼层
我QQ326826821  可否加下~· 有些问题请教·
 楼主| zxser09 发表于 2010-1-9 18:03 | 显示全部楼层


就是这个图  如何通过OUT  来控制占空比吗

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
HWM 发表于 2010-1-9 19:22 | 显示全部楼层
不明白何来占空比,也许是做PWM-DAC。

建议从最基本的概念学起,一步步的来。虽然动手是件好事,但必须有基础支撑。关于ADC0808以及和MCU的连接,建议先仔细看一遍它的数据手册,内有详细的内容。至于在C中的问题,前面已有解说。
 楼主| zxser09 发表于 2010-1-9 19:26 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| zxser09 发表于 2010-1-9 19:26 | 显示全部楼层
就是这个  解释下:handshake
 楼主| zxser09 发表于 2010-1-9 22:32 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

81

主题

208

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部