[riot-notifications] [RIOT-OS/RIOT] cpu/nrf5x: handle multiple exti pins in gpio driver (#10828)

Alexandre Abadie notifications at github.com
Tue Jan 22 10:03:33 CET 2019


aabadie commented on this pull request.



>  }
 
 void gpio_irq_disable(gpio_t pin)
 {
-    (void) pin;
-    NRF_GPIOTE->INTENCLR |= GPIOTE_INTENSET_IN0_Msk;
+    for (unsigned int i = 0; i < _gpiote_next_index; i++) {
+        if (_exti_pins[i] == pin) {
+            uint32_t inten = NRF_GPIOTE->INTENCLR;
+            NRF_GPIOTE->INTENCLR = (GPIOTE_INTENCLR_IN0_Msk << i);
+            inten &= ~(GPIOTE_INTENSET_IN0_Msk << i);
+            NRF_GPIOTE->INTENSET = inten;

You are right, I re-tested without and it is still working. I tried many things yesterday before I could have a working version.

See also the last commit which contains another change: pressing a button with disabled interrupt was triggering the interrupt when re-enabling it. I fixed by clearing any pending interrupt when re-enabling. This is weird.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/RIOT-OS/RIOT/pull/10828#discussion_r249690396
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.riot-os.org/pipermail/notifications/attachments/20190122/ac4f110b/attachment.html>


More information about the notifications mailing list