2022年4月25日月曜日

PICのポートアクセスの仕組みをヘッダーから見る

かなり昔の事、PIC12F509というちっこいのを昔使ったことがあって、

最近はどうなの?と思って開発環境を入れてみた

まず、IDE

ここからインストール

https://www.microchip.com/en-us/tools-resources/develop/mplab-x-ide

次にコンパイラが入ってないのでコンパイラのインストール

https://www.microchip.com/en-us/tools-resources/develop/mplab-xc-compilers#tabs

んで、MPLAB X IDEを開き

FileからNew Project


Nextを押してPIC12F509を選択


デバッガは無いのでこのままNext

コンパイラを選択してNext

プロジェクト名を入れてFinish

Source Filesで、メインを作ってみる(main.cを選択)

すると、こんなメインが出来上がる

#include <xc.h>

void main(void) {
    return;
}


ポートについて調べようと、Classesタブを見てみると、
Librariesの下にGPIObitsがあったので、中身を見てみた。


ちなみに、データシートによると、GPIOは06h割り当てられている。

さきほどのGPIObits_tを選択すると、pic12f509.hのヘッダが開くのだが、

そこに以下のように書かれてる。

typedef union {
    struct {
        unsigned GP0                    :1;
        unsigned GP1                    :1;
        unsigned GP2                    :1;
        unsigned GP3                    :1;
        unsigned GP4                    :1;
        unsigned GP5                    :1;
    };
} GPIObits_t;
extern volatile GPIObits_t GPIObits __at(0x006);

構造体でビットが定義してあって、GPIObits.GP0=1;とかやればいいんだなってのが分かる

#include <xc.h>

void main(void) {
    GPIObits.GP0 = 1;
    return;
}




0 件のコメント: