前へ | 目次 | 次へ |
調歩同期式シリアルデータ「受信」 | |
シリアルデータ受信関数として、rs_getcを紹介しましたが、 これを使って複数のデータを受け取ろうとしたとき、 正しく利用しないと思った通りにデータを受け取ることができません。 ここでは、3桁の数値データ(000から249までと限定しておきます)を受け取り、 その値を返すプログラムを作ってみましょう。 入力には必ず3桁を用い、50を入力するときなどは050と入力することとします。 今回も、BestTechnologyの、 GCC Developer Liteに付属する sci.cの関数を利用することにします。 | |
| |
angc[0]=rs_getc(); 受け取った1文字のデータを配列angcの最初の要素に格納しています。 2文字目はangc[1]へ、3文字目はangc[2]へ格納しています。 | |
angle=(angc[0]-'0')*100; 受け取った1文字のデータを数値に直しています。 そのまま返しても良いのですが、 実際には受け取った数値をint型に格納して作業することが多いかと思い、 ここではあえて一旦int型に変換してみました。 3桁という指定をしているので、最初の文字は100の位になります。 このため100を掛けています。 本来でしたら、この部分でエラー処理を入れるべきでしょうが、 ここでは入れていません。 | |
rs_puts(IntToDec(angle, 3, angc)); ここでは、返すデータも、 int型に変換したものをchar型に再度直して送り返しています。 | |
rs_puts ("\n\r"); 見やすくする為に改行コードを送っています。 ハイパーターミナルだと、\rで改行して行の先頭に戻り、 \nは改行だけで行の先頭には戻らないようです。 ここでは念のため両方入れておきました。 | |
実行例 | |
2004/07/02(Fri) | |
AKI-H8/3664 QFP版のトップページへ | |
トップページへ |
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||