RRP1320-1-02 は表示器(LCD)と入力装置(赤外線リモコン)を備えた小さな制御装置を実現し、工夫次第で様々な用途に使えると期待しています。 LCDと赤外線リモコンは必要な間だけ取り付けてプログラム定数の設定等を行いますが、入力操作やLCD表示を必要としない場面ではLCDを取り外して動作させることが出来ます。

このような応用例の一つとして、汎用タイマーを作ってみようと思います。 内臓クロック 8MHz だけで動作する為、高精度とは言えませんがおよそ5分間隔でブザーを鳴らしたりLEDを点滅させたいと言った用途は多いと思います。 ブザーをピピピピっと鳴らしたり(0.1秒鳴動0.1秒無音を4回繰り返し)、数時間に一回の繰り返し作業にも使えるようにと下図のような汎用タイマーを RRP1320-1-03 で実現したいと考えています。

汎用タイマー
10/19日 図差し替え

50msec間隔に設定した TIMER0 割り込みをカウントしてタイマーにします。 内臓クロックの発振周波数バラツキの他、割り込み処理で TMR0H , TMR0L に初期値を書き込む際に生ずる遅れが累積する為、時間の精度は期待できません。 精度を要求する場合はハードウェアの変更が必要です。

RRP1320-1-03 の汎用タイマーは以下3つの減算タイマーで構成します。
 (1)プリタイマー (最大18時間、1秒刻み)
 (2)イベントピッチタイマー(最大1時間、0.1秒刻み)
 (3)イベントタイマー(最大1時間、0.1秒刻み)
    ただし、(2)>(3)>0 に設定します。

プリタイマーは以下2つのサブルーチンを CALL します。
 (A)減算開始時に「プリタイマー開始」を CALL します。
 (B)減算結果0になった時に「イベント開始」を CALL します。 10/19日削除
イベントタイマーは、
 (C)減算結果0になった時に「イベント終了」を CALL します。
イベントピッチタイマーは、
 (B)減算結果0になった時に「イベント開始」を CALL します。 10/19日削除
 (B)減算開始時に「イベント開始」を CALL します。       10/19日追記


上図は(A)でクリア、(B)でセット、(C)でクリアした場合のポート出力を示します。

プリタイマーと、イベントピッチタイマーには各々繰り返し回数を設定します。 繰り返し回数が0に設定された時は、電源が切られるまで繰り返します。 プリタイマーの繰り返し回数は上図(シーケンス)の繰り返し回数になります。

以上の構想を元に、RRP-1320-1-03 を作る予定です。


楽々PIC」は楽しい道具を作りながら学ぶブログを目指します。