Leksikon

Interrupt

-s,-ed,-ed,-ing

Interrupt er en metode man kan bruge til at stoppe ens kode uanset hvad den er i gang med, hvis en handling du bestemmer sker. Det kunne f.eks. være en robot, der kører rundt og hvis den så rammer noget, så kalder man en interrupt, der gør, at robotten stopper alt hvad den er igang med og f.eks. bakker væk fra det den har ramt.

Eksempler på brug af ordet "interrupt"
  • Lav en interrupt, hvis robotten kører ind i noget
  • Hvis lysniveauet bliver for højt, så kald en interrupt
Emne:
Arduino - MakeCode - Programmering - Software

 

MakeCode

I MakeCode, der kan man bruge funktionerne i Inputtil at lave en interrupt. I eksemplet under er der blevet sat en pause i starten, men pausen kan altid blive afbrudt, ved at man trykker på knappen "A".


Arduino

For at bruge dette kodeeksempel skal du bruge en LED på pin 13 og en knap på pin 2. Eksemplet er fra Arduinos offcielle hjemmeside og mere information kan findes der.
Få mere information om attachInterrupt

//Vores LED
const int ledPin = 13;
//Vores knap
const int interruptPin = 2;
//Det stadie som vores LED er i. Altså om den er tændt eller slukket
volatile byte state = LOW;

void setup() {
  //Sætter vores LED til at være et output
  pinMode(ledPin, OUTPUT);
  //Sætter knappen til at være noget, der kan give et input
  pinMode(interruptPin, INPUT);
  //Her kalder vi attachInterrupt funktion. Den har 3 parametre.
  //1. parameter sætter vi den pin der skal kunne interrupte
  //2. parameter kalder den funktion der skal bruges. I dette tilfælde er det blink,
  //som skifter LED'en fra at være slukket til tændt
  //3. parameter siger hvornår attachInterrupt skal kaldes. Her er det når der sker en ændring.
  attachInterrupt(digitalPinToInterrupt(interruptPin), blink, CHANGE);
}

void loop() {
  //Her vises LED'en med LOW eller HIGH, altså slukket eller tændt.
  digitalWrite(ledPin, state);
}

void blink() {
  //Blink skifter til det modsatte stadie af hvad det var før
  state = !state;
}