MCCの ADS,PWM module を使い、8-bit Curiosityボード上の POTの調整で D7 の明るさを変化させる手順を解説します。
Curiosity ボードは多くの 8 bit PICをサポートしていますが、ここでは、ボードに付属していた PIC16F1619 を使用します。
この例では、「New Project...」から、ADCPWMという名称のプロジェクトを作成しました。
もし、上記のような MCC ロゴが表示されていない場合には、MCC プラグインがインストールされていいるか確認してください。MCC のインストールは、ここ に説明があります。
MMCの設定から4MHz_HF を選択し、PLL Enabled のレ点を外します。
右上のPackege表示がDIPでない場合、下部のPackege欄(赤丸)でDIPに変更します。
Device Resources ウインド内の Libraries list にある ADC icon 展開して ADC icon をダブルクリックします。
モジュールがロードされると ADC icon が、Project Resources に現れます。
表示される画面を見ながら、マウスでクリックして設定します。
ADC module がロードされると、Pin Manager に、利用できる ADC入力pinが表示されます。
pin RC0(channel_AN4) を ADC入力に、指定します。
このピンは Curiosity ボードの POT 1 に接続されています。
Device Resources ウインド内の Libraries list にある Timer icon 展開して TMR4 icon をダブルクリックします。
モジュールがロードされると TMR4 icon が、Project Resources に現れます。
モジュールがロードされると TMR4 設定画面が現れますが、初期設定のまま使用します。
Device Resources ウインド内の Libraries list にある PWM icon 展開して PWM3 icon をダブルクリックします。
モジュールがロードされると PWM3 icon が、Project Resources に現れます。
モジュールがロードされると PWM3 設定画面が現れます。連携するタイマーを Timer 4 にします。
PWM3 module がロードされると、Pin Manager に、利用できる PWM3 出力pinが表示されます。
pin RC5 を指定します。
このピンは Curiosity ボードの LED D7 に接続されています。
Notificationsタブをクリックし、通知の内容を確認します。
「Timer 4 の Posrscaler は PWM 動作では無視される。」
「PWM3 は Timer 4 と連携している」という通知でエラーではないため別段修正は必要ありません。
Generate ボタンをクリックします。
MCC の自動生成したファイルの名称を指定して保存します。この例では「MyConfig.mc3」
MCCは、プロジェクトに以下の11本のファイルを登録します。
自動生成された main.c ファイルを開き、
を組み合わせて while ループ内にADC結果をPWMモジュールに引き渡す命令を配置します。
下記リストでは赤でハイライトされている一行。
ヒント
MCCにより組み込まれる関数の名称やや動作の概要は、各モジュールの .h, .c ファイルのコメント欄に説明されています。
void main(void)
{
// initialize the device
SYSTEM_Initialize();
// When using interrupts, you need to set the Global and Peripheral Interrupt Enable bits
// Use the following macros to:
// Enable the Global Interrupts
// INTERRUPT_GlobalInterruptEnable();
// Enable the Peripheral Interrupts
// INTERRUPT_PeripheralInterruptEnable();
// Disable the Global Interrupts
//INTERRUPT_GlobalInterruptDisable();
// Disable the Peripheral Interrupts
//INTERRUPT_PeripheralInterruptDisable();
while (1)
{
// Add your application code
PWM3_LoadDutyValue(ADC_GetConversion(channel_AN4));
}
}
Program アイコンをクリックし、PICにプログラムを書き込みます。
書き込み終了後に、可変抵抗器(POT1)を回すと LED D7 の明るさが変化します。
プロジェクトファイルとコンパイル後のHEXファイルを掲載します。
プロジェクト A03_ADC_PWM.zip |
HEXファイル Curiosity_ADC_PWM.zip |