
初期設定
PIC12f629使用
PIC内部オシレーター使用
汎用レジスターをタイマーカウントレジスターとして定義

start
bsf GPUIO,0
call tim_n
bcf GPIOP,0
goto start
メインプログラムの call tim_n が呼び出されたら以下のサブルーチンにジャンプする

行№39 Wレジスタに任意(n)を代入 1<n<255
行№40 Wレジスタ数値をCNT1に移す
行№42 wait_sub にジャンプ
行№47 Wレジスタに200を代入
行№48 Wレジスタ数値をCNT2に移す
行№50 何もしないで1サイクル消費
行№51 何もしないで1サイクル消費
行№52 CNT2の値 200ー1 を実行して 0 になるまで繰り返す
行№54 0になったら、return で 行№42に戻る
行№43 CNT1の値 n-1 を実行して 0 になるまで繰り返す
行№45 0になったら、return でメインプログラムに戻る
このようにして、メインプログラムの call 命令呼び出しからサブルーチンのreturn 命令でメインプログラムに戻るまでプログラムが巡って、結果としてnmsecの時間ができる
ご不明の点はご遠慮なくお尋ね下さい。存じ上げていることは丁寧にご案内させていただきます。
TEL 090-3194-4902
TEL 090-3194-4902
