x86 CPU PC/104总线挂载数据采集卡寄存器操作实验

本文记录了作者在Windows CE 5.0环境下,使用EVC4及MFC对外设寄存器进行读写的试验过程。试验涉及x86架构CPU板卡和多功能数据采集卡,并详细介绍了通过不同方式操作寄存器的具体步骤和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

历时一周,终于完成对外设寄存器的读写试验,对硬件的了解太少所致。
所用操作系统Windows CE5.0,硬件平台x86架构的CPU板卡和挂载在PC/104总线的多功能数据采集卡,软件开发工具EVC4,采用MFC测试。

具体对外设寄存器地址363H进行读写。(363H是数据采集卡的DIO控制寄存器的0通道,8位。)

read按钮为读取DI寄存器值,表示该数字输入位电平的高低,测试中,接1.2V电压/100欧姆电阻时对应位为1。比如接DIO2输入时,显示值为4。
write按钮为写入DO寄存器数值,范围是0-255,用来控制DO通道0的八个位输出,用LED加电阻来点亮显示输出。

试验心得:
(一)如果使用wince自带的端口操作宏:READ_PORT_UCHAR,WRITE_PORT_UCHAR
1.要拷贝在PB中定制的平台对应的ceddk.h,pkfuncs.h,toolhelp.h以及ceddk.dll,链接ceddk.lib.
2.对应的物理端口和值定义最好采用
 #define port 0x363
#define value 1
这样便于修改并且能避免在类型转换时丢失数据。由于宏 READ_PORT_UCHAR((unsigned char*)port),WRITE_PORT_UCHAR((unsigned char *)port,(unsigned char)value) 要求的操作对象为uchar型,范围在0-255之间。

(二)如果采用在evc中嵌入汇编的方式
注意避开系统保留关键字,比如OUT要写成out之类的才能避免编译器报语法错误。

(三)对寄存器的概念加深认识
同一个地址上一个寄存器既可以读又可以写时,不能指望写入的数值能够读回来。
因为在硬件系统中,对一个外设寄存器的读写实际上是总线信号起区分作用。如果读信号为低电平时,就读入对应寄存器的值,与之前在此寄存器写的值无关。简单的说,就是同一个物理地址可能是几个数据寄存器共同使用,用信号来实现复用。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值