Naja...Zitat von alecs
momentan startet deine Funktion den ADC, wartet dann bis er endlich fertig ist und liefert schliesslich das Ergebnis zurück.
In der Zeit in der der µC auf den ADC wartet könnte er eigentlich noch eine Menge anderer Dinge tun,
aber so ist er gezwungen für eine recht lange Zeit einfach garnichts zu machen.
Ein Interrupt tut genau das was der Name besagt: er unterbricht das Programm
d.h. sobald ein bestimmtes Ereignis auftritt, wird das Programm an der momentanen Stelle unterbrochen,
und eine bestimmte Funktion (ISR - Interrupt Service Routine) ausgeführt.
Sobald diese Funktion fertig ist, läuft das Programm an der alten Stelle weiter.
Der ADC kann einen Interrupt auslösen wenn er mit einer Wandlung fertig ist.
In der passenden ISR kann man dann z.B. den Wert in irgendeiner Variable speichern
(ISRs sollten möglichst kurz sein, aufwändige Berechnungen haben da nichts zu suchen).
Anstatt also den µC während der Wartezeit komplett zu blockieren, wird das Programm nur ganz kurz unterbrochen wenn wirklich ein neuer Wert da ist.
Lesezeichen