Avläsning eller avbrott
Varför vissa händelser inte kan vänta på loopen.
Avläsning eller avbrott är en gratis lektion i Arduino & IoT Academy på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Arduino & IoT Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Arduino & IoT Academy innehåller totalt 4 lektioner.
Kontroller hela tiden
Hittills använder er loop polling: den kör runt om och om igen och frågar varje sensor och knapp upprepade gånger om något har ändrats.
Polling i praktiken
Vid en typisk polling läses ett stift av vid varje varv i loopen. Om värdet motsvarar det ni vill ha reagerar ni; annars fortsätter loopen helt enkelt. 🔁
if (digitalRead(buttonPin) == LOW) {
doSomething();
}Den dolda kostnaden
Polling fungerar, men slösar resurser genom att fråga trots att inget har ändrats. Kortet förbrukar beräkningscykler på att kontrollera ett stift som förblir oförändrat länge.
När loopen är upptagen
Om en långsam uppgift eller en lång delay håller loopen upptagen kan ett snabbt knapptryck hinna komma och gå innan ni läser av stiftet igen.
Händelser som inte kan vänta
Vissa signaler är snabba och kortvariga: en sensorpuls, en enkoderflank eller en kort puls. Missa ögonblicket, så är händelsen borta för alltid.
Ett smartare sätt
Ett interrupt vänder på modellen: i stället för att ni frågar knackar hårdvaran på er axel så fort något händer på ett stift.
Släpp allt
När ett interrupt utlöses pausar kretsen det som loopen höll på med, kör er hanterare och återgår sedan exakt där den slutade. ⚡
Missa aldrig ögonblicket
Eftersom hårdvaran övervakar stiftet åt er utlöser även en mycket kort puls er kod. Ni fångar händelser som en långsam loop skulle missa.
Frigör loopen
När interrupt hanterar brådskande signaler förblir er loop ren och responsiv och kan ägna sig åt långsammare arbete utan ständiga kontroller.
När polling räcker
Allt behöver inte ett interrupt. För en knapp som en människa trycker på långsamt är polling enklare och fullt tillräckligt.
Välj rätt verktyg
Använd ett interrupt när en händelse är snabb, kortvarig eller kan inträffa medan loopen är upptagen. Annars gör polling saker och ting enklare.
Snabb kontroll
I vilken situation är ett interrupt det bästa valet framför polling?
Sammanfattning
Ni har sett att polling fortsätter att fråga medan ett interrupt får en avisering. Använd interrupt för snabba händelser och polling för lugnare händelser. 🎉
Lär dig C++ med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 30
- Lektioner
- 120
Vanliga frågor
Är lektionen ”Avläsning eller avbrott” gratis?
Ja – hela texten till ”Avläsning eller avbrott” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Arduino & IoT Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Arduino & IoT Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Avläsning eller avbrott”?
Varför vissa händelser inte kan vänta på loopen. Ni övar på Arduino & IoT Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Arduino & IoT Academy?
Du behöver inga förkunskaper. Utbildningen i Arduino & IoT Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”Avläsning eller avbrott”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Arduino & IoT Academy-lektionen?
Ja. Varje Arduino & IoT Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Avläsning eller avbrott
- attachInterrupt på en pinne
- Skriv en säker ISR
- Räkna pulser från en encoder