C言語で作成したプログラムからEZ-USBのポートに接続したLEDを制御してみます。
計算機からEZ-USBへのアクセスは、カメレオンUSBライブラリというCypressドライバのインターフェイスライブラリを使用しました。
また、プログラム自体は、オプティマイズで提供されているサンプルプログラム(DOS用)をGUIに改造したものです。
なお、今回は低電流用のLEDを使用しています。
環境
- WindowsXP Professional SP3
- MINI EZ-USB(AN2131SC)ver.2.0
- http://strawberry-linux.com
- http://optimize.ath.cx/index.html
- Visual C++ ver.6.0 SP2
- Visual C++ 2008 SP1
- トランジスタ 2SC1815
- Keil uVision
- EZ-USB_devtools_version_261700.zip
- http://www.cypress.com/
VC++ ver6からVC++ 2008への移行メモ
Win32で作っているので移行は簡単です。
- VC++ 2008で新規にWin32プロジェクト、空のプロジェクトで作成する。
- 作成したプロジェクトのディレクトリにHファイル、CPPファイル、RCファイルをコピーする。
- ソースファイルに「ezusb-led.cpp」、「cusb.cpp」を追加する。
- リソースファイルに「Script1.rc」、「resource.h」を追加する。
- 「プロジェクト」→「プロパティ」→「構成プロパティ」→「全般」→「文字セット」で「設定なし」、又は「マルチバイト文字セットを使用する」を選択する。
- ビルドする。
また、以下の宣言を「ezusb-led.cpp」のヘッダファイル宣言の下あたりに記述しておくと、セキュア関数の警告を抑制できます。
// セキュア関数「_s」を使用しない。Warining対策。 #pragma warning(disable : 4996)
配線図
メモ
- コンパイルの際には拡張子を「c」から「cpp」に変更する必要がある。「cusb.c」→「cusb.cpp」
- cusb_init関数の呼び出し時に第4引数、第5引数を(s8 *)でキャストする必要がある。
cusb_init( 0, &dev_handle, fw_bin, (s8 *)"RGIO", (s8 *)FW_VERSION )
参考文献
「ホストアプリ」と「FWの開発」の項を参照。
http://optimize.ath.cx/mini_ezusb/index.html
created by Rinker
¥847
(2025/04/30 19:17:50時点 楽天市場調べ-詳細)
ソース
Port Bを出力、Port Cを入力に設定してLEDを点滅させる。
signed int型でカウントアップした値をunsigned charに変換して代入する。
0~255までを繰り返して、そのときbitが立っているPortBのLEDが点滅する。
簡単にするためにWindowsのタイマーを使用しています。
- ezusb-led2008.zip GUI(VC++ 2008 SP1)
Comments