現在PIC勉強中の初心者です。
教えて頂きたいのですが、
現在PIC16F877Aを2台使用して相互間をシリアル通信で結び、
一台のPICからの入力12点を二台目のPICの出力12点に出力するプログラムを作成中です。
現在は通信で1点の入力をうけ1点の出力にだすところまでは何とかできました。
そこで調べても合理的で良いやりかたが見つからなかったのでよく御存じの方に教えて頂きたいのですが、
12点の入力をどのようなやり方でまとめ、シリアル通信で送り、どのようなやり方で展開し12点の出力を出すのか良いやり方がありましたら教えて下さい。
(入力はRA,RE,RC,RDを使い、出力はRB,RC,RDを使用してます)
(自分としては2進数でまとめて2つ送ったらわかりやすいのではないかと思っているのですが..)
No.2ベストアンサー
- 回答日時:
PICも含めて、いかなる組込みマイコンでシリアル通信を行う場合でも、その内蔵のシリアル通信機能を使えば、比較的簡単に「送信」する事は誰でも可能です。
問題は、シリアルデーターの2バイト以上の受信です。
(1)その内蔵のシリアル通信機能で、いつ来るか判らない「受信データー」を絶えず環視している必要が有る。->つまり割込処理とするか、あるいは絶えず受信のプログラムを優先的に動かしている必要があるという事です。
(2)内蔵機能であろうが、プログラムでのシリアル受信であろうが、1バイト以上連続して何バイトもデーターが送られて来る様な場合には、その間髪入れずに送られてくるバイトデーターを、取りこぼす事無く、次々と記憶する領域(バッファー)が必要となります。
PICの内蔵シリアル受信機能には、バイトバッファを2個持っています。つまり、2個までは連続したバイトデーターを取りこぼしする事無く自動で受信できますが、それ以上連続したバイトを受信すると、取りこぼしを起こすという事です。
今回は、2バイトで済むので、特に問題なく受信が可能と思いますが、あまりにも、通信のノイズに対する防御が無くて、今後のためにも、そのままの受信はお薦めできません。
詳しくは、下記サイトにPICでのシリアル通信で、割込型ソフトウエアFIFOバッファについて、やさしく詳しく教えています。
ご参照ください。これを知らないと、2バイト以上の受信が全てのマイコンで出来ません。
「パレットソフト」
http://www.palettesoft.co.jp/index.htm
HOME > 技術談話 > PIC microcontroller > シリアル通信
頑張って下さいね。
回答頂きありがとうございます。
読ませて頂き、いろいろ調べて理解できました。
今後のためにもソフトでバッファをもたせ1バイト以上の通信をするプログラムを作ろうと思います。
丁寧な説明を頂きありがとうございました。
No.1
- 回答日時:
結局のところ 12個のデータを送受信するしかないわけだから, ある意味どうにもならないとはいえる. 「送信側では 12個のデータをシリアライズして何らかの方法で送り, 受信側で受け取ったデータをデシリアライズする」しかないよね.
そもそも, データの流れは
何らかのデバイスからのデータを 1台目の PIC が受け取り, それを 2台目の PIC に送る
でいい? もしそうだとすると,
「入力はRA,RE,RC,RDを使い、出力はRB,RC,RDを使用してます」
の「入力」とか「出力」ってなに? 「出力」が「1台目の PIC が 2台目の PIC にデータを送るための信号線」, 「入力」が「2台目の PIC が 1台目の PIC からデータを受け取るための信号線」の意味だとしたら, この 2つの本数が異なるのは明らかに異常でしょ?
あと「2進数でまとめて2つ送る」は何をしているのかさっぱり分からん.
この回答への補足
失礼しました、正確には
「ボタン入力はPIC1の12点を使い、LED出力はPIC2の12点を使用してます」ということです。
↑
質問の説明が悪すぎましたすいません。
あと「2進数でまとめて2つ送る」なんですが、例えば
ボタン入力12点をPIC1でまとめて
data1=0b00000001;data2=0b00000000;
という形でPIC2におくれるかな
みたいになるかなと思ったのですが、素人考えなのですいません。
至らない質問でご迷惑おかけしますが、宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java Java モンスターブリーダー 1 2023/02/05 09:44
- Access(アクセス) Accessフォーム 一部のレコードだけを抽出する方法について 1 2022/06/28 18:45
- Java Java 石取りゲーム 3 2023/02/02 15:46
- スピーカー・コンポ・ステレオ より良いサブウーファーの接続方法を教えて下さい 現行のオーディオシステムは基本的にはCDP→プリ→パ 5 2022/08/24 16:19
- JavaScript Wordpressでヤフー知恵袋やgoo質問のような回答ページを作成したいです 4 2023/06/02 22:38
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Gmail メーラーのThunderbirdの送信機能に関する質問です 3 2022/07/10 10:58
- ビジネスマナー・ビジネス文書 社内便のやりとりを確実に行いたい 2 2023/05/28 11:37
- 中学校 2学期実力テストの国語の勉強法 1 2022/08/01 00:17
- Visual Basic(VBA) 【VBA】Excelの特定範囲のセルを画像で保存したい 2 2023/01/25 13:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FAXが先方に着信したかどうかの...
-
台所のレンジフードが回らなく...
-
FAXで再度印刷する方法
-
電話への迷惑FAXについて
-
FAX受信のエラー
-
FAXとは何ですか?また、FAXと...
-
コンビニから送ったファックス...
-
FAX送信が真っ黒。
-
fax受信するとお金がかかると言...
-
B社のファクス複合機を購入し...
-
[FAX] 掛かって来る迷惑FAXに逆...
-
FAX番号と電話番号はなぜ違...
-
FAX 通話中の場合
-
G4通信対応FAXのメリットは?
-
海外からのFAX受信
-
NHKの受信料って必ずしも払わな...
-
営業時間外にFax送信すると送信...
-
CANON iRC3100でFAXを選別する方法
-
迷惑ファックスの受信拒否
-
NHKで衛星通信費が支払われてな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
台所のレンジフードが回らなく...
-
コンビニから送ったファックス...
-
受信したFAXが黒くなる
-
営業時間外にFax送信すると送信...
-
FAXとは何ですか?また、FAXと...
-
FAXで再度印刷する方法
-
FAX用紙の左上の日時と氏名につ...
-
迷惑ファックスの受信拒否
-
050IP電話の先へFAXが送れない...
-
FAXが先方に着信したかどうかの...
-
FAX受信のエラー
-
電話への迷惑FAXについて
-
FAX送信が真っ黒。
-
FAX 通話中の場合
-
SMSが送信できない
-
電話とFAXの受信音は別々に出来...
-
「**G3**」とでて、FAXの受信が...
-
FAXの送受信の値段
-
パソコンの電源を入れてないく...
-
FAX受信したデータをNASにも同...
おすすめ情報