MSP432 GPIO Input - Switch

 


Lチカ(つまりデジタルのON/OFF)ができたら、次はデジタルの読み込みが王道の手順でしょという事で簡単な動作確認を実施

緑色のLEDの下にスイッチがあり、P1.1に接続されている。反対側にもP1.4に接続されたスイッチがある。P.1.1を押したらLEDをつけて、P1.4を押されたらOFFする。

 MAP_GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1, GPIO_PIN1);

スイッチの検出のため内部プルアップで使うかプルダウンで使うかを指定する。

プルアップで指定。ボタンが押されたらGNDに落ちるので、押されたらLOWを検出する。

MAP_GPIO_getInputPinValue

でピンを状態を確認して、GPIO_INPUT_PIN_LOW 、つまりインプットピンがLOWかを検出する。

PIN1とPIN4でそれぞれ同じコードを書いて、LEDのオンオフができる。

int main(void)

{

    /* Stop Watchdog  */

    MAP_WDT_A_holdTimer();

    MAP_GPIO_setAsOutputPin(GPIO_PORT_P2, GPIO_PIN0);

    MAP_GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1, GPIO_PIN1);

    MAP_GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1, GPIO_PIN4);

    while(1)

    {

     if(MAP_GPIO_getInputPinValue(GPIO_PORT_P1, GPIO_PIN1)==GPIO_INPUT_PIN_LOW){

      MAP_GPIO_setOutputHighOnPin(GPIO_PORT_P2, GPIO_PIN0);

     }

     if(MAP_GPIO_getInputPinValue(GPIO_PORT_P1, GPIO_PIN4)==GPIO_INPUT_PIN_LOW ){

      MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P2, GPIO_PIN0);

     }

    }

}



コメント

このブログの人気の投稿

Attiny85とAQM0802A(LCD)のI2C接続

ILI9341 240X320 Arduino

Attiny85 FuseRest