본문 바로가기

Cortex-M/EFM32

[EMF32] GPIO 테스트

[EMF32] GPIO 테스트

EFM32는 Cortex-M3이므로 GPIO도 특별할것은 없지만 레지스터명은 EnergyMicro사에서 제공하는 이름을 사용하는것이 편리하다. 



기존 코드와 호환을 위해 랩핑함수를 만들어 보았다.

#define GPIOA                           (pGPIO->P[0])
#define GPIOB                           (pGPIO->P[1])
#define GPIOC                           (pGPIO->P[2])
#define GPIOD                           (pGPIO->P[3])
#define GPIOE                           (pGPIO->P[4])


#define sbi(Port, Bit)     (Port.DOUTSET = Bit)
#define cbi(Port, Bit)     (Port.DOUTCLR = Bit)
#define tbi(Port, Bit)     (Port.DOUTTGL = Bit)

 

 


EFM32 LED 드라이버 코드

//-----------------------------------------------------------------------------
//LED Driver
#define LED1_BIT      BIT0
#define LED1_PORT      GPIOC
#define Led1Init()      
#define Led1Off()      sbi(LED1_PORT, LED1_BIT)
#define Led1On()      cbi(LED1_PORT, LED1_BIT)
#define Led1Toggle()     tbi(LED1_PORT, LED1_BIT)

#define Led1Init()       CMU->HFPERCLKEN0 |= CMU_HFPERCLKEN0_GPIO;\
                                        Sbi(GPIOC.MODEL, GPIO_P_MODEL_MODE0_PUSHPULL);

//-----------------------------------------------------------------------------


반응형