このマクロを読み込むと初期化とマクロの定義を行います。 初期化部分はアセンブル時にリストに表れますが、マクロ定義は隠されます。
意味 | マクロ名 | 引数 | 機能 | 使用法 |
---|---|---|---|---|
出力ピンの設定 | enable_PB | なし | PORT B を全て出力に割り当て、0 クリアする | プログラムの冒頭で使用 |
出力ピンの設定 | enable_PAPB | なし | PORT A のコンパレータを無効にした後、 RA5 以外とPORT B を全て出力に割り当て、0 クリアする (RA5 は出力できないポート) | プログラムの冒頭で使用 |
RA5 のスイッチを監視し、押された度にサブルーチンを呼ぶ | sw_init | なし | 変数を宣言し、初期化する | プログラムの冒頭で使用 |
sw_prg | サブルーチン名 | RA5 を監視し、スイッチが ON の時、直前のスイッチの状態が OFF の時 だけ引数で指定されたサブルーチンを呼ぶ | 無限ループなので、主プログラムに割り当てる | |
ビジーウェイト | bwait_init | 待ち時間 | 変数を初期化し、指定された待ち時間を定義する | プログラムの冒頭で使用 |
bwait_prg | なし | 指定された待ち時間だけ nop を繰返し、 return する | 外部から bwait を call する | |
カウンター | counter_init | なし | カウンタ変数を宣言し、初期化し、初期状態を表示するため dispcounter を呼んでいる | プログラム冒頭で使用 |
counter_prg | 上限値 | カウンターを進め表示する inccounter と表示するだけの dispcounter の二つのプログラムを展開する。 | 外部から、 inccounter , dispcounter を呼ぶ。 counter 値に応じて表示パターンを返す getpat サブルーチンが必要 | |
表示パターン | getpat_bit_prg | なし | W レジスタに値を入れて呼ぶと、その値に応じた表示パターン(下位から 値の数分だけ 1 が埋まったビットパターン)を返す | 外部から W レジスタに値を入れた後、 getpat を呼び出す。 パターン数は pat_end - pat_start で与えられる。 |
表示パターン | getpat_num_prg | なし | W レジスタに値を入れて呼ぶと、その値に応じた表示パターン(7 セグメ ント表示器に対する 16 進数のビットパターン)を返す | 外部から W レジスタに値を入れた後、 getpat を呼び出す。 パターン数は pat_end - pat_start で与えられる。 |
タイマー割り込み | timer0_init | プリスケーラのモード | TIMER0 割り込みを有効にする。 | プリスケーラの値を引数に与え、プログラムの冒頭で使う |
timer0_prg | サブルーチン名 | TIMER0 により割り込みが発生するとサブルーチンを呼び出す。 | 0004h の割り込みベクタに goto timer0 を記述する。 呼び出されたサブルーチンは通常の return で返す。 | |
ポストスケーラ | postscale_init | 呼び出し頻度 | 変数を宣言し初期化する。呼び出し頻度を宣言する。 | プログラムの冒頭で使う。 |
postscale_prg | サブルーチン名 | 呼び出し頻度で指定された回数だけ呼び出されたら、一回サブルーチンを 呼び出す。 | 外部から postscale を呼び出す。 | |
デューティ | duty_init | なし | 変数の初期化 | プログラムの冒頭で使う。 このマクロを展開した後、 duty_ratio, duty_period には、それぞれ頻度と周期を入れておく。 |
duty_prg | OFF 時のサブルーチン名, ON 時のサブルーチン名 | 呼び出される度に、ON 時のサブルーチンか、 OFF 時のサブルーチンかの どちらか一方だけ呼び出す。但し、duty_period 回中、 duty_ratio 回だけ ON 時のサブルーチンを呼び、 その他は OFF 時のサブルーチンを呼び出す。 | 外部から duty を呼び出す | |
set_rate_by_counter_prg | なし | counter レジスタの値を元に getduty で得た値を duty_rate に入れる | 外部から set_rate_by_counter を呼び出す。 getduty サブルーチンが必要。 | |
デューティ比パターン | getduty_prg | なし | W レジスタに値を入れて呼ぶと、その値に応じたデューティ比を返す。 W レジスタが 0 の時は最大周期を返す | 外部から W レジスタに値を入れた後、 getduty を呼び出す。 パターン数は startduty - endduty で与えられる。 なお、初期化時に 0 を入れて呼び出し、得られた値を duty_period に入れて おく。 |
PORTA の ON, OFF | porta_init | なし | 変数を宣言 | プログラムの冒頭で使用。初期値を patterna に入れる。 |
porta_prg | なし | porta_on を呼び出すと patterna の値が PORTA に入る。 porta_off を呼び出すと PORTA は全て OFF になる。 | 外部から porta_on, porta_off を呼び出す。 |