WeMOS Interrupt: Forskelle mellem versioner

Fra Holstebro HTX Wiki
Spring til navigation Spring til søgning
Linje 11: Linje 11:
==Interrupt modes på pins==
==Interrupt modes på pins==


Når man angiver at et ben skal sættes op til interrupt, så skal man samtidigt sætte op '''hvordan''' benet skal reagere, og her er der 5 forskellige muligheder, som beskrevet i følgende tabel<ref>[https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/ attachInterrupt] i afsnittet Parameters</ref>.
{|
class="wikitable"
|-
!Mode!!Beskrivelse
|-
|RISING||Interruptet sker på en stigende kant på benet
|}


==Pins der kan modtage interrupt==
==Pins der kan modtage interrupt==

Versionen fra 11. okt. 2022, 19:31

WeMOS WiFi Processor
WeMOS Server Connection - Simpel Server - Flere SSID - ESP8266 - Watchdog - Interrupt
Anvendelse LED-eksempel - AD-eksempel - Mail - POST metode - Web Publicering

Interrupt er grundlæggende noget der afbryder den kode der bliver afviklet, for at afvikle en lille stump kode, som servicerer den hændelse der har afbrudt den kørende kode. Det kan kan fx. være at der er modtaget en seriel karakter, hvor interruptet så sørger for at lægge karakteren i en buffer, så harwaren er klar til at modtage en ny karakter.

Anvendelse af interrupt på WeMOS

På WeMOS vil Arduino-systemet håndtere ting som tids-interrupt til at styre millis() og micros() samt den serielle port, så det giver ikke mening at arbejde med disse.

Man kan måske finde ekstra tids-interrupts, hvis man kan finde dokumentation til hvordan man kobler det op.

Der hvor interrupt er særligt relevant er på pins, hvor man kan få softwaren til at reagere på noget der sker elektrisk på en ben.

Interrupt modes på pins

Når man angiver at et ben skal sættes op til interrupt, så skal man samtidigt sætte op hvordan benet skal reagere, og her er der 5 forskellige muligheder, som beskrevet i følgende tabel[1].

class="wikitable"
Mode Beskrivelse
RISING Interruptet sker på en stigende kant på benet

Pins der kan modtage interrupt

Kode der kan håndtere pin interrupt

En anden mulighed er - hvis man ikke syntes man kan undgå et langt vente-loop, at man tilføjer kode som klapper hunden. Her er der forskellige muligheder som vist herunder:

delay(0);     // Laver ikke et delay, men klapper hunden - man kan også vælge at delaye en tid.
yield();      // Gør det samme som delay(0);
wdt_reset();  // Klapper bare hunden - kræver #include <avr/wdt.h>

Referencer

  1. attachInterrupt i afsnittet Parameters