ログインキーボードLEDの情報を取得するNumLock,CapsLock,ScrollLockのLEDを制御します。今回一番苦労したところです。「LEDは付けない」という人には不要と思うかもしれませんが、テンキーの切替のためNumLockの情報だけは必要です。今回使用したキーボードはテンキーはありませんが側面に数字が印刷されたキーがあり、NumLockの状態によりキーコードを塗り替える処理を追加します。LEDの情報はどう扱うのかHIDの仕様書等参考資料によると、LEDの制御はデバイス側で行うのではなく、あくまでもデバイス側は押されたキーをホスト(PC)に送るだけでキーロックの状態はホストから送られて来る、と記述されています。SetConfigurationというコントロールトランスファで、エンドポイント0に1バイトのデータ(キーロック情報:下位5ビット)が送られて来ます。Kanaのようにホストからデータが送られて来ます。取得の仕方まず、dscr.a51にLED情報を得られるようにReportDscr(14行目と15行目の間)に書き加えます。paddingSetConfigurationは、fw.cのメイン処理で捕捉され、bulkloop.cのDR_SetConfiguration(void)を呼び出しているのでこの中に処理を書きます。code}フラグ(Test)を立てておき、このフラグが立っているときエンドポイント0にデータが来たときはLEDの情報だと判断します。EP0BCをリセットしていますがこうしておかないとデータが来ないようです。次に、エンドポイント0出力の割込みを有効にします。←追加のように追加します。エンドポイント0出力の割込み処理ISR_Ep0out(void)に処理を書き加えます。clear}lock_ledにLEDの情報が取得され、Dポート(b4〜b6)に接続したLEDを制御します。LEDの取り付けぎりぎりのサイズでケースを作ってしまってスペースが無いため、超小型のフルカラーLEDを使用しました。判り難いので市販のものには絶対採用されない方法ですがかえって手作りには面白いと思います。site.リンクに許可は不要です。コメント欄は改行せず一行で入れてください。スパム判定ではじかれた場合は、その後に「書込みました」旨のみのコメント等何らかの書き込み成功していただけると早く対応できます。非日本語対応ブラウザからは書き込みできません。