Debouncing avbrott med MPIDE del 1: Brute Force (6 / 6 steg)
Steg 6: Hur det fungerar
Nyckeln till detta är mycket enkel. Inuti våra avbryta tjänsten rutin (ISR) har vi lite om uttalande som kontrollerar hur länge det har funnits sedan avbrottet senast kör. Det har varit tillräckligt lång, kan det mellanjobbet kör igen! Detta ger vår signal tillräckligt med tid för att lösa, innan vi kör ISR igen.
Denna kod är enkelt och det fungerar bra, men om du kommer att märka, checken händer inuti ISR. Vad som händer är verkligen vi att avbryta vår huvudloop kod flera gånger, för att kontrollera och se om det har varit tillräckligt lång och kör resten av våra ISR när den har. Det är därför detta är den "brute force"-metoden.
Det är inte alltid den bästa lösningen, men vår check händer så snabbt att det är osynlig. Fortfarande, min nästa handledning kommer att utforska ett alternativ till denna brute force-metoden, en som inaktiveras och aktiveras på avbryta, i stället för att helt enkelt kontrollera om och om igen.
Vi ses nästa gång!