コンフィギュレーション・ビットの設定 [PIC12F683]

PIC マイコンにはビルトインの機能がいろいろあって、それぞれの機能を ON にするか OFF にするかとか、 そういった設定情報も設定する必要があります。

設定情報は PIC12F683 のコンフィギュレーションビットというところに設定値を書き込むことによって行います。 コンフィギュレーション (configuration) は「設定」という意味です。

PIC12F683 のデータシートの Configuration Bits (コンフィギュレーションビット) は次のようになっています。

これをメモリーのアドレス 2007h から書き込みます

例えば「ウォッチドッグタイマー」を OFF にするためには WDTE の部分を 0 と書き込めば良いです。

#pragma config でコンフィギュレーションビットを設定

XC8 コンパイラでは #pragma ディレクティブで、コンフィギュレーションビットを書き込むことができます。

#pragma というのは、コンパイラに対して特別な命令を指示するものです。C 言語というより、コンパイラに対する命令ですので、 コンパイラ毎に違います。

さて、 「ウォッチドッグタイマー」のコンフィギュレーションビットを OFF にするためには、 WDTE を設定することになっていて、ソースコード内に次のように書きます。

#pragma config WDTE = OFF

※ WDTE は WatchDog Timer Enable の意味です。

MPLAB X のコンフィギュレーションビットウィンドウの利用

特定のコンフィギュレーションビットを 0 にしたり、1 にしたりすれば良いだけなので、まぁ簡単といえば簡単なのですが、 設定もたくさんあって、毎回やるのも面倒ですし、設定値を覚えるのも大変です。

MPLAB X IDE では、コンフィギュレーションビットを設定するための補助機能があります。

MPLAB X IDE の Window メニューから PIC Memory Views を選択して、 その中から Configuration Bits を選択します。

または、Production メニューの Set Configuration Bits メニューを選択します。

すると、MPLAB の画面の下側にコンフィギュレーションビットの設定ツールが表示されます。

ここで、例えば次のように設定値を変更して、Generate Source Code to O... ボタンを押します。

すると、Output ウィンドウに次のように設定情報が作成されます。

これをソースコードにコピー & ペーストします。ここに出力されただけでは、ソースコードには反映されないことに注意してください。

// PIC12F683 Configuration Bit Settings

// 'C' source line config statements

// CONFIG
#pragma config FOSC = INTOSCIO  // Oscillator Selection bits (INTOSCIO oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = ON       // Power-up Timer Enable bit (PWRT enabled)
#pragma config MCLRE = OFF      // MCLR Pin Function Select bit (MCLR pin function is digital input, MCLR internally tied to VDD)
#pragma config CP = OFF         // Code Protection bit (Program memory code protection is disabled)
#pragma config CPD = OFF        // Data Code Protection bit (Data memory code protection is disabled)
#pragma config BOREN = ON       // Brown Out Detect (BOR enabled)
#pragma config IESO = OFF       // Internal External Switchover bit (Internal External Switchover mode is disabled)
#pragma config FCMEN = OFF      // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is disabled)

// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.

#include <xc.h>

この他、従来の MPLAB で使われていた __CONFIG マクロを使う方法等も使えますが、 シンタックスの警告がでるようですので、#pragma に移行するのがよいと思います。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 基礎からの IoT 入門