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

历时一周,终于完成对外设寄存器的读写试验,对硬件的了解太少所致。
所用操作系统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之类的才能避免编译器报语法错误。

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

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值