LPCXpresso IDE〜IO設定とGPIO制御

今までLPCXpresso IDEやFlash Magicのインストールやツールの使い方など開発環境の構築を中心に記事を書いてきましたが、実際のプログラミングの内容に入っていきたいと思います。まず今回は、入出力の基本となるIO設定とGPIO制御についての説明となります。

IO設定は、CMSIS に従った表記では、モジュールからのポインタを使用する書き方になります。具体的には、GPIOの場合、LPC_GPIO# というポインタを使用してレジスタを指定します。

(例)PIO0_7 を出力に設定。GPIO0 モジュールの DIR レジスタの7ビット目を”1″とする

LPC_GPIO0->DIR  |= 0x080;

(例)PIO0_7 のトグル(出力ピンに設定の場合)

LPC_GPIO0->DATA ^= 0x80;

これらの設定や制御は、サンプルプログラム中のdriverディレクトリにある、gpio.h、gpio.cを利用しても行う事ができます。

(例)PIO0_7 を出力に設定し、L出力にする。

GPIOSetDir(PORT0,7,1);
GPIOSetValue(PORT0,7,0);

ちなみにドライバの中は、この様になっています。

void GPIOSetDir( uint32_t portNum, uint32_t bitPosi, uint32_t dir )
{
   if ( dir )
      LPC_GPIO[portNum]->DIR |= 1<<bitPosi;    else       LPC_GPIO[portNum]->DIR &= ~(1<<bitPosi);
}

またピンの基本的な属性設定は、LPC_IOCONで行います。

(例)PIO0_8のLPC_IOCONを下記の様に設定。
Bit[2:0]=FUNC={00}:Function PIO0_8
Bit[4:3]=MODE={00}:Inactive(no pull-down/pull-up resistor enabled)
Bit[5]=HYS={0}:Hysteresis Disable
Bit[7:6]=Reserved={11}:-

LPC_IOCON->PIO0_8=0xC0;

IOの設定や制御に関しては、ユーザーマニュアルを参照して設定を行いましょう。以下のサイトからダウンロードできます。
LPC User Manual
LPC1114の場合は、UM10398がユーザーマニュアルで、IO設定などに関する詳しい情報が記載されています。

→その他のLPCXpresso関連情報

Sponsored Link