SyntaxHighlighter

2014年8月8日金曜日

Device::BCM2835

というわけで、自分用GPIOリスト
Perl版Device::BCM2835を使う場合は、この番号になるはず。
GPIOと書かれたところの番号しか、&Device::BCM2835::RPI_GPIO_P1_*で
指定できなくてエラーが出るはずです。

使う人がいる場合、自己責任で。
※I2CポートもGPIOですが、は、個人的に液晶をつないでいるのでなしにしました。

>引用:定数リストの一部 from search.cpan.org
RPI_GPIO_P1_03
RPI_GPIO_P1_05
RPI_GPIO_P1_07
RPI_GPIO_P1_08
RPI_GPIO_P1_10
RPI_GPIO_P1_11
RPI_GPIO_P1_12
RPI_GPIO_P1_13
RPI_GPIO_P1_15
RPI_GPIO_P1_16
RPI_GPIO_P1_18
RPI_GPIO_P1_19
RPI_GPIO_P1_21
RPI_GPIO_P1_22
RPI_GPIO_P1_23
RPI_GPIO_P1_24
RPI_GPIO_P1_26


ついでに使い方もまとめておこう。
なかなか探しても出力の例ばっかで、入力の見つけられなかったし。

PerlでDevice::BCM2835を使う場合。

*宣言
use Device::BCM2835;

*初期化
Device::BCM2835::init() || die "Could not init library";

*入力に設定(input)
Device::BCM2835::gpio_fsel(&Device::BCM2835::RPI_GPIO_P1_26, &Device::BCM2835::BCM2835_GPIO_FSEL_INPT);

*出力に設定(output)
Device::BCM2835::gpio_fsel(&Device::BCM2835::RPI_GPIO_P1_24, &Device::BCM2835::BCM2835_GPIO_FSEL_OUTP);

*プルアップ設定(Internal pullup enable)
Device::BCM2835::gpio_set_pud(&Device::BCM2835::RPI_GPIO_P1_26, &Device::BCM2835::BCM2835_GPIO_PUD_UP);

*プルダウン設定(Internal pulldown enable)
Device::BCM2835::gpio_set_pud(&Device::BCM2835::RPI_GPIO_P1_26, &Device::BCM2835::BCM2835_GPIO_PUD_DOWN);

*プル無効設定(Internal pullup disable)
Device::BCM2835::gpio_set_pud(&Device::BCM2835::RPI_GPIO_P1_26, &Device::BCM2835::BCM2835_GPIO_PUD_OFF);

*HIGH出力
Device::BCM2835::gpio_write(&Device::BCM2835::RPI_GPIO_P1_24, 1);
or
Device::BCM2835::gpio_write(&Device::BCM2835::RPI_GPIO_P1_24, HIGH);

*LOW出力
Device::BCM2835::gpio_write(&Device::BCM2835::RPI_GPIO_P1_24, 0);
or
Device::BCM2835::gpio_write(&Device::BCM2835::RPI_GPIO_P1_24, LOW);

*入力取得
$val = Device::BCM2835::gpio_lev(&Device::BCM2835::RPI_GPIO_P1_23);

*ミリセカント単位のディレイ
Device::BCM2835::delay(100);

0 件のコメント:

コメントを投稿