[戻る]
一括表示

USART双方向通信 投稿者:radio 投稿日:2017/04/25(Tue) 09:52:17 No.900


PIC18F2320 + C18の環境で作成しています。

下記サイトを参考にさせていただき、無線ラジコンに取り組んでいます。
[参考サイト]
http://www.picfun.com/Sensor/equipj77.html


送信側のプログラムを作成していますが、
基本、↓のコードを送信するのですが、受信側からあるコード('X')を受信したときだけ、LEDを点灯させる制御を行いたいです。(受信側から送られるコードは、不定期に送られます。)

↓のコードの3〜7行目を追加してみたのですが、else以下の送信すら動作しません。
双方向(送信と受信)を両立させるためには、どのように記述すれば良いのでしょうか。


void RadioCar(void)
{
while(!DataRdyUSART()){} //必要
RcvData = ReadUSART();
if(RcvData == 'S'){
LED=1;
 }

else{
//USART送信
WriteUSART('S');//putsUSART("S");同等
WriteUSART('S');
WriteUSART(Direction);
WriteUSART(M1data >> 8);
WriteUSART(M1data & 0x00FF);
WriteUSART(M2data >> 8);
WriteUSART(M2data & 0x00FF);
WriteUSART(~Direction);
WriteUSART(~(M1data >> 8));
WriteUSART(~(M1data & 0x00FF));
WriteUSART(~(M2data >> 8));
WriteUSART(~(M2data & 0x00FF));
WriteUSART('E');
}
}

- WebForum -