掲示板


[記事リスト] [返信する] [新着記事] [過去ログ] [ワード検索] [留意事項] [管理用]

記事No 900
タイトル USART双方向通信
投稿日 : 2017/04/25(Tue) 09:52:17
投稿者 radio
参照先

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');
}
}

- 関連一覧ツリー (▼ をクリックするとツリーを一括表示します)


- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)
おなまえ
Eメール
タイトル
メッセージ
参照先
画像UP
暗証キー (英数字で8文字以内)
投稿キー (右画像の数字を入力) 投稿キー


- 投稿記事修正/削除フォーム -
処理 No 暗証キー

- WebForum -