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

How can I use "Esb" and "App timer" at the same time?

Hi,

I an try to use "Esb function" and "App timer function (app_timer_create() and app_timer_start()" in the same project, but there have one following link error message.

.\_build\nrf52832_xxaa.axf: Error: L6200E: Symbol SWI0_EGU0_IRQHandler multiply defined (by nrf_esb.o and app_timer.o).

How can I solve this problem.

Thank you,

Chianglin

Parents
  • Hi Ives

    You can change the software interrupt handler used in nrf_esb.h, to avoid the conflict with the app timer library. 

    A common trick is to hijack the interrupt vector off a peripheral that you don't need in the application, to avoid using all the software interrupts. 

    As an example, the QDEC peripheral is very specialized and is usually not required by the application. If this is the case for you also just change lines 137-138 in nrf_esb.h as such:

    #define ESB_EVT_IRQ QDEC_IRQn //!< The ESB event IRQ number when running on an nRF5 device.
    #define ESB_EVT_IRQHandler QDEC_IRQHandler //!< The handler for @ref ESB_EVT_IRQ when running on an nRF5 device.

    Best regards
    Torbjørn

Reply
  • Hi Ives

    You can change the software interrupt handler used in nrf_esb.h, to avoid the conflict with the app timer library. 

    A common trick is to hijack the interrupt vector off a peripheral that you don't need in the application, to avoid using all the software interrupts. 

    As an example, the QDEC peripheral is very specialized and is usually not required by the application. If this is the case for you also just change lines 137-138 in nrf_esb.h as such:

    #define ESB_EVT_IRQ QDEC_IRQn //!< The ESB event IRQ number when running on an nRF5 device.
    #define ESB_EVT_IRQHandler QDEC_IRQHandler //!< The handler for @ref ESB_EVT_IRQ when running on an nRF5 device.

    Best regards
    Torbjørn

Children
Related