beautypg.com

C. appendix c: dio, C.1 to use the dio – Lanner LEC-2010 User Manual

Page 61

background image

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;