JH7UBCブログ

アマチュア無線 電子工作 家庭菜園など趣味のブログです

MPLAB X v6.20 MCC PIC16F1827 GPIOテスト

2024-06-21 20:26:20 | MPLAB X MCC
 MPLAB X v6.20+MCCv5.50をもう少し使い込んでみようと思います。

 PIC16F1827で、GPIOの設定をテストします。テストする回路図です。
 RB4を入力に設定し、ウィークプルアップします。
 RB3は出力に設定して、LEDを接続します。
 ICSPでテストすます。


 MCCの設定です。
 クロックは、デフォルトのままで、16MHzです。
 Pin Grid Viewで、RB3をoutputに、RB4をinputに設定します。


 次に、Pinsウインドウを開き、RB4のWeek Pillupにチェックを入れます。


 MCCの設定は、これだけです。Generateします。

 まず単純にSWを押すとLEDが点灯するといいうプログラムです。
-----------------------------------------------------
#include "mcc_generated_files/system/system.h"

#define SW RB4
#define LED LATB3

int main(void)
{
     SYSTEM_Initialize();

     while(1){
         if(SW == 0){
             LED = 1;
         }else{
             LED = 0;
         }
    }
}
-----------------------------------------------------

ブレッドボードです。タクトスイッチを押すとLEDが点灯します。


 ついでに、スイッチを押すたびに点灯と消灯を繰り返すプログラムを試しました。動作しますが、若干不安定な時もあります。
-----------------------------------------------------
#include "mcc_generated_files/system/system.h"

#define SW RB4
#define LED LATB3

int main(void)
{
     SYSTEM_Initialize();

     LED = 0;
     int val = SW;
     int state = 0;

     while(1)
    {
         if((SW == 0) && (val == 1)){
             state = 1 - state;
             __delay_ms(10);//チャタリング待ち
         }
         val = RB4;
         if(state == 1){
             LED = 1;
         }else{
             LED = 0;
         }
    }
-----------------------------------------------------

最新の画像もっと見る

コメントを投稿