// Copyright 2005 Doi Shigeki // list307.cpp パソコンと通信する,待たないループ // 〜USB_IOを使った外部制御の基礎 #include #include #include // getch(),kbhit() #include"list302.h" // USB関係の関数 main() { HANDLE husb; int r; BYTE x,x0; char c; printf("CQ_USBのテスト7\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"); x0 = -1; while( 1 ){ if( kbhit() ){ // キー入力あり c = getch(); if( c == 'q' ) // 'q'で終了 break; if( c >= 'A' ) // A以降を16進のA(10)以降とする c = c - 'A' + 10; c = c & 0xf; // 下位4ビット取り出し printf("出力= %X \n", c); x = ((c & 0x1 ) << 3) + ((c & 0x2 ) << 1) + ((c & 0x4 ) >> 1) + ((c & 0x8 ) >> 3) ; // テストボードとの結線の都合 PIOWrite( husb, 1, x); // ポートB へ出力 } PIORead( husb, 3, &x ); // ポートD から入力 if( x != x0 ){ // スイッチに変化あり x0 = x; x = x >> 4; // テストボードとの結線の都合 printf("入力= %X \n", x ); } Sleep(10); // 時間待ち10msec } CloseHandle( husb ); }