LEDフリーラン点滅
■ はじめに |
はじめてHarmonyをつかってPIC32MZを動かす場合、LEDフリーラン点滅(LEDを定周期で繰り返しON/OFFする)を最初にやってみるとよいと思います。 Harmonyのイメージがつかめるのではないかと思います。 LEDリーラン点滅の例として以下の4つの場合について紹介します。 いずれの場合もMHC(MPLAB Harmony Configurator)を使いプロジェクトファイルのフレームワークを作成し 所要のプログラムを追加したり、生成ファイルを修正したりしてプロジェクトファイルを完成させています。 コンフィギュレーションや割り込み処理の記述だけをとっても全部手書きするのは結構大変です。ハーモニーのMHCは、よくできています。 特別な理由がない場合は、MHCを使うのが賢明です。 @はCPUのNOP(No Operation)により遅延時間を利用したもので一番わかりやすいものです。 ABはタイマ割り込みをつかったものです。Harmonyにはタイマライブラリとしてスタティックタイマライブラリーとダイナミックタイマライブラリーが用意されています。スタティックタイマはライブラリーがわかりやすいと云う特徴があります。一方、ダイナミックタイマはライブラリーが若干わかりずらいと云った欠点はりますが、移植性がよい、プログラム実行中でもISR(Interrupt Service Routine)の変更が可能である、また HarmonyのTimer System Serviceのタイマが複数のISRでも使用できる等の長所があります。(スタティックタイマとダイナミックタイマ差違詳細 → Timer Driver Library) CはHarmonyがサポートしている遅延時間関数を利用した場合です。USB制御やグラフィック制御など短いサイクルでの繰り返しタスクが必要な制御があるアプリケーションで併用した場合でも影響を及ぼさないといった特徴があります。 @ NOPによる遅延を使う場合 Aタイマ割り込み(Static Timer Drivers Library)を使った場合 Bタイマ割り込み(Dynamic Timer Drivers Library)を使った場合 C システムタイマ(Timer System Service)の遅延関数を使った場合 D システムタイマ(Timer System Service)のコールバック関数を使った場合 Eタイマ割り込み用コールバック関数を使った場合 |
@〜Cの各場合の <仕様><試作品回路図><動作結果>は以下で、すべて同じです。 ■ 仕様 ・ PIC32MZを使用する ・ LEDは1sec ON、1sec OFFを繰り返す ・ 動作クロックは外部に24MHzの水晶発振器を接続しこれを使用する |
■ 試作品外観
下記の写真には上記回路図にはない、また本テーマと関係のない部品も多々写っています。
■ 動作結果 (画像をクリックすると プログラム動作中の動画がYouTubeで再生します)
試作品 (PIC32MZ QFPモジュール組立キット → 購入方法) (QFPモジュール用ユニバーサルキバン → 購入方法) |
(参考) PIC32MZ評価ボード(MZ100-A001) ( → 購入方法 ) |
|
動作結果の 動画再生 |
![]() |
![]() |