掲示板


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

記事No 856
タイトル Re^8: USART受信プログラム
投稿日 : 2017/03/27(Mon) 13:05:10
投稿者 radio
参照先
n様

USARTの設定情報をお送りさせていただきます。

[送信側]
Clock=4MHz

OpenUSART(USART_TX_INT_OFF&USART_RX_INT_OFF&USART_ASYNCH_MODE&USART_EIGHT_BIT&USART_CONT_RX&USART_BRGH_LOW,25 );

[受信側]
Clock=16MHz

OpenUSART(USART_TX_INT_OFF&USART_RX_INT_OFF&USART_ASYNCH_MODE&USART_EIGHT_BIT&USART_CONT_RX&USART_BRGH_LOW,103 );


今の状況について説明させていただきます。
送信側で間隔を開けたり(↓のプログラムでdelay時間を調整)したりして試しています。

↓に掲載する送信プログラムで、ある程度※1通信し続けることを確認しました。


2つ分かったことがあります。

@最初の文字'S'を受信できない。
↓の送信プログラムで、最初に'X'を送信しています。
'X'でなくても、最初に何らかの文字を送らないと、1文字目の'S'を受信してくれません。

A※1
ある程度というのは、送信側の加速度センサが少しでも変化してしまうと、通信が途切れます。
送信側で、送信間隔をあけてしまうと、加速度センサの変化に通信速度が追従できず…エラーになるのでしょうか?

私が今試しているのは、AM送信モジュールを使用して、2400bps通信ですが、
安定した通信を行うことができません。

何かアドバイスをいただけたらと思います。
少し手詰まりな感じがしてきました。

[送信プログラム]
//USART送信
//delay_ms(100);
WriteUSART('X');//putsUSART("S");同等
delay_ms(15);
WriteUSART('S');
delay_ms(15);
WriteUSART('S');
delay_ms(5);
WriteUSART(Direction);
delay_ms(5);
WriteUSART(MLdata >> 8);
delay_ms(5);
WriteUSART(MLdata & 0x00FF);
delay_ms(5);
WriteUSART(MRdata >> 8);
delay_ms(5);
WriteUSART(MRdata & 0x00FF);
//delay_ms(5);
WriteUSART(~Direction);
delay_ms(5);
WriteUSART(~(MLdata >> 8));
delay_ms(5);
WriteUSART(~(MLdata & 0x00FF));
delay_ms(5);
WriteUSART(~(MRdata >> 8));
delay_ms(5);
WriteUSART(~(MRdata & 0x00FF));
delay_ms(5);
WriteUSART('E');
//delay_ms(1);

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


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


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

- WebForum -