2 digital i/o example, Jrex plus lx software guide – Kontron JRexplus-LX User Manual
Page 17

KTD-S0004-A
Page 14
Watchdog, Digital I/O and Backlight
JRexplus LX Software Guide
5.2
Digital I/O Example
#include <stdio.h>
#include <dos.h>
#include <conio.h>
#define JIDA16_INT
0x15
#define GPIO_OUTPUT
0xEA51
#define GPIO_INPUT
0xEA52
#define JIDA_ID
0x4648
#define GPIO_MASK
0x0F
#define BOARD_NUM
1
void WriteDigitalIO (unsigned char value)
// only lower nibble valid
{
union REGS regs;
regs.x.ax = GPIO_OUTPUT;
regs.x.dx = JIDA_ID;
regs.h.cl = BOARD_NUM;
regs.h.ch = (value & GPIO_MASK);
int86 (JIDA16_INT, ®s, ®s);
}
unsigned char ReadDigitalIO (void)
// only lower nibble valid
{
union REGS regs;
regs.x.ax = GPIO_INPUT;
regs.x.dx = JIDA_ID;
regs.h.cl = BOARD_NUM;
int86 (JIDA16_INT, ®s, ®s);
return (regs.h.bl & GPIO_MASK);
}
void main (void)
{
unsigned
char
val;
char str [32];
WriteDigitalIO
(0x05);
getch
();
WriteDigitalIO
(0x0A);
getch
();
val = ReadDigitalIO ();
sprintf (str, "\n%02X\n", val);
printf
(str);
}