This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

some question of nrf51822 timer

I am developing using a nrf51822.I need delay timer that can be substitued for nrf_delay_ms(). in other words,need a task delay that can be taken some event from another side during delay time. Is nrf_timer_delay_ms() possible ? If so,please tell me how to use and attention point regarding sw side and hw side. BR

Parents
  • I made like below.Please review my code which one is the best for taking another timer event during delay.or if it's wrong, inform me.

    void nrf_delay_ms(uint32_t volatile number_of_ms) { while(number_of_ms != 0) { __WFE(); __SEV(); __WFE(); number_of_ms--; nrf_delay_us(999); } }

    void nrf_delay_ms(uint32_t volatile number_of_ms) { while(number_of_ms != 0) { __WFI(); number_of_ms--; nrf_delay_us(999); } }

Reply
  • I made like below.Please review my code which one is the best for taking another timer event during delay.or if it's wrong, inform me.

    void nrf_delay_ms(uint32_t volatile number_of_ms) { while(number_of_ms != 0) { __WFE(); __SEV(); __WFE(); number_of_ms--; nrf_delay_us(999); } }

    void nrf_delay_ms(uint32_t volatile number_of_ms) { while(number_of_ms != 0) { __WFI(); number_of_ms--; nrf_delay_us(999); } }

Children
No Data
Related