PortOut - ポート出力

PortOut - ポート出力

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

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

初期化

PortOut name(port, mask);

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

出力

name = val;

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

LEDをまとめて点滅する

#include "mbed.h"

// LED1 = P1.18  LED2 = P1.20  LED3 = P1.21  LED4 = P1.23
#define LED_MASK 0x00B40000

PortOut ledport(Port1, LED_MASK);

int main() {
    while(1) {
        ledport = LED_MASK;
        wait(1);
        ledport = 0;
        wait(1);
    }
}

LPCXpresso LPC1768 コード

I/Oポート出力は、一般的なポートレジスタとSET/CLRレジスタを使う方法がある。

LED(P1.18)点滅

#include "LPC17xx.h"

int main() {
    volatile int i;

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

    while(1) {
        LPC_GPIO1->FIOPIN |= (1 << 18); // high
        for(i = 0; i < 10000000; i++);
        LPC_GPIO1->FIOPIN &= ~(1 << 18); // low
        for(i = 0; i < 10000000; i++);

        LPC_GPIO1->FIOSET = (1 << 18); // high
        for(i = 0; i < 10000000; i++);
        LPC_GPIO1->FIOCLR = (1 << 18); // low
        for(i = 0; i < 10000000; i++);
    }
}

詳細 戻る


Please log in to post comments.