AXIOMTEK PICO822 User Manual page 118

Intel atom e620t/e680t all-in-one pico-itx board
Table of Contents

Advertisement

®
TM
PICO822 Intel
Atom
printf("\n=========================\n");
printf("GPIO Device Driver Check(%s) \n", DriverName);
printf("=========================\n");
if (argc>0)
{
portnum = (UCHAR)atoi(argv[0]);
printf("Specified port number : %d\n", (INT)portnum);
}
printf("\n*** CreateFile(%s) \n", DriverName);
hDevice = CreateFile(DriverName, GENERIC_READ | GENERIC_WRITE,
if(hDevice != INVALID_HANDLE_VALUE)
{
printf(" Sucess CreateFile %s (hDevice:%08X)\n", DriverName,
(UINT)hDevice);
if (argc == 1)
{
printf("\n*** DeviceIoControl(code:IOCTL_GPIO_DIRECTION <0,
objGpioReqtOut.port=0;
objGpioReqtOut.pins=(1<<portnum);
objGpioReqtOut.mode=INPUT_SEL;
objGpioReqtOut.enable=0;
lpOutBuffer = (LPVOID)&objGpioReqtOut;
nOutBufferSize = sizeof(objGpioReqtOut);
lpInBuffer = (LPVOID)&objGpioReqtIn;
nInBufferSize = sizeof(objGpioReqtIn);
memset(lpInBuffer,0, nInBufferSize); // clear for in buffer
dwBytesReturned = 0;
lpOverlapped = NULL;
bRc = DeviceIoControl(hDevice,IOCTL_GPIO_DIRECTION,
if(bRc == TRUE)
{
112
E620T/E680T All-In-One Pico-ITX Board
FILE_SHARE_WRITE, NULL, OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,NULL);
GPIO%d, INPUT, 0>)\n", (INT)portnum);
lpOutBuffer,nOutBufferSize,lpInBuffer,nInBufferSize,
&dwBytesReturned,lpOverlapped);
printf(" Sucess DeviceIoControl\n");
printf("
dwBytesReturned = %ld, output buffer = {port:%lx,
pins:%lx, mode:%llx, enable:%lx}\n", dwBytesReturned,
objGpioReqtIn.port, objGpioReqtIn.pins,
objGpioReqtIn.mode, objGpioReqtIn.enable);
printf("\n*** DeviceIoControl(code:IOCTL_GPIO_READ <0,
GPIO%d, 0, 0>)\n", (INT)portnum);
objGpioReqtOut.port=0;
objGpioReqtOut.pins=(1<<portnum);
objGpioReqtOut.mode=0;
objGpioReqtOut.enable=0;
lpOutBuffer = (LPVOID)&objGpioReqtOut;
nOutBufferSize = sizeof(objGpioReqtOut);
lpInBuffer = (LPVOID)&objGpioReqtIn;
nInBufferSize = sizeof(objGpioReqtIn);
memset(lpInBuffer,0, nInBufferSize);
// clear for in buffer
dwBytesReturned = 0;
lpOverlapped = NULL;
bRc = DeviceIoControl(hDevice,IOCTL_GPIO_READ,lpOutBuffer,
nOutBufferSize,lpInBuffer,nInBufferSize,
&dwBytesReturned,lpOverlapped);
if(bRc == TRUE)
{
printf(" Sucess DeviceIoControl\n");
printf("
dwBytesReturned = %ld, output buffer =
{port:%lx, pins:%lx, mode:%llx, enable:%lx}\n",
dwBytesReturned, objGpioReqtIn.port,
objGpioReqtIn.pins, objGpioReqtIn.mode,
objGpioReqtIn.enable);
portval = (objGpioReqtIn.pins & (1<<portnum));
printf("\nGPIO%d = %s\n", (INT)portnum, (portval ?
"HIGH" : "LOW"));
Digital I/O

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the PICO822 and is the answer not in the manual?

Subscribe to Our Youtube Channel

Table of Contents