Kostenloser Elektrotechnik VIDEO-Kurs


Grundlagen der Elektrotechnik, Gleichstromnetze und Berechnungsverfahren
Wechselstrom- und Drehstromnetze, elektrische Maschinen und Regelungstechnik
Digitaltechnik, Mikrocontrollertechnik und C-Programmierung


Lösung der Aufgabe zu den externen Interrupts


Heute geht es nun um die Lösung aus dem Artikel der vergangenen Woche, in dem ich die Mechansmen des externen Interrupts des 8051 Mikrocontrollers vorgstellt habe.

Zur Erinnerung. Die Aufgabe lautete:

Bei der Kaffeemaschine könen zwei Störungen auftreten, die jeweils einen Interrupt am Mikrocontroller auslösen.

Diese beiden Fehlermeldungen sollen ausgewertet werden.

  1. Die Maschine muss (bei Gelegenheit) entkalkt werden
    Der Sensor, der eine zu hohe Verkalkung anzeigt, ist an INT0 angeschlossen und gibt als Meldung eine „0“ aus. Wenn der Sensor eine Verkalkung feststellt, soll an Portpin P0.0 eine 1 ausgegeben werden. Hierdurch wird ein Warnsummer eingeschaltet. Da diese Meldung nicht so kritisch ist, kann der Summer ausgeschaltet werden. Er soll nicht automatisch wieder eingeschaltet werden, auch wenn die Kaffeemaschinen noch nicht entkalkt worden ist.
  2. Der Druck der Maschine ist zu hoch. Der Sensor hierfür ist an INT1 angeschlossen und gibt als Meldung eine „0“ aus. Dieser Zustand ist kritisch. In der zugehörigen Interrupt Service Routine soll an Port P0.1 eine 1 ausgegeben werden. Hierdurch wird ein Alarm ausgelöst und die Kaffeemaschine heruntergefahren. Sollte jemand den Alam löschen, der Druck aber immer noch zu hoch sein, soll automatisch die ISR wieder aufgerufen werden.

 

Flankengesteuerter Interrupt

Für den ersten Fall sollte die Programmierung also so aussehen, dass die Fehlermeldung „weggedrückt“ werden kann. Obwohl der Fehler vom Sensor weiter gemeldet wird, sollten keine neuen Interrupts generiert werden. Die Lösung dafür ist, den Interrupt INT0 flankengesteuert zu konfigurieren, so dass die Interrupt Service Routine nur einmal, beim Auftreten des Fehlers, ausgelöst wird. Nur dann sehen wir die negative Flanke.

Pegelgesteuerter Interrupt

Im zweiten Fall soll der Alarm nicht abgeschaltet werden können. So lange der Druck zu groß ist, soll der Alarm wieder erneut eingeschaltet werden.

Das kann dadurch erreicht werden, indem der Interrupt pegelgesteuert realisiert wird. Das heißt, so lange die Fehlerbedingung anlegt, wird laufend die Interrupt Service Routine ausgeführt.

Das Video




Auch in dieser Woche gibt es wieder eine kleine Aufgabe. Du erinnerst Dich vielleicht noch an den Begriff der Interrupt Pending Flags aus der Folge externe Interrupts.

Dieser Mechanismus, das Auslösen von Interrupts per Software, soll nun genutzt werden.

Aufgabe

Wenn der Druck zu hoch ist, soll so viel Radau wie möglich gemacht werden. Es soll neben dem eigentlichen Alarm „Druck zu hoch“ auch der Summer für die Kalkmeldung eingeschaltet werden.

Da nicht an der Hardware geschraubt werden soll, muss dies durch Software gelöst werden. Hierzu soll auch der Interrupt INT0 ausgelöst werden, wenn der Druck zu hoch ist.

Dieser Artikel ist Teil des Mikrocontrollerkurs auf ET-Tutorials.de.
Hier geht es zurück zur Übersichtsseite des Mikrocontroller-Kurses .

Elektrotechnik muss nicht kompliziert sein.
Deshalb gibt es VIDEO-Tutorials.

Hat Dir der Artikel geholfen? - Dann hilf dem Artikel ;-)

Lösung der Aufgabe zu den externen Interrupts:
1 Star2 Stars3 Stars4 Stars5 Stars
5,00 von 5 Punkten, basieren auf 1 abgegebenen Stimmen.
Stimme jetzt ab ! (auf die Sternchen klicken)
Loading ... Loading ...


Fragen und Antworten zu diesem Artikel und zu anderen Themen findest Du im ET-Tutorials Forum

Ähnliche Artikel

Folgende Artikel aus der gleichen Kategorie könnten Dich ebenfalls interessieren:

Externe Interrupts beim 8051 Heute geht es nun um die Programmierung eines externen Interrupts. Die Programmierung eines externen...

Software Interrupts, Traps Wie bereits in der Übersicht zu externen Interrupts gezeigt, können Interrupts auch durch Software a...

Timer Interrupt Lösung der Aufgabe Am Ende der vergangen Folge, in der es um die Programmierung eines Timer Interrupts ging, hatte ich ...

Programmieren des Timer Interrupts Heute geht es wieder ans Eingemachte. Mit einer schönen Aufgabe zum Schluss. Wann wird ein Timer Int...

Interrupts und Polling Heute geht es nun um das Thema Interrupts. Was sind Interrupts? Wozu benötigt man Interrupts? Was is...