The Digital I/O (DIO) driver encapsulates all available digital I/O lines (except those exposed by the ADSmartIO library) in a single stream driver interface, DIO1:. Each I/O line is represented as one bit in a 32-bit DIO register. Read and write this register using the standard ReadFile and WriteFile functions.
I/O Control codes provide additional functionality such as setting the line direction (i.e. input or output), masking individual lines, enabling wakeup from digital IO lines and generating interrupts.
Revision History
The following list summarizes the changes in the driver specification. See the spec for full details.
1.2 (31-Jan-2006) PDF 317kB - Added the ability to alter priority of the interrupt-monitoring threads
1.1 (3-Jan-2006) - Added the ability to change interrupt events to call SetEvent instead of PulseEvent.
1.0 (15-Nov-2004) Included with VGX build 4.20.21, GCX build 4.20.04 - Initial release.
Edited by ctacke 13-Apr-2003: new document Edited by akidder 28-Apr-2006: older versions available on request Edited by akidder 19-Jul-2006: Add link to C# GUI test app Edited by akidder 8-Jan-2007: Updated release of document (rev 6) includes BitsyXb and Sphere signal mappings. Edited by akidder 29-Apr-2008: Add link to TurboXb bit mapping Edited by twhite 19-Nov-2012: Add link for GCM bit mapping
CE 4.2 has fewer interrupts available than 5.0. We recently observed a BitsyX CE 4.2 system that ran out of hardware interrupts when using the DIO driver interrupt feature. In that instance, we found that disabling the drivers for COM4: through COM7: freed up interrupts that had been allocated to the unused quad UART driver.
If your CE 4.2 platform runs out of interrupts, you may need to similarly disable some device drivers that generate interrupts. Contact us if you need help doing this for your application.