ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

MESで遊ぼう!コミュの教えてくださいm(_ _)m

  • mixiチェック
  • このエントリーをはてなブックマークに追加
最近、マイコンのプログラムを始めた初心者です。

AKI−H8/3069Fに、MESを乗せてプログラムを作っています。

このマイコンボードについているシリアルポートを使ってH8同士の通信を行いたいのですが、可能なのでしょうか?

また、可能であれば、実際にプログラムなど乗せていただけると幸いです。

通信する内容は4桁の数字で、外部に取り付けた送信ボタンを押すと送信・受信ボタンを押すと受信するようなものを考えています。

無理なお願いかも知れませんが、どうかよろしくお願いしますm(_ _)m

コメント(10)

MESの何かを書いた方がいいですよ。
MES2とMES1ではシリアルのデバイス名が違いますし。
最新バージョンということで、2.3r6をダウンロードしました。
MES2であればデバイス名はcom0,com1,com2...です

H8の標準はcom1なので、com1は起動時にopen済みです。
ファイルディスクプリタは0です。
もう一つはcom0でオープンします。

read(),write()で読み込み、書き出しを行います。
ノンブロッキングなので、シリアルからデータが来ていない場合は
read()はゼロを返します。

MES2から標準のシリアルドライバーは割り込みタイプでなくなったので連続でデータが来ると取りこぼしが発生します。
私が質問したわけではありませんが、
参考になりました。
ありがとうございます。

>連続でデータが来ると取りこぼしが発生します。

というのが、どんなことか、よくわかりません。

私は、今MES2.4を SH7145Fで使っています。
モデムのようなものを使っていて、
ATコマンドを出すと、CR LF OK CR LF
なる。データを受けたいと思い、

リードで受けようと思いますが、
メインループで、readを呼び続けても、
うまくデータを受け取ることをできません。

取りこぼしということになるのでしょうか?
このような場合は、read()を使えないのでしょうか?
ちなみに、ATコマンドはwrite()で送っています。

よろしくお願いします。

MES2.4の最新バージョンのシリアルドライバーは割り込みでの送受信を行うタイプですから、割り込みタイプではない事による取りこぼしではないと思います。

また、取りこぼしの場合は部分的にデータを受け取れますが、全くデータを受け取れないのなら取りこぼしでは無く、ボーレイトが合っていないや、open(),read()やwrite()の使い方が間違っているなどの問題の可能性が高いです。

ご参考まで。
ただ三岩さんがアナウンスしているようですが、MES2.5からは割り込みタイプのドライバは全廃する予定のようですので、ご自身でシリアルドライバーを書かれておいたほうがよろしいかと思います。
ありがとうございます。
考えてみます。
質問があります。

私は、今MES2.4を SH7145Fで使っています。

以前やっていた人が2つのプロセスを作って、
それを引き継いでやっています。
今回、私は1つのプロセスを付け加えました。

あるとき、コンパイルして、3つのプロセスを
立ち上げようとすると、
RAM0上のフォルダが壊れたように
文字化けてしまいます。

開発環境は、三岩のところのもので
tftpサーバをつかって、LANを使って転送して
実行します。
その実行しようとして、RAM0上がおかしくなります。

そのようになったのは、新しい機能を付け加えようと
プロジェクトにファイルを追加したときです。

その機能は、以前別のCPUでつかわれていたソースです。

原因がわからず、また、文字化けがどのような状態
かわかりません。

ご意見お願いします。
ええと「文字化け」というのが具体的にどういう症状だかわからないんですが。
ram0はその名の通りメインメモリの一部をファイルシステムとして利用しているので、ユーザープロセスのメモリの使い方に問題があれば壊れることもあるだろうし、またram0の容量を超えたら壊れることもあります。
そのうちのどっちかかな〜と思ったりするのですがいかがでしょう?

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

MESで遊ぼう! 更新情報

MESで遊ぼう!のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。