PICで気圧、温度、湿度計 by 24FJ64GA002 その7
スリープとウェイクアップ
ここまで出来れば、ほぼ完成と思ったらそうは行きません。 |
さて、PIC24FJ64GA002での押しボタンによるスリープモードへの移行と、押しボタンによるスリープモードからのウェイクアップが出来る様になりました。 でも実は、なかなか難関でした。 という様に1行挿入で書いています。 これは、PIC24FJのマニュアルを良く読むと そこで、自分でアセンブラー内の「SLEEP_MODE」定義を探して、実際の数値を探ってみました。 MPLAB ASM30 Suite > Support > PIC24F > inc > p24FJ64GA002 asm "PWRSAV #0"; と書き換えると、一発でスリープモードに突入! (2)ポート状態変化検知機能を有効等の諸設定をして・・ 「CNモジュールはスリープまたはアイドルモード中も継続して動作します。 つまり、スリープは復帰時に、CPUとの割り込みレベルによって、 スリープ中のシステム全体の消費電流値ですが、 |
|
|
なお、例によってこのソースプログラムは、 Windows XP Pro v2002 SP3上で、 現時点において最新で無償の、 MPLAB-IDE v8.56、 MPLAB C30 C Compiler [pic30-gcc.exe] v3.24 にてコンパイルしています。 今回のプロジェクトファイルでも、PIC24F用のUART用ライブラリーを使用しています。uart.h をインクルードして使う事に成りますが、MPLAB C30 のご利用のバージョンに合ったライブラリーを正しくリンクさせる為に、その都度MicroChipのディレクトリー内のファイルをリンクさせてください。配布用のサンプルプロジェクト内にはそのライブラリーの実体が含まれません。 また、単純にインクルード宣言をするだけでは正しくライブラリーを参照する事が出来ません。 まず、PIC24FJ64GA002用の uart.h をリンクさせるには、 C:¥Program Files¥Microhip¥MPLAB C30¥lib¥PIC24F¥libpPIC24Fxxx-coff.a を、プロジェクトファイルのLibrary Files に登録してください。 また、プロジェクトファイルのLinker Scriptに、 C:¥Program Files¥Microhip¥MPLAB C30¥support¥PIC24F¥gld¥p24FJ64GA002.gld を登録してください。 この2つが正しく登録されていて始めて、 #include <uart.h> が正しくコンパルが通る様になります。 なお、PIC24F用のHI-TECH C は、現在は残念ながら対応していません。今回のプロジェクトは MPLAB C30 用なのでお間違え無い様にして下さい。 プログラミングは、秋月電子通商のPICkit2互換機を使っています。MPLAB C30 コンパイラーから直接秋月PICkit2互換機を通じてICSP接続で書込みをしています。 気圧センサー部分を含むプログラムの大部分を、パレットソフトさんの HI-Tech C 用ソースプログラムを利用し、私が変更に、変更を加えて使用しています。 プログラムの構成方法を、パレットソフトさんのプログミング形式を利用し、ソースリストのデバッグや、再利用がしやすい様にしています。 ノキア5110表示用のライブラリー部分は、 CQ出版の「トランジスタ技術2006年3月号」に掲載された、 R8C/15付録マイコン基板活用企画 第9回 小型グラフィック液晶表示器で作る簡易温度計 山本 秀樹氏 のR8C/15用ソフトウエアをHI-TECH C Compiler用に移植したものを、さらに MPLAB C30 C Compiler用に再利用しています。 湿度センサーSHT-11とのインターフェース部分は、エレキジャックさんのソースを利用して変更を加えて使用しています。 (Oct. the 28th 2010) |
なお、当ホームページで公開しているデーター(写真、音声)等を個人の枠を超えて複製・転用する事はご遠慮下さいませ。 |
ご意見/苦情/ご感想はこちらまで |