2010-01-01から1ヶ月間の記事一覧

PIC18F14K50 (4)

Microchip 社の USB フレームワークのコンパイルには同社の「C18」コンパイラが必要ですが、無償でダウンロードできる「評価版」には、60 日経過すると最適化機能が制限されるという制約があります。 そのため、対象のチップに関する経験が少ないままコンパ…

PIC18F14K50 (3)

PIC

PIC18K14K50 には、コンパレータ 2 個と SR (セット・リセット) ラッチが内蔵されているので、定番のタイマ IC である「555」と同様な外部回路でオシレータを構成することができます。 ただし、555 のオープンコレクタ/オープンドレインの Discharge 端子 (7…

PIC18F14K50 (2)

「ライタ」側ではなく、18F14K50 の「応用回路」側の回路図を下に示します。 と言っても、「周辺」としてつながっているのはシリアルだけで、しかも RS232C インターフェース回路は外付けなので、ボード上には抵抗しかありません。 あとは、USB 「B」コネク…

PIC18F14K50 (1)

Microchip 社の PIC18F14K50 は ROM/RAM 容量は少ないですが、USB インターフェースを内蔵していて、価格は秋月で DIP パッケージの場合で 200 円と安く、かねがね使ってみたいと思っていました。 ところが、手持ちの PIC ライタは AKI-PIC プログラマ Ver.3…

Arduino 周波数/周期カウンタ (10)

前回の最後の図を下に再掲します。 このグラフは、 ある特定の ICR1 の値 (となるような CAPT タイミングを発生する OCR1B の設定) で、 CAPT 割り込みサービス・ルーチン内で TOV1 フラグの状態を観測し、記録するのを 10000 回繰り返すことにより発生頻度…

Arduino 周波数/周期カウンタ (9)

CAPT と OVF のタイミングの関係を推測するために行った実験のようすを説明したいと思います。 CAPT 割り込みの発生タイミングを、1 クロック単位で可変するために、同じタイマ 1 の PWM 出力である OC1B 端子とコンペアレジスタ OCR1B を使いました。 analo…

Arduino 周波数/周期カウンタ (8)

前回の最後の図、つまり、 OVF 割り込み要求の方が先に発生するが 実行中の命令が 2 サイクル (以上) かかるので 命令実行中に優先度の高い CAPT 割り込み要求に「追いつかれて」しまい、 命令終了時に優先度の高い CAPT 割り込みの方が先にサービスされてし…

Arduino 周波数/周期カウンタ (7)

以降の記事では、記述を簡略化するために、WinAVR (AVR 用 GCC) の割り込みベクトルの表記にしたがって、 「インプット・チャプチャ」を「CAPT」 「タイマ・オーバーフロー」を「OVF」 と略記します。 たとえば、「インプット・キャプチャ割り込み」は「CAPT…