C. appendix c: dio, C.1 to use the dio – Lanner LEC-2010 User Manual
Page 61
LEC-2010 Fanless Embedded System User’s Manual
61
C. Appendix C: DIO
C.1 To use the DIO
For DOS system:
Execute the DIO.EXE file under DOS (DIO.EXE and CWSDPMI.EXE should be placed on same
directory).
DIO sample code:
#include
#include
/* This program assume 4 Input and 4 output */
/* Digital Input=GP24,25,26,27==> mapping to OUT0~3 */
/* Digital Output=GP60,61,62,63 ==> mapping to IN0~3 */
#define SUPERIO_INDEX 0x2e
#define SUPERIO_DATA
0x2f
#define BANK_REG 0x07
#define GPIO0
0x01
#define GPIO1
0x02
#define GPIO2
0x04
#define GPIO3
0x08
#define GPIO4
0x10
#define GPIO5
0x20
#define GPIO6
0x40
#define GPIO7
0x80
int print_help(char *argv[])
{
printf("using: %s [i/o] [value]\n", argv[0]);
printf("Note:all data in hexadecimal format\n");
printf("eg: %s i ==>read Digital Input pin(3 2 1 0)\n");
printf(" %s o 8 ==>write 1000 to Output pin(3 2 1 0)\n");
printf(" %s o 0 ==>write 0000 to Output pin(3 2 1 0)\n");
printf(" %s o f ==>write 1111 to Output pin(3 2 1 0)\n");
printf("Program terminated !!!\n");
exit(1);
}
void enter_sio_config()
{
outportb(SUPERIO_INDEX, 0x87);
delay(1);
//delay
some
time
outportb(SUPERIO_INDEX, 0x87);
}
void exit_sio_config()
{
outportb(SUPERIO_INDEX, 0xaa);
}
unsigned char read_sio_reg(unsigned char bank_no, unsigned char reg_no)
{
unsigned char reg_data;