新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于WinCE系统的FIFO数据传输程序设计

基于WinCE系统的FIFO数据传输程序设计

作者:时间:2012-04-16来源:网络收藏

当数据采集板通过程序控制方式、定时器触发方式或外部触发方式采集到模拟信号后自动进行A/D转换后将数据放入A/D数据寄存器并依次写入 缓冲区中,Windows CE.net中的用户应用程序通过检测标志寄存器和MIC-2718状态寄存器(地址为BASE+8)的状态来确定是否进行了有效的A/D转换。下面给出在Windows CE开发平台上对进行读操作的部分代码,设MIC-2718的基地址为300H:
PUCHAR ioPortBase=MapIoSpace(300H);//将物理地址影射为虚拟地址
BYTE aistatus=READ_PORT_UCHAR(ioPortBase+8);//读MIC-2718的状态寄存器
BYTE status=READ_PORT_UCHAR(ioPortBase+25);//读FIFO的状态寄存器
BYTE ad0,ad1;
if(aistatus0x10)//若MIC-2718状态寄存器的A/D转换位有效
{
if(status1!=0)//若FIFO不为空,则读FIFO
{
ad0=READ_PORT_UCHAR(ioPortBase+23);
ad1=READ_PORT_UCHAR(ioPortBase+24);
}
}

表1 A/D数据寄存器与FIFO数据寄存器的比较
3.jpg

在使用MIC-2718的某一通道分别用常规方式和FIFO方式对一个持续变化的电压源做连续的信号采集和传输时,两种方式传输的数据如表1所示。可以看出,第2和第8组中A/D数据寄存器中的数值是错误的,可见使用普通A/D传输方式存在数据丢失问题,因此并不能准确传输数据,而使用FIFO方式可以保证的完整性。



评论


相关推荐

技术专区

关闭