Study502 DFU (Device Firmware Update) DFU는 사용하는 beacon의 firmware를 업데이트 하려는 목적으로 사용됩니다. 업데이트의 범위는 softdevice부터 bootloader, application까지 다 가능합니다. Architecture를 보면 DFU target과 DFU controller라는 2개의 Device로 나뉩니다. DFU target은 말 그대로 업데이트 하려는 device 즉 beacon이 되고, DFU controller는 업데이트를 하기 위해 이용하는 device가 됩니다. DFU controller는 ble를 이용하면 폰이 될 수도 있고, PC와 nrf dongle을 이용할 수도 있고, UART를 이용하면 PC가 됩니다. DFU bootloader에서는 bootloader가 시작되고, update할 게 있는.. 2015. 3. 18. nRF51 DK 예제 20 -LPCOMP(Low Power Comparator) LPCOMP는 저전압비교기인데, 여기서는 아날로그 입력2(AIN2)를 계속읽어들여 기준전압의 반(4/8)이하로 떨어지면 LPCOMP의 인터럽트가 발생되게 됩니다. main 1234567891011121314151617181920212223242526272829303132int main(void){ LEDS_CONFIGURE(LEDS_MASK); LEDS_OFF(LEDS_MASK); nrf_gpio_cfg_output(WAVE_ON_PIN_NUMBER); // on this pin 2Hz wave will be generated #ifdef BSP_BUTTON_0 // configure pull-up on first button nrf_gpio_cfg_input(BSP_BUTTON_0, NRF_GPIO_P.. 2015. 3. 17. nRF51 DK 예제 19 -UART(Loop back test) 이번예제는 UART Loop back test입니다. main 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152int main(void){ LEDS_CONFIGURE(LEDS_MASK); LEDS_OFF(LEDS_MASK); uint32_t err_code; const app_uart_comm_params_t comm_params = { RX_PIN_NUMBER, TX_PIN_NUMBER, RTS_PIN_NUMBER, CTS_PIN_NUMBER, APP_UART_FLOW_CONTROL_ENABLED, false, UART_BAUDRATE_BAUDRATE_Baud38400 }; APP_.. 2015. 3. 16. nRF51 DK 예제 18 -WDT(Watch Dog Timer) Watch Dog Timer(와치독 타이머)는 시스템이 어떤 원인으로 인해 뻗어버리는 것을 방지하기 위한 목적으로 쓰입니다. 일정시간 지정해 놓으면, 타이머가 동작하게 되고, 시스템이 재부팅됩니다. 시스템이 살아있다면 Watch Dog Timer가 동작하기전에 Timer를 reset시켜 재부팅 되는 것을 막습니다. nrf51에서는 위 식을 이용하여 타이머를 구하는데, CRV에 값을 넣어주면, 그 시간만큼 타이머가 동작합니다. 12345678910111213141516171819202122232425262728293031323334353637int main(void){ uint32_t err_code = NRF_SUCCESS; LEDS_CONFIGURE(LEDS_MASK); LEDS_OFF(LEDS_MAS.. 2015. 3. 16. nRF51 DK 예제 17 -SIMPLE TIMER 이번예제는 simple timer입니다. LED1과 LED2 가 모두 켜진후 각각 2초간 토글되는 예제입니다. main.c 1234567891011121314151617int main(void){ uint32_t err_code = app_simple_timer_init(); APP_ERROR_CHECK(err_code); LEDS_CONFIGURE(BSP_LED_0_MASK | BSP_LED_1_MASK); LEDS_ON(BSP_LED_0_MASK | BSP_LED_1_MASK); nrf_delay_ms(GENERIC_DELAY_TIME); state_machine_state_change(APP_STATE_SINGLE_SHOT); for (;;) { power_manage(); } }Colored by.. 2015. 3. 13. nRF51 DK 예제 16 -TIMER 이 예제는 타이머예제입니다. 설정해놓은 시간에따라 LED가 차례대로 toggle되는 예제입니다. main.c 123456789101112131415161718192021222324int main(void){ uint32_t time_ms = 500; //Time(in miliseconds) between consecutive compare events. uint32_t time_ticks; uint32_t err_code = NRF_SUCCESS; LEDS_CONFIGURE(LEDS_MASK); LEDS_OFF(LEDS_MASK); err_code = nrf_drv_timer_init(&TIMER_LED, NULL, timer_led_event_handler); APP_ERROR_CHECK(err_cod.. 2015. 3. 13. 이전 1 ··· 54 55 56 57 58 59 60 ··· 84 다음 인기글