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

Why does NRF_GPIO->IN always report the same sense level?

I am using app_gpiote_user_register() and ads_interrupt_enable() to define a ping change interrupt. When the code runs, I can see on my logic analyzer that the GPIO pin assigned to the interrupt is being toggled bt the external source and the GPIOTE_IRQHandler() interrupt handler is called but, the interrupt handler I assigned for that pin does not get called and what I noticed is that the sense_level set by NRF_GPIO->IN is always the same value, so no transition is detected. I added an array to capture the sense_level in the GPIOTE_IRQHandler() and after 100 iterations the values in the array are all the same. What I'm wondering is if the external pulse on the GPIO pin is too short, measured on my logic analyzer it is ~750 usecs. That seems like a long enough duration for the GPIOTE_IRQHandler() to be called and the sense_level to be read. I have no other interrupts enabled.

Parents Reply Children
No Data
Related