HIDキーボード(もどき)プログラムで機能アップ [USB]
従来型は大文字が有っても小文字に変換されてしまったので、今度は大文字、小文字を区別するように改造しました。改造したプログラムだけ掲載します。
送信した元文字は以下の通り
static const char abc[] = "AaBbCcDdefghijklmnOPQRSTUVWXYZ\r";
左はその結果です。取り敢えずOKと言う事で。
※キーボードデバイスのデバックはなかなかスリリングです。止せば良いのに、開発機と実験機が同じな為、キーボードデバイスのプログラムを失敗して暴走すると、判っていても思うようにキーが効かないとか、全然入力できなかったりとか、、、本当に止せば良いのですけれどね(*´ー`) 。
さあ!皆さんもJB8、JB16ボードで是非スリリングな体験をしてみましょう。
/****************************************************************************/ /* 英字の大文字/小文字に対応した文字列を送信する処理 */ /* 今度はバッファリングしていないので、最大長の制限無し */ /****************************************************************************/ void Str2PC2( const char *str ) { int i; unsigned char code,shift; char old; (void)memset( &KbBuffer[0], 0, 8 ); /*一度バッファ全てをクリアする*/ for( i = strlen( str ), old = 0; i > 0; ) { if( search_from_tbl( &code, &shift, *str ) == 0 ) /*該当コードが見つかった時*/ { wait(); if( code != old ) /*前回と異なる時*/ { if( shift != 0 ) KbBuffer[ 0 ] |= LEFT_SHIFT; else KbBuffer[ 0 ] &= ~LEFT_SHIFT; KbBuffer[ 2 ] = code; str++; i--; } else { KbBuffer[ 0 ] = 0; KbBuffer[ 2 ] = 0; } old = KbBuffer[ 2 ]; /*送信したデータを記憶して置く*/ } else { str++; /*該当コードが見つからない時*/ i--; } } wait(); KbBuffer[ 0 ] = 0; KbBuffer[ 2 ] = 0; }
送信した元文字は以下の通り
static const char abc[] = "AaBbCcDdefghijklmnOPQRSTUVWXYZ\r";
左はその結果です。取り敢えずOKと言う事で。
※キーボードデバイスのデバックはなかなかスリリングです。止せば良いのに、開発機と実験機が同じな為、キーボードデバイスのプログラムを失敗して暴走すると、判っていても思うようにキーが効かないとか、全然入力できなかったりとか、、、本当に止せば良いのですけれどね(*´ー`) 。
さあ!皆さんもJB8、JB16ボードで是非スリリングな体験をしてみましょう。
2008-03-15 22:59
nice!(0)
コメント(0)
トラックバック(0)
コメント 0