鈴木(正)様
返事が遅くなりまして申し訳ありません。
ご回答ありがとうございました。
ご指摘のこと良く分かりましたのですが?・・。
割り込み受信のところを以下のように変更してみました。
/* SCI0から割込みで1文字受信する***************************/
interrupt void RXI0_Interrupt(void) {
SCI0.SSR.BYTE &= ~(0x40); /* RDRFフラグをクリア */
if (rx_phase == 2) {
return; /* 受信データ処理中なら無視 */
}
else {
RXBUF[rx_len++] = SCI0.RDR; /* バッファへの書き込み */
rx_phase = 1; /* 受信データがあるよん */
}
}
当然のことながら、1文字のみの割り込み受信が正常にできました。
さて、
>受信割り込みは、あくまでも1文字を受信することが基本です。
と、理解いたしましたが、では、
>>RXBUF[rx_len++] = SCI0.RDR; /* バッファへの書き込み */
等によるバッファへの蓄積ルーチンは、どこに記述するのが正しいのでしょうか
実は、ここがよく分かっていないポイントなのです。
(メインルーチンの中??・・・・)
お手数をおかけ致しますが、もう一手、ご教授いただけましたら
幸いに存じます。(鈴木)
--- とりあえず、リングバッファは、保留して置いてください。---
----
鈴木 政之 suzuki@xxxxxxxxxx