10-12-2005 11:41 AM
10-13-2005 02:46 PM
Hi Jim,
Could you please provide some additional information on the ISA card and drivers that you are currently using? If this is not National Instruments hardware, then I recommend contacting the manufacturer of that board.
Regards,
Hal L.
10-19-2005 10:51 AM
Thanks for your reply...
I have a basic ISA I/O card (a 6 channel synchro) with mapped addresses for 8 consecutive
basic I/O addresses (currently 300h - 308h). The card is unsupported as it is old product but works
fine with Windows 98 and LabView on another old PC that I took it out of, in which direct I/O reads
and writes work fine. It has no drivers at all, just simple read/write byte-boundary I/O.
So my real question is, should anyone know, can you read and write directly to/from I/O
addresses in Windows XP using CVI/LabWindows v5.5 using inp() and outp() or with the optional
accessHW module (AccessHW.lib, accessHW.h, accessHW.dll) downloaded from the NI site
that provides another linked .lib module with its my_inp() and my_outp() calls in C?
10-19-2005 01:09 PM
I forgot to mention that I am already using the low-level h/w access driver with CVI/LabWindows v5.5,
as I do make a call (as per manuals/help) to CVILowLevelSupportDriverLoaded() and it returns
TRUE, as would be expected, before attempting calls to inp(), outp(), my_inp() and my_outp()
(from the AccessHW module).
10-20-2005 12:05 PM
Hello JimmyZ,
You can write to I/O and memory space in CVI. In particular, to communicate in I/O space, use the inp and outp functions as you are currently doing. In order to read and write to physical memory, use the ReadFromPhysicalMemory and WhiteToPhysicalMemory functions. Every time you use these functions, you map and unmap physical memory. To reduce this overhead, you can use the Map/UnMapPhysicalMemory functions to obtain pointers to portions of memory. This pointer can be treated like any other C pointer.
The low level driver that is loaded when using the inp/outp functions is a generic driver which works with the operating systems that your version of CVI supports. So the driver that is installed with CVI 5.5, is only proven to support Windows 9x/ME/NT/2000. I would recommend upgrading your system to CVI 7.1, which is supported on the WIndows XP operating system. Also, if you have Visual Studio installed on your Windows XP system, you can try using the inp/outp functions in the Visual C runtime engine.
Thanks.