EnableInterrupt() public method

public EnableInterrupt ( ) : void
return void
Beispiel #1
0
        public static void Main()
        {
            var button = new InterruptPort(Pins.ONBOARD_SW1, true, Port.ResistorMode.Disabled, Port.InterruptMode.InterruptEdgeBoth);
            button.OnInterrupt += new NativeEventHandler(Button_OnInterrupt);
            button.EnableInterrupt();

            while (true)
            {
                if (_active)
                    UploadData(new AnalogInput(Cpu.AnalogChannel.ANALOG_2));
            }
        }
Beispiel #2
0
 /// <summary>
 /// Parte l'evento dell'interruzione quando il livello del segnale di interruzione è alto (ovvero quando il pulsante viene premuto).
 /// Se si usa un bottone diverso dal built-in, è necessario collegare delle resistenze di pull-down per l'interruttore .
 /// Lady Ada è un eccelente tutorial su questo argomento: http://www.ladyada.net/learn/arduino/lesson5.html
 /// </summary>
 /// <param name="pin">Un pin digitale collegato al pulsante.</param>
 /// <param name="intMode">Definisce il tipo di cambio di livello innescando l'evento dell'interrupt.</param>
 /// <param name="target">Il gestore di eventi viene invocato quando si verifica un interrupt.</param>
 /// <param name="resistorMode">Configurazione interna della resistenza di pullup.</param>
 /// <param name="glitchFilter">Ingresso filtro antirimbalzo.</param>
 public Pulsante(Cpu.Pin pin, Port.InterruptMode intMode = Port.InterruptMode.InterruptEdgeLow, 
                 NativeEventHandler target = null, Port.ResistorMode resistorMode = Port.ResistorMode.Disabled,
                 bool glitchFilter = true)
 {
     Input = new InterruptPort(pin, glitchFilter, resistorMode, intMode);
     if (target == null)
     {
         Input.OnInterrupt += InternalInterruptHandler;
     }
     else
     {
         Input.OnInterrupt += target;
     }
     Input.EnableInterrupt();
 }
        public static void Main()
        {
            try {
                var timeSet = false;
                NTP.UpdateTimeFromNtpServer("pool.ntp.org", 1);

                ReadConfiguration();
                ReadValueCache();

                loggingEndpoint = HttpClient.GetIPEndPoint(loggingHostName, loggingPortNumber);

                s0Port = new InterruptPort(Pins.GPIO_PIN_D12, false, Port.ResistorMode.Disabled, Port.InterruptMode.InterruptEdgeLow);
                s0Port.OnInterrupt += new NativeEventHandler(S0PulseReceived);
                s0Port.EnableInterrupt();

                var messageReader = new P1MessageReader();
                messageReader.MessageReceived += new P1MessageReader.MessageReceivedDelegate(messageReader_MessageReceived);
                messageReader.Start();

                while (true) {
                    Thread.Sleep(60000);

                    // Resync time and s0Counter at 3 o'clock at night
                    if (!timeSet && System.DateTime.Now.Hour == 3) {
                        timeSet = NTP.UpdateTimeFromNtpServer("pool.ntp.org", 1);
                        s0Counter = 0;
                    } else if (timeSet && System.DateTime.Now.Hour > 3) {
                        timeSet = false;
                    }

                    CacheValuesOnSd();
                }
            } catch (Exception ex) {
                Debug.Print(ex.ToString());
            }
        }
Beispiel #4
0
 public Bumper(Cpu.Pin interruptPin)
 {
     interruptPort = new InterruptPort(interruptPin, true, Port.ResistorMode.PullDown, Port.InterruptMode.InterruptEdgeHigh);
     interruptPort.OnInterrupt += InterruptPortOnInterrupt;
     interruptPort.EnableInterrupt();
 }