PIC18Fを使用していて、ハイパーターミナル経由でデータを送信しようとしています。0.5秒ごとに1つのキーを押して低速でデータを送信すると、データを受信して正しくエコーしますが、高速でキーを押し始めると、MCUがロックされます。何が原因かわからない。
while(index<length){
while(PIR1bits.RCIF==0); // Wait till char recieved
sendData(str2,9); // confirm reception
Delay1KTCYx(5); //delay because without it, it messes up.
rxData[index]= RCREG; //char array
index++;
}
ボーレートはPICとハイパーターミナルの両方で2400です。
これが受信ループです。sendDataは、「受信済み」と言って送信するデバッグコードです。それが凍結したことを私たちが知る方法です。
毎回同じ量のループでフリーズするわけではなく、データを入力する速度だけに依存します。