Hallo ihr Experten, wie kann ich eine LED per interrupt ein/aus schalten? Genauer gesagt, will ich z.B nach dem ablauf eines Timers, eine bereits leuhtende LED per interrupt ausschalten lassen. Wenn der interruptroutiene abgearbeitet ist soll die LED wieder leuchten, und das ganze nochmal von vorne(also eigentlich einfach ein Blinkverhalten erzeugen). kann mir vielleicht jemand ein entsprechendes Code-Beispiel dazu zeigen, vielleicht mit einer kurzen Erklärung dazu? Es geht mir ja nur darum das Interrupt-Programmierung an sich besser verstehen zu können und vorallem zu wissen wie man Thumb2 Befehle nutzten kann. Mein system ist übrigens: LPC1768. Ein Cortex-M3 Gruß und danke schonmal im voraus.
Bei interupts geht es hauptsächlich darum dem Hauptprogramm möglichst VIEL Rechenzeit zu lassen oder für ganz WICHTIGE DINGE das Hauptprogram KURZ zu unterbrechen und SCHNELL zu erledigen. Beispiel Pollen : Du benutzt den Timer um 10 Sekunden zu warten 1. Alarmwert wird gesetzt 2. der Timer wird gestartet 3. du guckst op der Timer schon im Statusregister das Bit für den Alarmwert gesetzt hat wenn nicht mache weiter bei 3 4. Weiteres Program Während dieser 10 Sekunden kannst die CPU nicht anderes machen nicht Rechnen nicht auf Taster reagieren (es sei denn deine Taster würden einen Interupt Request auslösen der das Hauptprogram unterbricht). Beispiel Interupt : Du benutzt den Timer um 10 Sekunden zu warten 1. Der Interupthandler wird geschrieben und an die Richtige Adressse im Speicher gepackt 2. Das Maskenregister des Interupts wird gesetzt 3. Der Alarmwert wird gesetzt 4. Interupts wwerden erlaubt 5. Der Timer wird gestartet 6. weiteres Program (z.B. Rechnen, Taster abfragen usw.) 7. Nach abgelaufener Zeit wird automatisch das Hauptprogramm unterbrochen und der Code aus dem Interupthandler ausgeführt 8. Dort wo das Program unterbrochen wurde wird weitergemacht Wenn du nun in deinem Interupthandler zu viel Zeit verbringst kann im Hauptprogram solange nicht gerechnet werden oder auf Taster reagiert. Deshalb sollte der Interupthandler so kurz wie möglich sein. Das Interuptsystem von ARM7 ist Herstellerspezifisch und nicht so standartisiert wie bei CortexM3. Jeder Hersteller hat dort seinen eigenen Interuptcontroller benutzt soweit ich weiß. Also Datasheets Appnotes und Referenzmanuals lesen.
Der sinn und zweck der Interrupts ist mir eigentlich schon bekannt. Ich wollte nur etwas Handfesteres zum ausprobieren haben. wie man halt prinzipiell vorgehen soll, wenn man eben Speziell für den LPC1768 eine Interrupt realisieren will. Ich weis noch nicht mal wie ich die Interruptfunktion überhaupt definiren soll. Und was für eine Rolle die Thumb2 Befehlsatz darin spielt...Danke Dir aber für die ausführliche Antwort.
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.