External avbryter på MPIDE del 1: attachInterrupt() (6 / 11 steg)
Steg 6: AttachInterrupt()
Detta är den huvudsakliga funktionen bakom detta avbrottskod. Konfigurera avbrott och använda dem korrekt kan vara mycket komplicerat, men denna lilla funktion gör det mesta av som för dig. Låt oss ingångar dra isär är det så du kommer att förstå hur man använder den.
ChipKIT sida dokumenterar attachInterrupt(), Etiketter det är insatsvaror som "avbryta", "fungerar" och "mode".
"Avbrott" avser antalet externa avbrottet du vill använda. DP32, uC32 och WF32 ha fyra externa avbrott som du kan välja från, numrerade från 1 till 4 på DP32 och 0 till 3 på uC32 och WF32. Senare ska jag visa dig hur du hittar vilka avbrott är anslutna till vad stift på brädan, men nu behöver du bara veta deras antal.
"Funktion" refererar till namnet på den funktion som du vill ska vara din ISR. När din avbrott utlöses, kommer din mikrokontroller köra koden i ISR för att avbryta och gå tillbaka till den huvudsakliga loopen där den slutade. I vårt exempel kallade vi våra ISR "LEDchange".
Slutligen avser "mode" vad är också känd som "kanten polaritet". I grund och botten säger du avbrottet att utlösa antingen när spänningen går från hög spänning (vanligtvis 3,3 volt) till låg spänning (vanligtvis marken), eller från lågspänning till högspänning. För närvarande är våra avbrott inställd på "Fallande", annars känd som en fallande kant. Detta innebär att det kommer att utlösa när spänningen faller från hög till låg. Om du ville att det skulle utlösa när spänningen gick från låg till hög, skulle du använda "Stigande". Du kan också använda "Förändring" om du bara vill avbryta att utlösa när det finns en förändring i spänning, antingen kommer från hög till låg, eller låg till hög.
Edge polaritet kan vara lite förvirrande, så försök ändra denna kod och se hur din avbrott beteende förändras.