Closed ctacke closed 1 year ago
Rising-edge interrupts (at least) on D00 do not fire. This is a problem on 1.0.2.0 but works fine on 1.0.0.0.
D00
The app below shows it - the event handler never is called, and debug messaging in Core, all the way at the wait for mq_revceive never unblocks.
mq_revceive
https://github.com/WildernessLabs/Meadow.Core/blob/da926cb66597947b94cd82971619a532898dcc9b/source/implementations/f7/Meadow.F7/Devices/F7GPIOManager_interrupts.cs#L181
public class MeadowApp : App<F7FeatherV2> { private IDigitalInterruptPort down; public override async Task Run() { Resolver.Log.Info("Run..."); down = Device.Pins.D00.CreateDigitalInterruptPort(InterruptMode.EdgeRising, ResistorMode.InternalPullDown, TimeSpan.Zero, TimeSpan.Zero); Resolver.Log.Info($"D00 Should be low"); down.Changed += (s, e) => { Resolver.Log.Info($"D00 triggered a rising interrupt. State went {e.Old?.State ?? false} -> {e.New.State}"); }; } }
I cannot reproduce this issue on the Nuttx side. Need to verify it is not a problem in Meadow.Core.
Chris found a problem in Meadow.Core
Rising-edge interrupts (at least) on
D00
do not fire. This is a problem on 1.0.2.0 but works fine on 1.0.0.0.The app below shows it - the event handler never is called, and debug messaging in Core, all the way at the wait for
mq_revceive
never unblocks.https://github.com/WildernessLabs/Meadow.Core/blob/da926cb66597947b94cd82971619a532898dcc9b/source/implementations/f7/Meadow.F7/Devices/F7GPIOManager_interrupts.cs#L181