PortIn - ポート入力

PortIn - ポート入力

デジタル入力をGPIOとして扱う。
マイコン本来のアクセス方法に近いため高速。

http://mbed.org/media/uploads/mbedofficial/digitalin_interfaces.png

初期化

PortIn name(port, mask);

name:任意の名前
port:ポート(Port0~Port5)
mask:使用するピン(ビットを1に)

モード

プルアップ/ダウンの指定

name(mode);

mode:PullUp, PullDown, PullNone, OpenDrain

入力

val = name;

val:値(対応するビットが 0:Low、1:High)

p21~p26の値によってLEDを点灯する

#include "mbed.h"

PortIn     p(Port2, 0x0000003F);   // p21-p26
DigitalOut ind(LED4);

int main() {
    while(1) {
        int pins = p.read();
        if(pins) {
            ind = 1;
        } else {
            ind = 0;
        }
    }
}

LPCXpresso LPC1768 コード

I/Oポート入力

p5(P0.9)の入力をLED(P1.18)へ反映

#include "LPC17xx.h"

int main() {
    volatile int i;

    LPC_PINCON->PINSEL0  &= ~(3 << 18); // GPIO (00)
    LPC_PINCON->PINMODE0 &= ~(2 << 18); // pull-up (00)
    LPC_GPIO0->FIODIR &= ~(1 << 9); // input

    LPC_PINCON->PINSEL3  &= ~(3 << 4); // GPIO (00)
    LPC_GPIO1->FIODIR |= (1 << 18); // output

    while(1) {
        if (LPC_GPIO0->FIOPIN & (1 << 9)) {
            LPC_GPIO1->FIOSET = (1 << 18); // high
        } else {
            LPC_GPIO1->FIOCLR = (1 << 18); // low
        }
        for(i = 0; i < 1000000; i++);
    }
}

詳細 戻る


Please log in to post comments.