[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7. 生成ソースの使用方法

有限状態機械を使用するソース内で、`fanfsm.inc' をインクルードします。これ で有限状態機械を操作することが出来ます。  初期化ルーチンは必ず最初にコールさえせしておけば、他の2ルーチンは所望の 時にコールすればよいだけです。簡単な使用例を`sample.asm' に示します。

 
; sample.asm ------------------------------------------------
;
;  状態遷移表コンパラ生成ソースのサンプル
;  (注)状態遷移に関係しない部分は省略しています
;

    $include( fanfsm.inc )        ; 【有限状態機械を利用出来るように】

;----------------------------------------
; プログラム開始
;----------------------------------------
start:
    ; プログラム開始
    ; 各種初期化処理
        :
        :
    call    !init_fanfsm      ; 【有限状態機械の初期化】
        :
main_loop:
    ; メインループ
        :
        :
    call    !get_event        ; イベント獲得する
        ; Cy = 1 なら変化あり
        ; A  = イベント
    bnc     no_event
    call    !fanfsm           ; 【有限状態機械にイベントを投げる】
no_event:
        :
    call    !fan_test         ; 何かの処理..
        :
    jmp    !main_loop
;
;----------------------------------------
; 何かの処理(ユーザー実装)
;----------------------------------------
fan_test:
    ; 現在の有限状態機械の状態を知りたいとする
    call    !get_fanfsm
    cmp     a,#ST_HIGH        ; 強風だったら
    bnz      not_high
    ; 強風の時になにかしたい操作..
            :
not_high:
    ret

以上の開発手順の概略図を図にしました。

http://member.nifty.ne.jp/~masumoto/embed/sttc/devl_flw.gif から獲得出来ます。


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Kiyoshi Masumoto on June, 15 2001 using texi2html