1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #include "nrf.h" #include "boards.h" #define LED 22 #define BUTTON 16 void GPIOTE_IRQHandler(void) { // Event causing the interrupt must be cleared. if ((NRF_GPIOTE->EVENTS_IN[0] == 1) && (NRF_GPIOTE->INTENSET & GPIOTE_INTENSET_IN0_Msk)) { NRF_GPIOTE->EVENTS_IN[0] = 0; nrf_gpio_pin_toggle(LED); } } static void gpio_init(void) { nrf_gpio_cfg_output(LED); nrf_gpio_cfg_input(BUTTON, NRF_GPIO_PIN_PULLUP); nrf_gpio_pin_clear(LED); // Enable interrupt: NVIC_EnableIRQ(GPIOTE_IRQn); NRF_GPIOTE->CONFIG[0] = (GPIOTE_CONFIG_POLARITY_Toggle << GPIOTE_CONFIG_POLARITY_Pos) | (BUTTON << GPIOTE_CONFIG_PSEL_Pos) | (GPIOTE_CONFIG_MODE_Event << GPIOTE_CONFIG_MODE_Pos); NRF_GPIOTE->INTENSET = GPIOTE_INTENSET_IN0_Set << GPIOTE_INTENSET_IN0_Pos; } int main(void) { gpio_init(); while (true) { // Do nothing. } } | cs |
'Programing > Nordic(BLE)' 카테고리의 다른 글
시중에 판매중인 모듈 사용하기 (0) | 2015.09.23 |
---|---|
외부 인터럽트 & 타이머 인터럽트를 이용한 롱버튼 구현 (1) | 2015.05.25 |
LED 깜빡이기 (0) | 2015.05.10 |
타이머 인터럽트 (0) | 2015.05.10 |
Nordic에서 나온 nRF51422 & nRF51822 (0) | 2015.05.10 |