// Copyright 2005 Doi Shigeki // list306.cpp パソコンと通信する // 〜USB_IOを使った外部制御の基礎 #include #include #include // getch(),kbhit() #include"list302.h" // USB関係の関数 main() { HANDLE husb; int r; BYTE x; char c; printf("CQ_USBのテスト6\n"); husb = CreateFile( "\\\\.\\Ezusb-0", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0); printf("ハンドル値 = %d \n",(int)husb ); if( (int)husb < 0 ){ printf("USBデバイスがオープンできません\n"); return 0; } r = SetPortConfig( husb, 0, // PIOモード 0, 0,0,0,1,0); // PBのみ出力 printf("コンフィグレーション結果 = %d( 0以外:ok) \n", r); printf("'q'を押すと終了します\n"); while( 1 ){ c = getch(); if( c == 'q' ) // 'q'で終了 break; if( c >= 'A' ) // 文字A以降を16進の数A(10)以降とする c = c - 'A' + 10; c = c & 0xf; // 下位4ビット取り出し printf("出力= %X ", c); x = ((c & 0x1 ) << 3) + ((c & 0x2 ) << 1) + ((c & 0x4 ) >> 1) + ((c & 0x8 ) >> 3) ; // テストボードとの結線の都合 PIOWrite( husb, 1, x); // ポートB へ出力 PIORead( husb, 3, &x ); // ポートD から入力 x = x >> 4; // テストボードとの結線の都合 printf("入力= %X \n", x ); } CloseHandle( husb ); }