• ベストアンサー

C言語による赤外線受信

タイトルの通り、C言語によって赤外線の受信をしようとかんがえていますが、まったくおもいうがびません。赤外線の基本的な知識はあるのですが、どうすればうまくいくのかな?って言う状態です。送信機側は、ある本からそのままアセンブラで作ったのですが、とある事情により受信側はC言語でつくらなくてはいけません。どなたか、ホームページとう情報をお持ちの方よろしくおねがいします。また、もし回答するのに足りない点があれば指摘おねがいします。

  • e1432
  • お礼率53% (7/13)

質問者が選んだベストアンサー

  • ベストアンサー
  • kaha
  • ベストアンサー率23% (41/177)
回答No.3

No.2のkahaです。 PICマイコンは全く知りません。 PICcliteもアセンブラも同様に知りません。 参考ページですが、説明文だけでの判断ですが、 わかりますよね。 RA4ポートは単なる入力ポートとして使用。 LOWが8ビット分以上続いた後のHIGHをスタート ビットとして判断。その後600μsec毎に ポートを読み0または1として判断していく。 この方法では読みミスすることがあるので、 送信側は同じデータを2度送信し、受信側で 2つのデータが一致するのを確認する。 HIGH(1)のあとLOW(0)が8ビット分以上続けば 通信は終わりと判断。 C言語のサンプルですが、「ライントレースロボット入門」の本に載ってそうです。これも目次だけでの判断ですが。(参考URL)

参考URL:
http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=4-274-08741-7

その他の回答 (3)

回答No.4

RA4を使うのはシュミットトリガ入力だからでしょう。 送信機が参考URLのものなら、受信機のプログラムも参考のものをC言語で書けばいいだけですね。 プログラムの内容はNo.3に書いてある通りです。ループでソフトウェイトを作っていますが、Cで書くとステップ数が見積もりにくいので調整が必要かもしれませんね。 プログラムができたとしても大変なのは動作確認(デバッグ)です。38kHzの信号を扱うので最低でもオシロがないと厳しいのではないかと思いますが。。。

  • kaha
  • ベストアンサー率23% (41/177)
回答No.2

●ハード構成(自作基板なのか?、CPUの型番は?、赤外線入力はどのポート(何番ピン)に接続されているか?) ●ソフト構成(コンパイラの名称とバージョンは何か?) 普通に考えると 1.赤外線入力は割り込みポートに割付ける。 2.HIGHの割り込み処理の中で、次はLOWで割り込み発生するように設定変更し、今度LOWの割り込み処理では、次はHIGHで割り込み発生するように変更する。そのようにしてHIGHでもLOWでも処理できるようにする。 3.内部カウンタを使ってHIGH、LOWの時間間隔をカウントし8ビット単位でまとめる。そして、数バイトのキャラクタとしてコード化する。(例)メーカ4文字、機種3文字、ボタン2文字とか。 4.市販のTVとかのリモコンを受信して調べてみれば、そのON・OFFの周期とか調べられるのでは?

e1432
質問者

補足

書き込みありがとうございます。 ・基盤は自作です。 ・PIC16F84Aを使用します。 ・ポートはRA4ピンです。RA4はちょっとほかと違うというのは知っていますがその程度でどうしてこのポートを使うのかよくわかっていない状況ですが… ・コンパイラはPICclite、MPLABでプログラムし、秋月のPICプログラマーで焼きこみます。 具体的なプログラムを見ないとよくわからない初心者です。できれば参考ページ、プログラム等を教えてはいただけませんか? こちらのページを参考に考えたのですが、アセンブラでしか書いてないです。しかもアセンブラは理解できません。それにC言語で作らなくてはいけないという条件つきですので…。 http://www.picfun.com/appframe.html

  • liar_adan
  • ベストアンサー率48% (730/1515)
回答No.1

この情報だけでは誰も答えられません。 普通、C言語には、「赤外線受信の機能」はありません。 おそらく、やりたいことは、 「赤外線を受信する装置のマイコンチップ部分を 制御するプログラムを、C言語を使って開発したい」 という事だと思います。 その場合、どういう回路か、使うマイコンは何か、 使うC言語処理系は何か、 そして他に使えるルーチンはあるかないか。 などにより答はまったく違ってきます。 私はマイコン関係の知識はなく、その情報があっても答えられませんが、 とにかく、赤外線受信装置の大まかな構造、 チップの種類、C言語処理系、 最低このくらいの情報がないと、誰も答えられません。 「補足」欄に書き込めば、誰か詳しい人が教えてくれるかもしれません。

