Lanner LEC-2010 User Manual

Page 62

Advertising
background image

LEC-2010 Fanless Embedded System User’s Manual

62

enter_sio_config();

outportb(SUPERIO_INDEX, BANK_REG);
delay(1);

outportb(SUPERIO_DATA, bank_no);

delay(1);

outportb(SUPERIO_INDEX, reg_no);
delay(1);

reg_data=inportb(SUPERIO_DATA);

exit_sio_config();

return reg_data;
}

void write_sio_reg(unsigned char bank_no, unsigned char reg_no, unsigned char

write_data)
{

enter_sio_config();

outportb(SUPERIO_INDEX, BANK_REG);

delay(1);
outportb(SUPERIO_DATA, bank_no);

delay(1);

outportb(SUPERIO_INDEX, reg_no);

delay(1);
outportb(SUPERIO_DATA, write_data);

exit_sio_config();

}


unsigned char Get_DIO_Input_value()

{

unsigned char temp1;

temp1 = (read_sio_reg(0x08,0xE5) & 0x0F);

return temp1;

}

void Set_DIO_Output_value(unsigned char temp1)

{
write_sio_reg(0x09,0xE5, (read_sio_reg(0x09,0xE5) & 0x0F) | temp1);

}

void Init_GPIO(void) {

write_sio_reg(0x09,0x30,0x02); //;enable GPIO2

function

write_sio_reg(0x08,0x30,0x04);

//;enable GPIO6

function

write_sio_reg(0x09,0xE4,(read_sio_reg(0x09,0xE4)

&

~(GPIO4+GPIO5+GPIO6+GPIO7)));

//;set

GPI024,25,26,27=output

write_sio_reg(0x08,0xE4,(read_sio_reg(0x08,0xE4)

|

(GPIO0+GPIO1+GPIO2+GPIO3)));

//;set

GPI060,61,62,63=input

}

main(int argc, char *argv[])
{

int io_mode;

//0: read 1:write

char *ptr;

unsigned char tmp;
unsigned char Input_value, Output_value;

printf("===============================================\n");

printf(" Digital IO test program for LEB-2010I Ver:1.0\n" );

printf("===============================================\n");
Init_GPIO();

if ((argc<2)||(argc>4))

{

print_help(argv);

//;The parameter over or not enough

Advertising