In SDK8.1 and SDK9.0 we have new driver nrf_drv_gpiote which has GPIOTE interrfupt handler in conflict with app_gpiote library. How to fix this
In SDK8.1 and SDK9.0 we have new driver nrf_drv_gpiote which has GPIOTE interrfupt handler in conflict with app_gpiote library. How to fix this
I have tried to merge the conflicted GPIOTE_IRQHandler and tested few use cases, they seems to work. Make sure that you do not use same pin in both app_gpiote library and nrf_drv_gpiote driver.
sdk_9.0.merge_gpiote_handler.c
Diff for fix in SDK 9.0 from @pkarc: www.diffchecker.com/nub7badx
Once again, make sure that there are no pin conflicts between library and driver and this should work just fine.
NOTE: Tested only on Keil
@wim, yes nrf_drv_gpiote was added to cover all functionality of GPIOTE module (task & events) and not just PORT. And why so late? it's hard to answer. In general, we are trying now to provide a driver for every peripheral. Driver should cover all or most of the peripheral functionality - since it usually implements interrupt handler there cannot be many drivers for one peripheral. In next SDK we will add app_gpiote implementation that is based on nrf_drv_gpiote.
@wim, yes nrf_drv_gpiote was added to cover all functionality of GPIOTE module (task & events) and not just PORT. And why so late? it's hard to answer. In general, we are trying now to provide a driver for every peripheral. Driver should cover all or most of the peripheral functionality - since it usually implements interrupt handler there cannot be many drivers for one peripheral. In next SDK we will add app_gpiote implementation that is based on nrf_drv_gpiote.