ValueChanged no dispara con C # Win10 Iot
Parece exactamente comoWin10 IoT - RaspBerry Pi2: ValueChanged no llamado cuando GPIO cambia Tengo un raspberry pi 2 con win10 IoT (versión del creador) y tengo este código C #:
public sealed class StartupTask : IBackgroundTask
{
private const int SENSOR_PIN = 17;
private GpioPin pinSensor;
public void Run(IBackgroundTaskInstance taskInstance)
{
taskInstance.Canceled += TaskInstance_Canceled; // "destructor"
var gpio = GpioController.GetDefault();
if (gpio != null)
{
pinSensor = gpio.OpenPin(SENSOR_PIN); // also tried with GpioSharingMode.SharedReadOnly
var r = pinSensor.Read(); // works and changes if sensor changes. Verified with quickwatch
pinSensor.SetDriveMode(GpioPinDriveMode.Input);
pinSensor.DebounceTimeout = TimeSpan.FromMilliseconds(20);
pinSensor.ValueChanged += PinIn_ValueChanged;
}
}
private void PinIn_ValueChanged(GpioPin sender, GpioPinValueChangedEventArgs args)
{
// never gets hit...
}
private void TaskInstance_Canceled(IBackgroundTaskInstance sender, BackgroundTaskCancellationReason reason)
{
pinSensor.Dispose();
}
}
El LED en el sensor y el reloj rápido dicen que el GpioPinValue alterna entre alto y bajo ... así que debería ser golpeado ...
Cuando recupero el modo de manejo después de configurarlo como entrada. Me dice que en realidad está configurado para ingresar:
var dm = pinSensor.GetDriveMode();
como se sugirió en el comentario del problema de desbordamiento de la pila vinculada. Entonces, ¿qué estoy haciendo mal? Y más importante: ¿por qué?