D. digital i/o sample code – IBASE IB945 User Manual
Page 61
APPENDIX
IB945 User’s Manual
57
D. Digital I/O Sample Code
//---------------------------------------------------------------------------
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
// PURPOSE.
//
//---------------------------------------------------------------------------
#include
#include
#include
#include
#include "W627DHG.H"
//---------------------------------------------------------------------------
int main (void);
void Dio3Initial(void);
void Dio3SetOutput(unsigned char);
unsigned char Dio3GetInput(void);
void Dio3SetDirection(unsigned char);
unsigned char Dio3GetDirection(void);
//---------------------------------------------------------------------------
int main (void)
{
char
SIO;
SIO = Init_W627DHG();
if (SIO == 0)
{
printf("Can not detect Winbond 83627DHG, program abort.\n");
return(1);
}
Dio3Initial();
//for
GPIO30..37
Dio3SetDirection(0x0F);
//GP30..33 = input, GP34..37=output
printf("Current DIO direction = 0x%X\n", Dio3GetDirection());
printf("Current DIO status = 0x%X\n", Dio3GetInput());
printf("Set DIO output to high\n");
Dio3SetOutput(0x0F);
printf("Set DIO output to low\n");
Dio3SetOutput(0x00);
return
0;
}
//---------------------------------------------------------------------------
void Dio3Initial(void)
{
unsigned char ucBuf;
//switch GPIO multi-function pin
ucBuf = Get_W627DHG_Reg(0x2C);