![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
毎回の質問失礼します。
現在H83052マイコンを使用して、センサで得た電圧値を1ms間隔でA/D変換させるプログラムを作成しています。
マイコンのA/D変換機能と、ITUタイマ機能を用いて測定を行うまでのプログラムの作成は何とか完了しました。
ここで、測定終了後データをどのようにして表示したらいいのかというところでとまっています。
データはA/D変換データ(data[]←int型)、A/D変換時の時間データ(time[]←long型)が、測定プログラム実行時に200個ずつ配列に保存されています。
これをそのままシリアル通信機能を用いてPC側に表示させるようにしたいのです。シリアル通信のH8側からPCへの送信の場合TDRにデータを書き込みそれをTxDより送信すると思うのですが、実際にTDRのアドレスは1バイトですので、データとしては入りません。1バイトごと分けて送信するという方法になってくるのではないかと考えていますが・・・
また、送信する時のコードとしては、数字データもアスキーコードとして送信されてしまうことになるのでしょうか?
どなたか、わかることやアドバイスがあれば、回答よろしくお願いします。
No.2ベストアンサー
- 回答日時:
3052搭載のシリアル通信モジュール(SCI)はTDRにセットされた8bitデータを
トコロテンを押し出すかのようにMSBから順に1bitつづ通信経路(TxD)に電位として出力します。
SCIはTDRにセットされた8bitデータが「数値」なのか「キャラクターコード」なのか一切判別しません。
ただのバイナリデータとして取り扱います。(このことが知りたかったのではないかな?)
PCで簡易にモニタしたいのであれば、ファームウェアにて取得した数値のデータをキャラクターコードに変換し
SCIを用いて出力すればRS232Cケーブルを接続するだけで可能です。
公開されたのは随分昔ですがAcknowrichというフリーウェアが組み込みの動作確認にはお勧めです。
モニタデバッグ環境でシリアルを利用しているのであれば、USB-シリアル変換機等でPC側の
シリアル入力を増やしてあげる必要があるかもしれません。
あとはシリアル通信に関するプルトコルを把握するのが近道です。
■参考サイト
http://www.softech.co.jp/mm_050907_firm.htm
(サンプルの説明はH8Sですが、内容もレジスタ構成も3052と同じ)
「UART」というキーワードで検索しても仕組みを理解するヒントが見つかるでしょう。
シリアル通信のプロトコルそのものにはACK等の応答確認がありませんから、
「ひたすらデータを垂れ流ししてるだけ」とイメージしちゃうと理解が速いかも
いつもありがとうございます。
そうです。TxDが実際にどのようなデータとして扱っているのかが知りたかったです。判別しないということはやり方次第で両方にもできるということですね。
アスキーコードに変換していろいろなところのサンプルを参考にしたら表示されました。あとは、データの表示方法を工夫するだけです。
本当にありがとうございます。
No.1
- 回答日時:
送信コードがバイナリであるか、アスキーであるかは作成者の組み方次第ですね。
H8は16ビットマイコンですから、int型で取得された内容は、バイナリで送信すれば2バイトで済みますね。
ただ、バイナリにすると、うまく制御手順を決めないとデータの区切りが
わからなくなったりするので、初心者には荷が重いのではないかとおもい
ます。
というわけで、ASCIIに変換して区切り文字(CR+LF)を付加して
返信することから始めたらいかがですか?
通信時間を最小にしようとすると、16進4桁(10bitADなので3桁でも充分ですが)+CR+LFとなりますか。
int->HEX文字列への変換は適当に。
バイナリデータでも可能なんですか。。。
でも難しそうなのでアスキーコードに変換してやることにしました。
改行のコードがわからなかったので助かります。ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS GETをPOSTに変更したところ 送信 不能です。 1 2022/04/10 17:31
- C言語・C++・C# TCP/IP通信時のサーバーからの受信 2 2022/11/23 09:11
- Android(アンドロイド) Androidスマホのデータ移行が終わらない 1 2023/08/04 17:25
- その他(学校・勉強) この中で間違ってある説明はありますか?詳しい方に教えていただきたいです。 A. 1つのプログラムが複 2 2023/07/14 01:15
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- docomo(ドコモ) +メッセージの送受信。 au(uq mobile)のデータ回線でdocomoの電話番号の+メッセージ 2 2022/09/14 16:09
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- ドライブ・ストレージ SSDを追加したら昔のHDDがおかしくなった 4 2023/03/23 13:25
- HTML・CSS htmlのデータをwebページみたいに見る方法 5 2023/06/23 17:47
- HTML・CSS WEBサイトの構築。表示データとWEBデザインを分離する考え方を専門用語・業界用語では何と言うか? 8 2022/09/27 09:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PLCとPCの通信
-
PCからシリアル通信で外部ハー...
-
C言語 マイコン
-
VBによるシリアルポート制御
-
古い計量機器からのrs232cを使...
-
レジスタマップって何ですか?
-
Macターミナルで実行中のプログ...
-
逆コンパイルと逆アセンブルの...
-
緯度、経度の 10進法と 60進法...
-
イラストレーターCS4のシリアル...
-
C言語で、メモリを解放しないで...
-
【C言語】再帰が時間がかかる...
-
Excelでのセル内容の高速消去方法
-
C# シリアル通信でデータ受信...
-
バックグラウンドのプロセスの...
-
API関数 GetExitCodeProcess
-
3のつく数字と3の倍数のみを表...
-
家電製品の電力周波数を変える機械
-
VB6からVB2010への変換について
-
プログラミングの問題です。写...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PLCとPCの通信
-
レジスタマップって何ですか?
-
組み込みマイコンでのソフトウ...
-
マイクロ秒で精度が出るタイマー
-
TCNTとTIFRの意味
-
2つのアナログ信号が一致して...
-
マイコンからSDカード内のテキ...
-
電子工作での高速通信
-
PCからシリアル通信で外部ハー...
-
PIC12F683でLEDをスイッチで点...
-
PICマイコンでプログラム!パソ...
-
フラッシュメモリへの書き込み
-
H83052 シリアル通信 A/D変換...
-
マイコンSPI入門
-
PIC16F877内蔵USARTが受信しない
-
プログラミングとコンピュータ...
-
カーブフィットを行うプログラ...
-
AVRマイコンの型番
-
機械語のレジスタペアについて
-
USBハブの自作について
おすすめ情報