初めてのPICで弾速計を作成【中編】
開発環境をインストール
PICの開発環境MPLABのインストールは、東京海洋大学の田原研究室様のHPですごく分かり易く説明されているので非常に参考になる。
英語バージョンしかないが、使っていくうちに最低限の操作はできるようなった。
C言語が使えるが・・・
PICの開発ではC言語が使えるが、”Hello World”で使う printf( )関数 が標準では使えない。
友人に言わせれば、『C言語で使う標準関数が、組込み系の環境であると思うのは甘え 』だそうだ。
そらぁ、ディスプレイもないし、ただのチップだけだし、どうやって出力せいって話だね。
何か出力するにはLEDを付けたり、数字を表したいなら[8]の字の7つのセグメントをLEDで光らせる7セグを付けたり、液晶ディスプレイを付けたりと色々ある。
難易度としてはこんな感じ。
【易】 LEDピカピカ << 7セグ <<< 液晶ディスプレイ 【難】
今回使っている秋月電子でも買える液晶ディスプレイは、I2Cと言う通信規格で通信し合って表示を行っている。
8ピンPICの本でも、キム茶工房ガレージハウス様のHPでも紹介されているので、両者のコードを読み比べたりしていけば大体どんな風に動いているかがわかる。
こちらでは、サンプルコードや、使いやすくしたライブラリ関数まで用意して自由にDLが可能なので非常に有用に活用させてもらった。
いざ、コンパイル!が・・・
プログラムも、サンプルコードをほぼコピペで非常に有効に活用させてもらって、さっそく実行データに変換するためコンパイルするが・・・
エラー吐きまくって通らない!!
色々と調べてみると、XC8とXC7でコンパイラがバージョンアップしたために今まで通っていたものが出来なくなったという報告もチラホラ。
臨時の対応策としては
Production > SetProjectConfiguration>Customize>XC8GlobalOption>の場所で
C Standard をC99 からC90にすればひとまず通るようになった。
いざ石焼き!
周りに先生が居ないので、業界用語なんてあるのか知らないけど、石に実行データを書き込むわけだから、適当に石焼きとか言ってみる(汗。
ところが、最初はウンともスンとも言わないので、調べてみると、このキットで焼くためには、PICKit3側から電源を送ってあげないといけない。デフォルトでは電源なし。
Production > SetProjectConfiguration>Customize>PICKit3
でOptionCategoriesをPowerにすると、電源についての設定が出てくるので☑を付けて必要な電圧3~5Vの設定を行う。
無事、書き込み完了~~。
配線自体はすごくシンプルなんだけど、なんとかここまで来た。
”Hello♡PIC's”
余談だがしょうもないミスも・・・
XC8とXC7の違いでコンパイルが通らない時、コードに問題があると思い込み、コメントアウト「/*~~~~~~*/」を至る所に施して調べていた。
その名残で、問題が解決した後も、ヘッダーの読み込み部分もコメントアウトしてプログラムとして成立せず、2~3日頭を悩ますと言うポカをやらかしいた。
プログラムに関しては本当に自分でも才能ないなぁっとしみじみ思う。
次回、さらに苦難が続くも弾速計の完成へ