09/01/26 03:22:33
私の、製品になっている(確認済みの)割り込み処理は:
void rxrdy1(void) { /* CH1受信 int. */
ucSCI1_RecBuf[uiSCI1_RecPut] = SCI1.RDR; /* 1文字バッファリング */
SCI1.RDRF = 0; /* RXready flag reset */
uiSCI2_RecCount++; /* データカウント UP */
uiSCI1_RecPut = (uiSCI1_RecPut+1)&(sizeof ucSCI1_RecBuf-1); /* リングポインタ更新 */
} これだけですよ。ringバッファサイズを2**nにしておけば、ifで循環させなくてもいい。
一時変数ucWにRDRを読んでからringバッファに格納するコードも無駄ですよね。
受信エラー割り込みはベクタが別ですよね。そちらではエラーフラグをリセットしてますか?
内蔵RAMは8Kと思っていいですか? ringサイズを256にした理由をまだ回答もらってないけど
RAMが潤沢でないから、でいいのかな?