[WAT-STM32-2.8]22번 예제 Bit Banding 으로 코드 간소화

[WAT-STM32-2.8] 22번 예제 Bit Banding 으로 코드 간소화

WAT-STM32-2.8 예제 중 22번째로 Bit Banding 방식으로 21번의 스위치 입력값을 좀더 간단하게 읽어 올 수 있습니다.

Bit Banding 의 자세한 내용은 아래를 참조하세요 (https://docs.whiteat.com/?p=4006 )

[STM32]Cortex-M3 에서 bit banding

 

앞의 예제에서는 아래와 같이 스위치 입력을 처리하였습니다.

int keynum = WAT_STM32_KEYScan();

if(keynum != 0)
{ 
}
else
{ 
}

 

이 번 예제에서는 다음과 같이 간단히 입력을 처리 하겠습니다.

if(KEY2IBB != 0)
{ 
}
else
{ 
}

 

동작은 앞의 예제와 동일합니다.
KEY1이 눌리면 LED1이
KEY2가 눌리면 LED3이 토글 됩니다.

 

주요 코드

main.c 파일입니다.

// WAT_STM3228_22 Bit Banding 으로 키 입력 받기
// KEY1 눌리면 LED1 toggle
// KEY2 눌리면 LED3 toggle
// 출처: https://docs.whiteat.com/?p=4304
// 

#include "WAT_STM32F103RB_LIB.h"

int main(void)
{
  
  /* 모든 LED 초기화 */
  WAT_STM32_LEDInit(LED1);
  WAT_STM32_LEDInit(LED2);
  WAT_STM32_LEDInit(LED3);

    delay(2000000);
  
    LED1OBB = 1; //PA.02 OFF
    LED2OBB = 1; //PB.02 OFF
    LED3OBB = 1; //PA.03 OFF

    delay(2000000);
      
    LED1OBB = 0; //PA.02 ON
    LED2OBB = 0; //PB.02 ON
    LED3OBB = 0; //PA.03 ON

    delay(2000000);

    /* BitBand 으로 LED OFF */     
    PASetBit(2); //PA.02 OFF
    delay(2000000);  
    PBSetBit(2); //PB.02 OFF
    delay(2000000);  
    PASetBit(3); //PA.03 OFF
    delay(2000000); 
    
    /* KEY 초기화 */
    WAT_STM32_KEYInit(KEY1, BUTTON_MODE_GPIO);
    WAT_STM32_KEYInit(KEY2, BUTTON_MODE_GPIO);    

    while (1)
    {
      /* KEY1 눌리면 */
      if(KEY1IBB == 0)
      {   
        delay(150000);
        if(KEY1IBB == 0)
        {
           /* LED1 toggle */
          LED1OBB_TOGGLE;		   //   LED1OBB = !LED1OBB;
          while(KEY1IBB == 0);
          delay(150000);
        }
      }

      /* KEY2 눌리면 */
      if(KEY2IBB == 0)
      {   
        delay(150000);
        if(KEY2IBB == 0)
        {
          /* LED3 toggle */
         LED3OBB_TOGGLE;	 // LED3OBB = !LED3OBB;
          while(KEY2IBB == 0);
          delay(150000);
        }
      }
    }    
}

결과화면

KEY1 이 눌리면 LED1이 토글,
KEY2 가 눌리면 LED3이 토글됩니다.

 

WAT-STM32-2.8보드  전체 예제

[WAT-STM32-2.8] STM32F103RB Board + 2.8인치 TFT LCD 터치 세트

제품 구매

WAT-STM32-2.8 [STM32F103RB Board + 2.8인치 TFT LCD 터치 세트] 는 https://kit128.com/goods/view?no=221 에서 구매하실 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다