平成21年1月18日 日曜日

HIDでお砂場

Filed under: たわごと — とめくぎ @ 1:51:58

AT90USB162でHIDデバイスを色々試し中。
マウスはアトメルのサイトにサンプルが有るから簡単に試せたけど、キーボードが無いんだな。
違うデバイスのサンプルは有るんだけど、そのままじゃ動かないしなぁ。

グーグル総活用で、昔は公開されていたと思しきAt90USB162に合致したサンプルを見つけた。
早速それをコンパイルしたところ、コンパイルは通り、ボリュームのミュートON・OFFは出来たので、
それを叩き台にキーボードを作ってみた。
a-zを入力するキーボードもどき
PB0をGNDに落とすと、ひたすらA-Zを入力する。

ソースいじってて気がついたんだけど、USBのHIDキーボードって6つまでしか同時押しできないんだねぇ。
ただし、AltとかCtrlとかShiftは別。Modifierにビットで指定してキーコードを送る。
でも、6つの根拠って何だろう?
安価に造れる分割数のキーマトリクスから安全に取得できるキーの数とか?(笑)

あと、キーコードを送信した後に空のキーコードを送らないと、最後に送ったキーコードがPC側の処理で延々と入力され続けちゃうんだね。
つまり「A」キーを押す→キーコード「0×04」を送信→「A」キーを離す→キーコード「0×00」を送信。
キーリピートはキーボードの仕事ではなくPC側の仕事となるようだ。
そうだ!キーを押しながらUSBのコード引っこ抜いたらどうなるんだろー?
(ウチにはUSBのキーボードがない)

今度は加速度センサーを載せてみよう。
あとはジョイパッドを試したいかなー。

HTML convert time: 0.123 sec. Powered by WordPress ME