进行A/D采样时很正常,I/O也正常,但一进行D/A转换时就发现输出数据不对,但使用双诺测控提供的DOS测试程序来看,没有问题。
答:从上述问题看,一般情况是编程错误引起的,经常性的问题是在用户正确的完成了A/D I/O方面的编程后感觉自己的编程没有问题,因此认为D/A方面的程序也应该没有问题,其实最好的检验方法是使用DOS测试程序进行测试。当使用测试程序发现没有问题后,应该仔细阅读说明书的编程部分,采用正确的方法,才能完成工作。可以看看使用的IO指令是否正确,AC1056是8位的指令,是否错用16位IO指令。
问:我看了贵公司的技术
文档,将驱动安装好后,又将VC的例程考入硬盘,但编译无法通过,你们的例程是正确的吗?
答:请先将VC例程和INCLUDE目录都考入硬盘,再将例程的文件属性由只读改为存档。(主要是CD-ROM上的文件属性都是只读属性的,影响了VC编译器的文件生成)
问:我的工作要求采样、存盘、显示、多种任务同时进行,请问如何编程?
答:有时用户在使用如AC1810、MP270、AC1820/30等FIFO、RAM接口的采样板时,需要在采样的同时进行数据处理、图形显示、文件存盘等操作。在这种情况下可考虑采用定时器的方式。在程序主体中进行数据处理,在定时器程序中检查AD转换是否结束,如果结束了就读取AD数据,这样使得多种任务同时进行。
使用定时器有两种选择:I、使用通用定时器。II、使用高精度定时器。
I、通用定时器:最小定时间隔为55ms(Windows95/98),小于20ms(Windows NT/W2K),而且精度也不准确,易受其他任务干扰。
II、高精度定时器:精度从1ms到16ms可选,精度比较准确,不易受其他任务干扰。使用方法复杂一些,主要是在退出时应该关闭高精度定
时器,否则将导致系统崩溃。
使用1ms 应用时Visual Basic要编译成P代码,不能编译为本机代码;
高精度定时器的详细使用方法请查阅MSDN的帮助
文档。(位于platform SDK\Graphics and Multimedia Services\Multimedia Input\Multimedia Timers)
对于部分对实时性要求高的用户可以参考MSDN中的DDK章节。
问:在其他编程语言中如何调用DLL接口函数?
答:DLL存放的Windows95/98目录为c:\windows\system\,在Windows NT4/W2K的目录为c:\winnt\system32\。
所提供的API接口函数的参数传递方法是使用标准调用约定,VC为__cdecl,VB为__stdcall;当用户根据自己需要,使用其他语言(如Borland C++ builder、
Delphi、Visual Foxpro、Power Builder、
Java等),可根据具体语言的定义方法、调用方法来构造自己的程序,实现API的调用。
请将DLL句柄、驱动句柄、函数定义为全局变量,以便于在程序中随意调用。
问:在NT上编程,我的AD采样操作速度很低,只有10K/s左右,是什么问题?