請先看『使用說明』
IO Device:F81801 DIO under Windows
From LEXWiKi
(Difference between revisions)
												
			
			 (→Introduction)  | 
				 (→Introduction)  | 
			||
| Line 5: | Line 5: | ||
== Introduction ==  | == Introduction ==  | ||
| + | === F81801 OPEN ===  | ||
| + |  BOOL F81801U_Open()  | ||
| + |  {  | ||
| + |  	SetPortVal(0x2e, 0x87, 1);  | ||
| + |  	SetPortVal(0x2e, 0x87, 1);  | ||
| + | |||
| + |  	if (F81801U_Read(CHIP_ID_REGISTER1) == CHIP_ID_DEFAULT_VALUE1 && F81801U_Read(CHIP_ID_REGISTER2) == CHIP_ID_DEFAULT_VALUE2)  | ||
| + |  		return TRUE;  | ||
| + |  	return FALSE;  | ||
| + |  }  | ||
| + | === F81801 CLOSE ===  | ||
| + |  void F81801U_Close()  | ||
| + |  {  | ||
| + |  	SetPortVal(0x2e, 0xaa, 1);  | ||
| + |  }  | ||
=== Initial internal F81801  ===  | === Initial internal F81801  ===  | ||
 void F81801U_Init()  |  void F81801U_Init()  | ||
| Line 17: | Line 32: | ||
 	 F81801U_Write(WDT_REG1, 0x40);  |  	 F81801U_Write(WDT_REG1, 0x40);  | ||
 	 F81801U_Write(WDOUT_EN, 0x80);  |  	 F81801U_Write(WDOUT_EN, 0x80);  | ||
| + |  }  | ||
| + | === F81801U READ ===  | ||
| + |  DWORD F81801U_Read(DWORD dwAddrVal)  | ||
| + |  {  | ||
| + |  	DWORD dwPortVal;  | ||
| + |  	::SetPortVal(0x2e, dwAddrVal, 1);  | ||
| + |  	::GetPortVal(0x2f, &dwPortVal, 1);  | ||
| + | |||
| + |  	return (dwPortVal & 0x00FF);  | ||
| + |  }  | ||
| + | === F81801U WRITE ===  | ||
| + |  void F81801U_Write(DWORD dwAddrVal, DWORD dwPortVal)  | ||
| + |  {  | ||
| + | |||
| + |  	::SetPortVal(0x2e, dwAddrVal, 1);  | ||
| + |  	::SetPortVal(0x2f, dwPortVal, 1);  | ||
 }  |  }  | ||
Revision as of 17:18, 15 August 2019
Contents | 
The Sample code source you can download from
How to use this Demo Application
Introduction
F81801 OPEN
BOOL F81801U_Open()
{
	SetPortVal(0x2e, 0x87, 1);
	SetPortVal(0x2e, 0x87, 1);
	if (F81801U_Read(CHIP_ID_REGISTER1) == CHIP_ID_DEFAULT_VALUE1 && F81801U_Read(CHIP_ID_REGISTER2) == CHIP_ID_DEFAULT_VALUE2)
		return TRUE;
	return FALSE;
}
F81801 CLOSE
void F81801U_Close()
{
	SetPortVal(0x2e, 0xaa, 1);
}
Initial internal F81801
void F81801U_Init()
{
	 F81801U_Write(Logic_Device_Number_Register, GPIO_Device_Configuration_Registers);// GPIO Device Configuration Registers (LDN CR06) 
 
	 F81801U_Write(GPIO3_Output_Enable_Register, 0xf0);//GPIO34~GPIO37 OUTPUT SET / GPIO30~GPIO33 INPUT SET
	 F81801U_Write(GPIO3_Drive_Enable_Register, 0xf0);//GPIO34~GPIO37 DRIVE SET
  
	 F81801U_Write(Logic_Device_Number_Register, WDT_Registers);
	 F81801U_Write(WDTDE, 0x01);
	 F81801U_Write(WDT_REG1, 0x40);
	 F81801U_Write(WDOUT_EN, 0x80);
}
F81801U READ
DWORD F81801U_Read(DWORD dwAddrVal)
{
	DWORD dwPortVal;
	::SetPortVal(0x2e, dwAddrVal, 1);
	::GetPortVal(0x2f, &dwPortVal, 1);
	return (dwPortVal & 0x00FF);
}
F81801U WRITE
void F81801U_Write(DWORD dwAddrVal, DWORD dwPortVal)
{
::SetPortVal(0x2e, dwAddrVal, 1); ::SetPortVal(0x2f, dwPortVal, 1); }