関連するQ&A

  • アセンブラ→C言語

    アセンブラを学んでから C言語を学ぶとわかりやすい(理解しやすい) と聴きました。 どうやって勉強すれば良いですか? やっぱり本屋さんでアセンブラについての本を買って 勉強した方が良いですか? 今まで全くコンピュ-タ-についての言語を 習ったことがありません。

  • C言語との違い

    大学で情報コースでC言語とアセンブラとは実験や授業で扱ったのですが知り合いからサーバーを立ち上げるためにPHPを使うんで手伝ってほしいといわれました。 PHPについて色々調べたのですがCとアセンブラしか知らなくても扱えるものなのでしょうか?? 相手は普通の釣具屋さんなんです。 詳しくC言語との違いを知りたいです。 本などを読んで分かるものでしょうか??

    • ベストアンサー
    • PHP
  • C言語の完全入門を買ったはいいが。。。

    言語を覚えようと思って、なんか適当にC言語の完全入門とかいうのを買ってしまいました。こちらの過去の質問を見たところ、C++の方がよさそうなことも書いていたのでちょっとショックです。 まだはじめたてなので、今からC++に変えようかなと思ったりもしていますが、このままCの勉強を続けても問題ないでしょうか?せっかく買ったからもったいないようにも思えて。。。 あまり目的はないのですが、とりあえずはじめてみようと思ったことなのですが。。 あと、まだ数ページしか見ていませんが、それより前に、アセンブラとか実行の方法とかの本もまずありました。 (というのも本のシリーズでC入門は第2巻で第1巻はそのような本が載っていましたもので。。。) てっきり入門だからこれが最初だと思ったので買ったのですが、一番の入門はその実行とかの方ですかね? 昔にFortranをかじったぐらいで知識は薄れてしまっているのですが。。。 よろしくお願いします。

  • アセンブラ言語についてです。

    こんにちは。 現在大学3回生で就職活動をしております。 ESに得意科目の欄があり、大学の講義で習ったアセンブラ言語と書こうと思います。 アセンブラ言語は、将来どのような役に立つのでしょうか?? アセンブラ言語を学んでCやJAVAのプログラミングに生かせるのでしょうか?? 知識としては、基本情報技術者のCASLIIの問題が解ける程度です。 よろしく願いします。

  • C、C++、Peal、PHPその他「高級言語」といわれる言語について

    僕はPICマイコン(16シリーズ)を趣味で使っており 言語はアセンブラを使っています。 で、質問なんですが最近ホームページを作りたくなり LINUXの勉強も含め自宅サーバーを立ち上げCGIをやってみようと思いました。 で、CGIといえばPealだろと思っていたので、その手の入門書や ネットの情報を見ると冒頭には大抵「大して難しくない」的な事が 書いてありました。 実際にやってみたんですがチンプンカンプンでした。 イメージとしては下記のような感じなんだと思うんですが マイコンのアセンブラと比べたらよっぽど低級言語な気がしてなりません。 アセンブラ=低級言語=人間にわかり難い C、C++等=高級言語=人間に解り易い アセンブラもはじめはチンプンカンプンでしたが、ある程度理解してしまえばそれなりに使いこなせるようになりました。 マイコンのアセンブラは命令数も少ないしイエスかノーだけで「もしも~」とかないので単純といえば単純なんですが・・・ 質問1 高級言語の「人間に判りやすい」っていうのは具体的にどういうことなんでしょうか? 質問2 最近やたらとPHPが流行ってる気がします。 もうPealは廃れてしまったんでしょうか?

    • ベストアンサー
    • Perl
  • PICライタ (C言語→HEXファイル)

    今PICライタについて独学で勉強しています。 今ソフト的には秋月のPICライタおよび、MPLAB使ってます。 しかし、MPLABがC言語読み込めないため迷っています。 そこで質問なんですが (1) C言語をアセンブラ言語に変換する無料ソフトありますか? (2) (1)をあきらめたとしてアセンブラ言語で書くとして、アセンブラ言語でPICのプログラム書くための、わかりやすい本などご存知ですか? やっぱりCコンパイラを買うしかないのでしょうか??

  • 赤外線リモコンについて

    赤外線リモコンについて お世話になります。 赤外線リモコンは受信機と送信機が対になっていますが これをそれぞれ対でない受信機と送信機で操作を可能にする 方法は無いのでしょうか? 宜しくお願いします。

  • 赤外線送信について

    携帯電話の赤外線送信機能を使っての画像を複数枚送信することは 可能でしょうか? (複数枚送信をして何がしたいかというと、赤外線受信可能なプリンタに送信をして 4分割画像を印刷したいからです。メーカーでは赤外線で4枚携帯から送ることが 出来れば可能と言われました。) 私の周りにある携帯電話はどれも一枚ずつしか送信出来ませんでした。 そもそも携帯電話で複数枚の画像を送信できないのでは?? とも思うのですがどうでしょうか? また仮にまとめて送信できても、赤外線の接続は一枚目を送って、一回切れて次の画像の送信となるのでしょうか?? 購入前のメーカー側の説明と実際購入したものの機能が異なっていたので このようなことを調べてます。その為、あくまでも赤外線の送信のことについて 質問させていただいております。 詳しい知識をお持ちのかた、よろしくお願いします。

  • C言語でWin32API

    C言語を使ってWin32APIを呼び出すような、Windowsプログラミングを始めたいんですが、何かよい本やサイトはご存知ないでしょうか。 Visual C++6.0はあるんで、それを使えばいいと思うんです。 C言語はわかるんですが、Windowsプログラミングに関する知識はほとんどないので、ごく基本的なことから知りたいんです。 WinMain関数というのを書くようなんですが、その書き方すら知りません。  スケルトン(出来れば、それよりもっと基本的なこと)から書いてあるようなものです。

  • 目標言語→C#

    私はアセンブラ言語の知識とCを少しかじったくらいの経験しかないのですが、独学でC#の習得は出来るでしょうか?最初はJAVAやVBを勉強しようと思ってたのですが、某サイトではC#のほうがJAVAやVB、C++の長所を引き継いでいるので良いと書いてたので悩んでいます。あとどれくらいの時間があれば習得できるかもしりたいです。どなたかアドバイスお願いします。