第31回 MPLAB Code Configurator(7) 〜プログラム完成〜

今回は自動生成されたプログラムを利用して、スイッチとLEDを制御します。

動作仕様

何度も確認してすみませんが、今回作成するプログラムの動作仕様を再度確認します。

RA2ピンに接続された片方のスイッチが押されるとLEDをON、もう片方のスイッチが押されるとLEDをOFFにします。

プログラムの方針としては、ADC_GetConversion関数でRA2ピンの電圧値を読み取り、その値に応じてRA5ピンのLEDをLED_SetHigh()またはLED_SetLow()で制御します。

 

プログラム本体

動作の流れとしては、ADC_GetConversion関数でRA2ピンのADコンバータ値を読み取り、250未満の場合、250以上750未満の場合、750以上の場合で場合分けをしてLEDを制御します。

LEDのON/OFFは、LED_SetHigh、LED_SetLow関数を使用します。

以下が完成したプログラムです。元のmain.cに対して、追加した部分を「※追加部分ここから」「※追加部分ここまで」でコメントしています。

特に難しいアルゴリズムではないので、これ以上の説明は必要ないと思いますが、不明点ありましたらコメント欄かお問い合わせページからご質問いただければと思います。

void main(void)
{
    
    // ※追加部分ここから
    // ADコンバータの読み取り値を格納する変数
    adc_result_t sw_value;
    // ※追加部分ここまで
    
    // initialize the device
    SYSTEM_Initialize();

    // ※追加部分ここから
    // LEDを点灯
    LED_SetHigh();

    while (true)
    {
        // ADコンバータ値の読み取り
        sw_value = ADC_GetConversion(SWITCH);
        
        // LEDオンの処理
        // (ADコンバート値が250未満の場合)
        if( sw_value < 250 ) {
            LED_SetHigh();
        } else {
            // LEDオフの処理
            // (ADコンバート値が250以上750未満)
            if( 250 < sw_value && sw_value < 750 ) {
                LED_SetLow();
            }
        }
        
    }
    // ※追加部分ここまで

}

 

更新履歴

日付 内容
2017.12.24 新規投稿

« »