From b92fad8da6fb4b4972cee16e08b8db2c764f13f0 Mon Sep 17 00:00:00 2001 From: sago35 Date: Sun, 31 May 2020 01:03:46 +0900 Subject: [PATCH] sam: fix register access for interrupts pins in samd51 (#1141) * machine/samd51: fix register access for interrupts pins in samd51 --- src/machine/machine_atsamd51.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/machine/machine_atsamd51.go b/src/machine/machine_atsamd51.go index 6489403e..78617444 100644 --- a/src/machine/machine_atsamd51.go +++ b/src/machine/machine_atsamd51.go @@ -335,7 +335,7 @@ func (p Pin) SetInterrupt(change PinChange, callback func(Pin)) error { pinCallbacks[extint] = callback interruptPins[extint] = p - if (sam.EIC.CTRLA.Get() & 0x02) == 0 { + if !sam.EIC.CTRLA.HasBits(sam.EIC_CTRLA_ENABLE) { // EIC peripheral has not yet been initialized. Initialize it now. // The EIC needs two clocks: CLK_EIC_APB and GCLK_EIC. CLK_EIC_APB is @@ -349,7 +349,7 @@ func (p Pin) SetInterrupt(change PinChange, callback func(Pin)) error { } // CONFIG register is enable-protected, so disable EIC. - sam.EIC.CTRLA.Set(0) + sam.EIC.CTRLA.ClearBits(sam.EIC_CTRLA_ENABLE) // Configure this pin. Set the 4 bits of the EIC.CONFIGx register to the // sense value (filter bit set to 0, sense bits set to the change value).