Lanner LEC-2010 User Manual
Page 62

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