lcpxpresso1769で3色LEDチカチカ
先日製作してもらった基盤にはLEDがなく、なんとなく寂しかったので久しぶりのはんだ付けで3色LEDを取り付けることにし
ました。パーツはマルツから買ってきました。
さて使用するピンは余っていた0[16]、0[15]、0[17]です。このピンだとMbedのコードを使うこともできますが、気分でレジスタを打ちます。
データシートによると、どうやら0[15]と0[16],0[17]ではピン設定で使用するレジスタが違うようです。
まずはピンにどのような働きをさせるかを設定します。
0[15]はPINSEL0の30,31ビット目を00とすることでGPIO出力できます。
なので、その部分だけを00にするために以下のようにレジスタを打ちます。
LPC_PINCON->PINSEL0 &= ~(3<<30);
また他のピンは以下の表より
同様に
LPC_PINCON->PINSEL1 &= ~(3<<0);
LPC_PINCON->PINSEL1 &= ~(3<<2);
とします。
次にGPIOを入力として使用するのか、出力として使用するのかを設定します。そのためには以下の項目をみます。
該当のピンを1とすることで出力になるようです。使用するのは0[15]~0[16]なので
LPC_GPIO0->FIODIR |= 1<<15;
LPC_GPIO0->FIODIR |= 1<<16;
LPC_GPIO0->FIODIR |= 1<<17;
と設定します。これで初期化は完了です。ほかにも書き込み制限のマスクなどがあるのですが、ここでは初期設定で十分使用できるのでそのままにします。
それで、ピンに信号を出力したいときは
LPC_GPIO0->FIOSET |= 1<<15;
で信号がHIGHになり、出力を消したいときには
LPC_GPIO0->FIOCLR |= 1<<15;
で信号がLOWになります。