度々お世話になっていますMattです。
今、シリアル通信によるコマンドにより動くマシンを作っています。
マシンはステッピングモータを使用しているため、シリアル通信
受信後、割り込みを使用して、ステッピングモータ用パルスを割り
込みを使用して発信させています。ここで割り込みを使用したパル
スの発信がうまくいきません。環境はベストテクノロジーのDeveloper
Liteを,割り込み処理プログラムとしてvoid int_imia1(void)関数を
使用しています。
1.、”ITU.TSTR.BIT.STR1 = の値を0か1にすれば、カウンター
が停止するため割り込みは起こらないのでしょうか。
2.EIとDIの使い方がよくわかりません。EIを使用すると割り込み
動作が許可され、DIを使用すると割り込み動作が不許可になった
場合のITUのカウンターは停止するのでしょうか。
3.ITU.TSTR.BIT.STR1 = 1;とEI;
ITU.TSTR.BIT.STR1 = 0;とDI
のプログラム上の前後関係はあるのでしょうか。
while(1)
{
rcv_result = get_cmd(cmd_data); /*コマンド受信 */
ITU.TSTR.BIT.STR1 = 1; /* カウント動作状態 */
EI;
while(cnt_i!=0){ パルス発信プログラム
}
ITU.TSTR.BIT.STR1 = 0; /* カウント停止状態 */
DI;
}
void int_imia1(void)
{
パルス発振プログラム
}
不明瞭な文章で申し訳ありませんがよろしくご教授お願いします。