PICマイコンに関連する話題
XC8攻略記5
前回はswitch文に関連する話を書きました。そのときに記載を省いたことが1つありました。それを書いてみたいと思います。 関数テーブルによる処理分岐 条件分岐を高速に行う方法の1つとして「テーブル方式による分岐」があります。enum値が0か...
PICによるRC戦車制御3
「戦車制御機能」部分が作成できたので、残りの機能を作っていきます。 受信と制御の連絡機能 赤外線受信処理では、データの受信が完了したときにEvent_IRR_DataIsReceivedイベントを発生します。(詳細は「PICによる赤外線通信...
PICによるRC戦車制御2
「戦車制御機能」の続きです。 モーターのソフトウェアPWM 戦車のモーターはソフトウェアPWMで動かします。そのためのコードを作成していきましょう。 これはいろいろと説明するよりも、コードを見た方が早いと思うので、先にコードを示します。 T...
PICによるRC戦車制御1
これは「PICによる赤外線通信」の続きです。「PICによる赤外線通信8」で、赤外線受信処理部分のプログラムはできてしまったので、タイトルを変更しました。 残りの作業について 「PICによる赤外線通信5 受信プログラムの周りの機能について」で...
PICによる赤外線通信8
イベントについて ここまでのコードや説明で「イベントを発生する」「イベント発生フラグを立てる」といった説明していたので、それについて説明します。 イベント駆動型プログラム まず、今回の受信処理プログラムはイベント駆動型プログラムで作成するこ...
PICによる赤外線通信7
受信プログラムの続きを行っていきます。 受信フェイズの検討 送信処理プログラムを作成したとき、送信フェイズの検討を行いました。受信プログラム側も同様にフェイズを分類することにします。 フェイズ名説明受信を期待する信号と回数STOPデータ受信...
PICによる赤外線通信6
まずは、受信処理プログラムの基本部分を作っていきましょう 受信処理に必要な最重要機能 前回の送信と受信のタイミングの違いでも説明したように、「パルスON」の時間と「パルスON+OFF」の時間を計測することで、送信側から送られてきた信号を判定...
XC8攻略記4
XC8の最大の弱点が分かりました。それはswitch文です。 【注意点8】switchは最大の鬼門 すでに結論を述べていますが、XC8はswitch文が最大の鬼門だと思います。 switch文はいろいろメリットがあります。C言語に慣れている...
PICによる赤外線通信5
前回までで送信プログラムをある程度作成できたので、今回から受信プログラムを作っていきます。 受信プログラムの検討に入る前に、全体的な回路構成や受信データについての注意点など、周辺について説明します。 全体的な回路構成 下に、受信側の回路構成...
XC8攻略記3
攻略記2の【注意点5】ループ処理カウント方法の話の中で、「ループを抜けるチェックもカウントダウンの方が簡潔になっています。」ということを書きました。(該当箇所へのリンク)そこで条件式について調べてみたいと考えました。 【注意点6】条件式は0...
XC8攻略記2
XC8攻略記。今回はもっとも基本的な算術処理についてです。 【注意点4】演算子の罠 もっとも単純な計算式を考えてみます。次の計算式はAとBを足してCに代入しています。 C = A + B; // AとBを足してCに代入 次のように書けば、C...
XC8攻略記1
はじめに 一般的な話としてコーディング(プログラムの作成)を行う場合は、「わかりやすいこと」「簡潔であること」が望ましいとされています。それは、主に次の理由からです。 不具合:不具合を作りこみにくい。また不具合が発生してもデバッグが行いやす...
PICによる赤外線通信4
送信プログラム作成の続きです。 送信フェイズの検討 前回までのコードで状況に応じてIRT_NextSignalにセットする値を変えることで、赤外線通信ができるようになっています。「状況に応じて」を整理するために、送信処理をいくつかのフェイズ...
PICによる赤外線通信3
通信フォーマットを決めたので、送信側のプログラムを作成していきましょう。 単純ケース まず単純なケースです。下のようなコードでリーダー部やアドレス部を送信することはできます。なお、IRT_On()とIRT_Off()は、過去に説明しています...
PICによる赤外線通信2
通信フォーマット 赤外線通信を行うために参考となる情報を検索した結果、赤外線通信には通信フォーマットというものがあることを知りました。 特に参考になったのは、こちらのページでした。 NECフォーマットなど様々な通信フォーマットがありますが、...