« HC08マイコンの使い方QY4A編 -《114》【製作】赤外線リモコンとマイコン・カー(7) | メイン | HC08マイコンの使い方QY4A編 - 目次 »

PICマイコンをHI- TECH Cで動かす(1)


PIC16Fの1000番台の拡張ミッドレンジの入手が容易になる
 2011年の初めから秋月電子通商からPIC16F1XXXの拡張ミッドレンジのPICが販売され、電子工作でも容易に高性能になったPICマイコンが利用できるようになりました。あわせて、MPLAB IDEもHI-TECH Cと連携し8ビット・マイコンでもプログラムの開発をCで行うことができるようになってきました。

MPLAB IDE HI-TECH C共にバージョンアップを重ねている
 2011年8月現在、MPLAB IDEはV8.73a(2011/7/1リリース)、HI-TECH CはV9.82(2011//6/20リリース)となっています。
 HI-TECH CはV9.81からは従来のCの__config()と互換性がなくなり、V9.81以前に作られ動作していたプログラムも、次に示すように各コンフィグレーション・ビットを指定する変数が未定義となります。

PIC30100010.jpg

 このエラーの対応方法はリーリースのノートの4章に、_LEGACY_HEADERSのマクロ定義をするように記述されています。具体的には次に示すように、Project>Build Options>ProjectでProject Optionのウィンドウを表示します。


PIC30100020.jpg 表示された、Build OptionsのCompilerのタグを選択します。このタグのDefine macrosの欄に、_LEGACY_HEADERSをセットするためにAddの欄に次に示すように記入します。


PIC30100030.jpg Addのボタンをクリックすると、次に示すように_LEGACY_HEADERSがセットされます。


PIC30100040.jpg このセットが完了すると、従来のヘッダ・ファイルも参照され、未定義のエラーはなくなります。


PIC30100045.jpg拡張ミッドレンジのPIC16F1939を接続してみる
 PIC16F1939を選択したプロジェクトを作成し、プロジェクトを開きました。この時点でPICkit3を接続すると次に示すように、PICkit3が検出されFirmwareのバージョンが表示されます。プロジェクトでPIC16F1939が選択されています。このPICの電源電圧レベルについての確認メッセージが表示されます。このメッセージにOKで答えると、このPIC16F1939が拡張ミッドレンジのPICなので、次に示してあるように対応したFirmwareがロードされテストが行われます。

PIC30100050.jpg 上記の表示と次の表示はほぼ同時に表示されます。従来のPIC16F88などのミッドレンジのPICの場合は、Enhancedの外れたミッドレンジのFirmware タイプになります。

PIC30100060.jpg まだ、PICkit3とマイコン・ボードを接続していないので、PICkit3にマイコン・ボードを接続するように警告が表示されます。


PIC30100070.jpg PIC16F1939の搭載された、マイコン・ボードをPICkit3に接続すると、Deviceが検出されリビジョンが表示されます。http://www.eleki-jack.com/mycom2/2009/07/pic13.html 作りながら学ぶPICマイコン入門のフォロー(13)から(25)まででHI-TEC Cのインストール、簡単なプログラムの作成を行いました。
 今回は、アナログ入力を利用してセンサの値を読み取る、PWM出力で 照明などを制御する、などアセンブラで行っていた処理をC言語のプログラムで作成してみます。拡張ミッドレンジの各種のPICは200円以下で入手でき従来品よりより安価になっています。
 各テスト回路をブレッドボードに作成し、Arduinoと同等以上の手軽さで便利なものの制御の中核部分にPICが利用できることを確認する予定です。
 アナログ入力のテストを行うためのHI-TECH Cのプログラムを考えます。
<神崎康宏>

カテゴリ:

トラックバック

このエントリーのトラックバックURL:
http://www.eleki-jack.com/mt/mt-tb.cgi/5782

コメント (1)

宮永:

にんにちは。

picc ver9.83 をインストールしてから、config・・の記載が出来なくなり、このhpで_LEGACY_HEADERS のことを知りました。感謝です。

疑問があります。

>HI-TECH CはV9.81からは従来のCの__config()と互換性がなくなり・・

これから、VER0.83 を使い、ソースを書くとき、コンフィーグの書き方はどうなるのでしょうか?

英語はにがてなので、例を教えてくださいませんか。

16F877で

__CONFIG( HS & WDTDIS & PWRTEN & BORDIS & LVPDIS & DEBUGDIS & UNPROTECT );
としています。

この場合、これからは、どのような関数なのでしょうか?

お忙しいとは思います。よろしくお願いいたします。

札幌。KAKU。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)





カテゴリ

会社案内
情報セキュリティおよび個人情報の取り扱いについて

コメントとトラックバックは、spamを予防するために、編集担当が公開の作業をするまで非公開になっています。
コメントはそれぞれ投稿した人のものです。

Powered by
Movable Type 4.1
/*yahoo remove*/