多媒体定时器 1 速度参数实时数据采集的软件实现 1 实时数据采集的要求及软件平台 ---- 数据采集一般是通过软件或硬件的定时中断通过A/D 来读取外界传感器的数据
因此实时数据采集的首要的基本要求是定时准确,即采样间隔具有较好的一致性
---- 实时数据采集系统过去一般是在 DOS 操作系统下应用汇编语言开发的
Window s 操作系统的普及应用,尤其是可视化开发软件Visual C++ 的出现,为软件开发提供了强大的图形界面功能,使得开发出来的应用程序具有良好的人机交互功能
汇编语言的特点是难调试,而高级语言具有良好的可读性及方便的调试手段
---- 本文采用美国微软公司推出的Visual C++为软件开发工具,采样间隔采用多媒体定时器进行精确定时,并采用 Visual C++ 提供的端口操作的操作台函数进行硬件I/O 编程
2 多媒体定时器和硬件接口函数 ---- Visual C ++ 提供了两种定时器
一般常用的是系统计时器,它使用函数SetTimer 进行初始化,应用程序响应 SetTimer 函数发送来的消息 WM_TIMER
这个定时器是IBM PC 硬件和 ROM BIOS 构造的定时器逻辑的一个相当简单的扩展
PC 的ROM 初始化 Intel8259 定时器芯片来产生硬件中断08H
这个中断有时称为"定时器滴答"中断
中断08H 每隔 54
925 毫秒产生一次,或大约每秒 18
BIOS 使用中断08H 更新存于 BIOS 数据区的"时间"值
因此,这个定时器在 Window s 中的最大缺点是计时器的最大分辨率是55 毫秒,也多媒体定时器 2 就是说应用程序每秒只能接收到18 个消息
此外,这个计时器消息的优先权太低,只有在所有的消息(除了消息WM_PAINT)被处理后才能被处理
因此函数 SetTimer 只能用于一般的定时,如