Hallo. habe eine Aufgabe über Interrupts wo ich nicht weiterkomme. vielleicht kann mir ja jemand helfen. a) Was verstehen Sie unter einem Interrupt in einem Mikrocontrollersystem (5 Merkmale)? meine lsg:Durch Interrupts wird erreicht, dass ein Prozessor schnell und effektiv (in „Echtzeit“) auf Ereignisse reagieren kann. Interrupts werden in der Regel durch ein hardwarebasierendes Ereignis ausgelöst, es wird eine zur Interruptquelle gehörendes Interrupt-Request-Flag gesetzt. Die Übersetzung von Interrupt ist Unterbrechung, d.h. durch das Auftreten des Interrupts wird die normale Programmbearbeitung unterbrochen und ein Programm zur Handhabung des Interrupts abgearbeitet. Diese Verzweigung kann allerdings verzögert werden, falls sich bereits ein Interrupt mit höherer oder gleicher Priorität im Bearbeitung befindet. Es gibt zwei Gruppen von Interrupts: Nicht maskierbare Interrupts werden auf jeden Fall ausgeführt (RESET), „normale“ Interrupts können vom Programm abgeschaltet werden. b) Erläutern Sie die Begriffe Interruptpriorisierung, Interruptserviceroutine und Interruptmaskierung! Was ist ein nichtmaskierbarer Interrupt (NMI). meinelsg: interuptserviceroutine: Interrupt Service Routinen (ISR) werden dann vom Mikroprozessor abgearbeitet, sobald ein Interrupt auftritt. Eine ISR-Routine kann Informationen aufzeichnen und grundlegende Befehle ausführen, bevor der Interrupt quittiert und das betriebssystem zum Regelablauf zurückkehrt. Es ist der Programm-Code, der beim Auftreten einer freigeschalteten Interrupt-Anforderung (IRQ) ausgeführt wird. Dazu wird der normale Programmfluss unterbrochen, die Interrupt Service Routine (ISR) ausgeführt, und danach das Programm an der unterbrochenen Stelle fortgeführt. Interruptpriorisierung: Bei der Interruptpriorität werden alle Interrupts nach der Höhe Ihrer Priorität geordnet und abgearbeitet. Ein Interrupt mit einer höheren Priorität wird einem Interrupt mit einer niedrigeren immer vorgezogen. Interruptmaskierung: Häufig dürfen Programmteile zur Sicherstellung einer bestimmten Funktionalität nicht unterbrochen werden. Da Interrupts zufällig und nicht synchronisiert auftreten, muss eine Möglichkeit zur Deaktivierung (Maskierung) bestehen. - Generelle Interrupt-Maskierung betrifft alle maskierbaren Interrupts - Selektive Interrupt-Maskierung betrifft nur den gewählten Interrupt - Maskenbits (je Interrupt) werden üblicherweise zu Maskenregistern zusammengefasst (z.B. Spezialfunktionsregister SFR) - Neben der Interrupt-Maskierung werden üblicherweise auch Interrupt-Prioritäten verwaltet (konfigurierbar) Nicht-maskierbarer Interrupt: Einige Hardware-Interrupts können abgeschaltet (maskiert) werden, andere Interrupts sind immer aktiv (nicht maskierbar) aber dann verliessen sie mich!!!!!!!!!!!!!!!!! c) Erläutern Sie die Abarbeitung zweier Interrupte mit einigen Stichpunkten für den Fall: i) dass während der Abarbeitung einer Interruptserviceroutine die Anmeldung eines weiteren, niederpriorisierten Interruptes, ii) dass während der Abarbeitung einer Interruptserviceroutine die Anmeldung eines weiteren, höherpriorisierten Interruptes erfolgt. d) Erläutern Sie die Abarbeitung des Push- und des Pop-Befehls (PSHA und PULH) des Mikrocontrollers 68HC08 mit einigen Stichpunkten und einer Skizze. Zeichnen Sie in Ihrer Skizze symbolisch einen Ausschnitt aus dem Stackspeicher mit Adressen und Daten, den Stackpointer mit Inhalt sowie das H-Register mit Inhalt vor und nach der Befehlsabarbeitung.
Hallo, das kann man so einfach nicht sagen, wenn Punkt c aber auch auf den 68HC08 bezogen ist, dann ist die antwort in beiden Fällen gleich. Die Interruptverarbeitung besteht daraus, den Interrupt zu erkennen, den Prozessorstatus auf dem Stack zu sichern, den Inerruptvektor zu laden und an die Adresse der ISR zu springen. Danach wird dir ISR ausgeführt und am Ende der ISR wird der Prozessorstatus wieder vom Stack geholt und die normale Prorammausführung fortgesetzt. Hierbei ist zu beachten, das aud gründen der Kompatibilität zum HC05 das H-Register nicht mitgesichert wird. Dieses muß man selbst tun. Es wird zuerst der Programmzähler, dann das X-Register, der Accumulator und dann das Stausregister gesichert. Beim Sprung in die ISR wird das I Bit im Statusregister gesetzt, so das keine weiteren Interrupts zugelassen sind. Sollten in der Zeit der Abarbeitung der ISR weitere Interrupts auftreten, so werden diese mach Beendigung der ISR ihrer Priorität entsprechend abgearbeitet. Als NMI kommen beim 68HC08 ja nur SWI und RESET in Frage. SWi müßte dann in der ISR explizit ausgeführt werden und RESET ist wieder ein eigenes Kapitel. Die Push und Pull befehle sind eigentlich ganz einfach. PSHA legt den wert in A auf den Stack und zählt den Stackpointer um 1 runter. PULH lädt den obersten wert vom Stack in das H Register und erhöht den Stackpointer um 1. sieher auch hier :http://www.freescale.com/files/microcontrollers/doc/ref_manual/CPU08RM.pdf?fpsp=1&WT_TYPE=Reference%20Manuals&WT_VENDOR=FREESCALE&WT_FILE_FORMAT=pdf&WT_ASSET=Documentation oder hier : http://www.eckhard-gosch.de/de/articles.php?cat_id=4 Eckhard
nein aufgabenteil a,b und c beziehen sich nicht auf den 68hc088. da wird nur allgemein gefragt. sind denn meine lösungen wie ich sie bis jetzt habe einigermassen korrekt?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.