• 検索結果がありません。

第3章  システム・クロック切り替えの応用

5.4  ワンショット・パルス出力

この例では,キー入力により,ソフトウエア・トリガを設計し,10 ms後,1 ms間 H アクティブ出力を行いま す。

図5−14 ソフトウエア・トリガによるワンショット・パルス出力動作のタイミング

カウント・クロック

TM0カウント値

TO0/P30端子出力

CR01設定値

CR00設定値

OSPT

INTTM01

INTTM00

F̲TRG

0000 N N+1 M−2 M−1 M 0000

N

M

10 ms 1 ms

備考 F̲TRG:ワンショット・パルスが出力中であることを示すフラグです。詳細は(2)使 用例を参照してください。

(1)パッケージの説明

<パブリック宣言シンボル>

SOP̲INIT:ワンショット・パルス出力初期設定サブルーチン

<使用するレジスタ>

なし

<使用するRAM>

なし

<使用するフラグ>

なし

<ネスティング・レベル>

1レベル2バイト

<使用するハードウエア>

●16ビット・タイマ/イベント・カウンタ

<初期設定>

●OSMS=#00000001B 発振モード選択レジスタ 分周回路を使用しない

●CLR1 P3.0  ポート3のビット0の出力ラッチを0に設定

●CLR1 PM3.0  ポート・モード・レジスタ3のビット0を出力モードに設定

●CALL !SOP̲INIT  サブルーチンSOP̲INITで設定しています。

<起動方法>

16ビット・タイマ出力コントロール・レジスタ(TOC0)のビット6(OSPT)をセットしてください。

EXTRN   SOP̲INIT M1PRO       CSEG RES̲STA:

    OSMS=#00000001B       ;分周回路を使用しない

    CLR1    P3.0      :兼用端子使用時は出力ラッチ0に設定     CLR1    PM3.0       :兼用端子使用時は出力モードに設定     CALL    !SOP̲INIT       ;ワンショット・パルス出力初期設定ルーチン       ・

      ・ if(キー要求あり)

        if̲bit(!F̲TRG)      ;前回の出力終了?

      SET1    OSPT      ;  16ビット・カウンタ・クリア&スタート       SET1    F̲TRG       ;  ワンショット・パルス・トリガ・フラグ・セット         endif       ;

    endif       ;

    if̲bit(TMIF00)      ;ワンショット・パルス出力終了?

        CLR1    F̲TRG       ;  ワンショット・トリガ・フラグ・クリア         CLR1    TMIF00      ;  TMIF00要求フラグ・クリア     endif       ;

      ・       ・

(3)SPDチャート

タイマ動作停止

16ビット・タイマ・レジスタのカウント・クロックの選択 CR00,CR01をコンペア・レジスタとして使用

コンペア・レジスタ00(CR00)設定

(トリガ開始から2回目のTO0出力反転までの時間)

コンペア・レジスタ01(CR01)設定

(トリガ開始から1回目のTO0出力反転までの時間)

ワンショット・パルス出力モード選択

TM0とCR00の一致でスタート(タイマ動作許可)

SOP̲INIT

(2)使 用 例

このパッケージの使用例では,パルス出力中に再度1 6 ビット・タイマ出力コントロール・レジスタ

(TOC0)のビット6(OSPT)のセットを行わないために,図5−14に示すように,OSPTフラグがセット されると同時に,F̲TRGフラグをセットします。F̲TRGフラグがセットされている間(パルス出力中)に,

次の出力要求が発生してもOSPTフラグのセットを行わないよう処理します。ワンショット・パルス出力終了 後(INTTM00発生時),F̲TRGフラグをクリアしてください。

  (4)プログラム・リスト

PUBLIC  SOP̲INIT OTPINIT     CSEG SOP̲INIT:

    TMC0=#00000000B       ;タイマ動作停止

    TCL0=#01000000B       ;16ビット・タイマ・レジスタのカウント・クロック 1.05MHz     CRC0=#00000000B       ;CR00,CR01をコンペア・レジスタとして使用     CR00=#11550‑1       ;コンペア・レジスタ設定 11ms

    CR01=#10500‑1       ;コンペア・レジスタ設定 10ms     TOC0=#00110111B       ;ワンショット・パルス・モード選択

    TMC0=#00001100B       ;TM0とCR00の一致でスタート(タイマ動作許可)     RET       ;

    END