USB PICにCDCクラスを使う

NO IMAGE

空き時間を見ながら、おいらはUSB PICで遊んでおります。PICで楽しむUSB機器自作のすすめという本のプログラムを参考にまずはCDCクラス(仮想シリアル通信)を使ってみた。

PCのターミナルソフトからコマンドを送ってポートがON/OFFできると「おぉ、すごい!」と感動してしまった。できて当然なんだろうけれど、PICマイコンを覚えたての頃を思い出す。

が、CDCクラスにはお作法があるらしく、できるだけ早くUSBのチェックを行うようにしなくてはいけないらしい。文字をPCへ送信するにはputrsUSBUSARTとかputsUSBUSARTという関数を使うのだけれど、続けて2回連続で使用できなかったりする。2回連続で使用しても、どちらか片方が有効になってしまうという有様。

途中にwhileなどを使って、何かのイベントがあるまで待つということもCDCクラスでは御法度のようで、途中にwhileなどを使ってしまうとうんともすんとも言わなくなってしまう。
ってことは、whileを使わないで割り込みを使う以外なさそうですな。

後閑さんのサイト(www.picfun.com)だけでなく、マイクロチップから配布されているマニュアルAN596というものにも、できるだけ早くUSBのチェックをしなくてはいけない旨書いてあった。他のUSBマイコンもそうなのかなぁ…。

よし、今度はGenericクラスのお勉強だ。

※途中でwhileが使えないのは、PICで楽しむUSB機器自作のすすめのプログラム例がUSBのイベントをポーリングを掛けてフラグを確認する「USBフレームワーク」なるもので動いているからとのこと。と、いうことは、割り込み処理をうまく使えば、USBのイベントをチェックするためのポーリングは必要はないということになるのかな。(2010.2.24)