본문 바로가기

The Answer!!808

nRF51 DK 예제 10 - PWM 이번 예제는 PWM입니다. Timer를 이용하여 LED를 toggle하는데, 버튼을 누를때마다 토글되는 간격이 변하는 PWM예제입니다. main.c 1234567891011121314151617181920212223int main(void){ gpiote_init(); bsp_configuration(); ppi_init(); timer2_init(); NRF_POWER->TASKS_CONSTLAT = 1; // Enable interrupt on Timer 2. NVIC_EnableIRQ(TIMER2_IRQn); __enable_irq(); *(uint32_t *)0x4000AC0C = 1; // Start the timer. NRF_TIMER2->TASKS_START = 1; while (true) .. 2015. 3. 4.
nRF51 DK 예제 9 - PPI PPI는 GPIOTE 예제때 한번 나왔던 Programmable Peripheral Interconnect 를 말합니다. GPIOTE예제때는 타이머를 EEP로 LED토글(GPIOTE TASK)을 TEP로 해서 테스트를 했었습니다. 이번 예제에서는 타이머 3가지를 이용한 예제입니다. 타이머0은 카운터로 설정하고, 타이머1과 타이머2를 사용하여, 타이머1일때는 타이머0이 멈추고, 타이머 2일때는 타이머0이 동작해서 매 200ms마다 타이머0을 카운터하는 예제입니다. 먼저 main함수부터 보겠습니다. main.c 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647int main(void){ timer0_ini.. 2015. 3. 4.
nRF51 DK 예제 8 - Pin change interrupt 이번 예제는 interrupt 예제입니다. main.c 123456789int main(void){ gpio_init(); while (true) { // Do nothing. }}cs 이번 예제는 Line 3의 gpio_init()으로 끝입니다. 123456789101112static void gpio_init(void){ nrf_gpio_cfg_output(PIN_OUT); nrf_gpio_cfg_input(PIN_IN, NRF_GPIO_PIN_PULLUP); nrf_gpio_pin_clear(PIN_OUT); // Enable interrupt: NVIC_EnableIRQ(GPIOTE_IRQn); NRF_GPIOTE->CONFIG[0] = (GPIOTE_CONFIG_POLARITY_Toggle 2015. 3. 3.
nRF51 DK 예제 7 -Radio Receiver 이번 예제 역시 Radio Transmitter 예제와 함께 하는 예제입니다. 이 소스는 동글에 설치하였습니다. 사용한 제품은 nrf51 dongle로 모델명은 PCA10031입니다 소스는 앞의 Radio Transmitter와 거의 비슷합니다. main.c 1234567891011121314151617181920212223242526272829303132333435363738394041424344int main(void){ uint32_t err_code = NRF_SUCCESS; clock_initialization(); APP_TIMER_INIT(APP_TIMER_PRESCALER, APP_TIMER_MAX_TIMERS, APP_TIMER_OP_QUEUE_SIZE, false); const app_.. 2015. 3. 3.
nRF51 DK 예제 6 -Radio Transmitter 이번 예제는 무선으로 패킷을 주고받는 예제입니다. 이 예제를 하기위해서는 보드가 2개가 필요한데, 동글을 이용하여도 됩니다. nrf51 DK(PCA 10028)은 transmitter로 dongle(PCA 10031)은 receiver로 설정합니다. main 12345678910111213141516171819202122232425262728293031323334353637383940414243444546int main(void){ uint32_t err_code = NRF_SUCCESS; clock_initialization(); APP_TIMER_INIT(APP_TIMER_PRESCALER, APP_TIMER_MAX_TIMERS, APP_TIMER_OP_QUEUE_SIZE, false); APP_GP.. 2015. 3. 3.
nRF51 DK 예제 5 -GPIOTE 이 예제가 본격적으로 GPIOTE를 사용하는 예제인 것 같습니다. 타이머를 설정하고, PPI를 설정하여서 GPIOTE로 LED를 제어하는 예제. main.c123456789101112131415int main(void){ gpiote_init(); // Configure a GPIO to toggle on a GPIOTE task. timer0_init(); // Use TIMER0 to generate events every 200 ms. ppi_init(); // Use a PPI channel to connect the event to the task automatically. // Workaround for PAN-73: Use of an EVENT from any TIMER module to t.. 2015. 3. 2.

인기글