SSブログ

USB プロジェクト - HIDデバイスのフリ [USB]このエントリーを含むはてなブックマーク#

masatoさんのページbird.dip.jp: JB8USB 基板 (3) HIDで紹介されていたTestHIDをJB16に移植してみました。

プロジェクトを作成する

JB16のために新たにプロジェクトを作成しました。 そして、ZIPファイルにあったソース・コードとヘッダ・ファイルをプロジェクトの"Sources"フォルダに入れます。

ソースコードの変更

件のZIPファイルは、JB8専用の設定になっているので、万能ヘッダderivative.hを使用するように#include行を変更します。 main.cの場合は、以下の通り。

#include <hidef.h> /* for EnableInterrupts macro */
#include "derivative.h" /* include peripheral declarations */
#include "usb_lowlevel.h"

コンパイルするとエラーがいくつか出ます。 レジスタ名の違いは、TSCT1SCに変更しただけでした。

プログラムを書き込む

スタータボードでプログラムを書き込みます。 この時のUSBボードの設定は、JP1=OPEN; JP2=SHORT;にします。

USBデバイスとして…

プログラムを書き込んだら、スタータボードから取り外し、 JP1=SHORT; JP2=OPEN; に設定を変えてから、 PCのUSBポートにつなぎます。

すると、HIDデバイスと認識されます。 デバイスマネージャで確認すると、みごとにIDが出てきました。

USBボードには、何もつないでいないので、何も起こりません。 PCからLEDを操作したいのだけど、HIDインターフェースでそんな事できるのかな?

2008-02-05 22:54 加筆

PCからLEDを操作する

PCからLEDを操作するために、main.cを変更します。

// Line 43
	DDRD|=0x27;		// init LEDs
	PTD|=0x27;
// Line 62
		if(LedBuffer&4) PTD_PTD5 = 0;
		   else PTD_PTD5 = 1;

これで、Scroll Lockの状態がUSBボードのLEDで表示されます。

プロジェクト・アーカイブ

so-netの無償会員には、ZIPファイルの置き場所は用意されていないのかなぁ?


nice!(0)  コメント(4)  トラックバック(0)  このエントリーを含むはてなブックマーク#

nice! 0

コメント 4

masato

usb_lowlevel.c を見るとホストからの "SET REPORT" リクエストで LedBuffer に値が入るようになっていますね(ep0_rxd())。
今度、試してみます。
by masato (2008-02-05 22:53) 

noritan

キーボードに付いている三つのLEDという事で、LedBufferの3ビットが"Num Lock" "Caps Lock" "Scroll Lock"の三つに相当するようです。PTD5を操作するように変更したら、見事にLEDが反応しました。
by noritan (2008-02-05 22:58) 

hamayan

お~~~!、パチパチ。

> so-netの無償会員には、ZIPファイルの置き場所は用意されていないのかなぁ?

月々の接続料を払っている会員にも、そんなもの有りません(・_・、)。
by hamayan (2008-02-05 23:38) 

masato

改めて動かしてみると確かに xx Lock で LED が点灯しました。
まじめにプログラムを読んでいないのがバレバレですね。

>ZIPファイルの置き場所
よろしければワタシのところの Wiki を使いませんか?
by masato (2008-02-08 20:59) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。