NXP JN516X (TWELITE) をプログラミングする(GPIO)

SDKのままでも良いのだが洗脳されてしまったのかなんとなくArduino風の名前で使いたくてライブラリを作ってしまった。(-_-;)

JN516xのGPIOには入出力用と出力専用の2種類があるがシームレスに使えるように考えてみた。ピン変化割り込みも使える。JN516xでは割り込み機能とウェイク機能は全く同じものでSDKでは関数名が異なっているが同じAPIを呼び出すようになっている。このへんは誤解を与えそうなおかしな仕様とも言えるので本来の機能名のwakeという名称で統一してみた。実行中であれば割り込み処理が呼び出されスリープ中であればウェイクアップ起動されるだけの違いしかないがウェイクアップ起動には割り込みハンドラの指定が必須であることには注意が必要だ。割り込み処理が必要ない場合は前回の投稿で紹介したSystemライブラリで実装されている空の割り込み処理(empty)を指定すればOKだ。

【ライブラリ】

※存在しないピン番号の指定を避けるため定義済みのPIN型シンボルを利用すること。

GPIO割り込みは他のシステム割り込みと割り込みハンドラーを共有するため個別に割り込みハンドラーを登録できるようにするためだけのライブラリ。

次回は、Timerライブリを説明予定。

【関連投稿】
NXP JN516X (TWELITE) をプログラミングする(開発環境の構築)
NXP JN516X (TWELITE) をプログラミングする(メイン・ルーチン)
NXP JN516X (TWELITE) をプログラミングする(TICKTIMER)
NXP JN516X (TWELITE) をプログラミングする(UART)
NXP JN516X (TWELITE) をプログラミングする(SYSTEM)
NXP JN516X (TWELITE) をプログラミングする(GPIO)
NXP JN516X (TWELITE) をプログラミングする(TIMER)
NXP JN516X (TWELITE) をプログラミングする(ALARM)
NXP JN516X (TWELITE) をプログラミングする(WAKETIMER)
NXP JN516X (TWELITE) をプログラミングする(WATCHDOG)
NXP JN516X (TWELITE) をプログラミングする(I2C)
NXP JN516X (TWELITE) をプログラミングする(SPI)
NXP JN516X (TWELITE) をプログラミングする(ADC)
NXP JN516X (TWELITE) をプログラミングする(COMPARATOR)
NXP JN516X (TWELITE) をプログラミングする(CLOCK)
NXP JN516X (TWELITE) をプログラミングする(BROWNOUT)
NXP JN516X (TWELITE) をプログラミングする(PULSCOUNTER)
NXP JN516X (TWELITE) をプログラミングする(INFRARED)
NXP JN516X (TWELITE) をプログラミングする(RANDOM-GENERATOR)
NXP JN516X (TWELITE) をプログラミングする(FLASH)
NXP JN516X (TWELITE) をプログラミングする(EEPROM)
NXP JN516X (TWELITE) をプログラミングする(WPAN)
NXP JN516X (TWELITE) をプログラミングする(Eclipse-CDT+MWSTAGE)
NXP JN516X (TWELITE) をプログラミングする(乗算と除算)
NXP JN516X (TWELITE) をプログラミングする(マルチタスク)
NXP JN516X (TWELITE) をプログラミングする(フラッシュ・プログラマー)
NXP JN516X (TWELITE) をプログラミングする(OTA UPDATE)
NXP JN516X (TWELITE) をプログラミングする(TWELITE CUE/MC3630)
NXP JN516X (TWELITE) をプログラミングする(LED)
NXP JN516X (TWELITE) をプログラミングする(AES)
NXP JN516X (TWELITE) をプログラミングする(Downloads)