Mir gelingt es nicht, ein Unterprogramm in regelmäßigen Abständen mit einem Timer anzustoßen, da mir die grundsätzlichen Kenntnisse noch fehlen und ich aus dem Datenblatt und auch aus der Bedienungsanleitung (zum MSP430F133) nicht schlau werde. Auch die Beispiele In IAR Kickstart führten nicht zum Erfolg. Vielleicht hat jemand ein Programmbeispiel (Assembler) mit deutschem Kommentar, bei dem jede Zeile kurz erläutert wird, warum und weshalb sie Zeile eingefügt wurde. In meinen Beispielen ist u.a. von Interrupt Vector oder toggle die Rede. Was versteht man darunter? Wolfgang
Hallo Wolfgang! Ich habe gerade überlegt, Dir das alles zu erklären, aber dann kam mir die Idee, mal in das AVR-Tutorial zu gucken. Wenn Du Dir da mal die erläuterungen zu Interrupts anschaust, denke ich, kannst Du das auch recht einfach auf den MSP430 umsetzen. Gruß, Patrick...
Hab mir AVR Tutorial angesehen und glaube, es soweit verstanden zu haben. Leider wird mein Versuchsunterprogramm nur einmal gestartet. Weitere Details im Dateianhang. Vielleicht erkennt jemand meinen Fehler. Wolfgang
Hallo Wolfgang! Du musst das Flag für Deinen Interrupt noch zurücksetzen. Das machst Du in der ISR als letztes. Wenn Du es nicht als letztes machst, dann kann Deine ISR durch einen weiteren auftretenden Interrupt unterbrochen werden. Folglich ist dieser Interrupt so lange gesperrt, bis Du ihn wieder freigibst. Ich denke, das bekommst Du hin ;) Gruß, Patrick...
Ach ja: warum zählst Du eigentlich R5 und R6 runter? Soll das eine Verzögerungsschleife sein? Ich denke, die brauchst Du gar nicht...
Zunächst Dank an Patrick, ich mir schon so etwas ähnliches gedacht, dass man ein Interrupt-Flag zurücksetzen muss, und auch verschiedene Befehle ausprobiert, wo ich annahm, dass diese dafür zuständig sind. Da das Herumprobieren nichts brachte, dachte ich, frag mal die Experten. Andererseits habe ich in meinen Beispielen keine entsprechende Zeile gefunden. Deshalb meine Frage (an alle Experten): Wie muss die Befehlzeile lauten? Oder fehlt noch etwas? Das TA0_ISR programm habe ich nur deshalb so aufgebaut, damit ich erst einmal etwas sehen kann. Es hat keine besondere Bedeutung. Hier soll später mal etwas anderes stehen, was bereits auch schon nach meinen Vorstellungen läuft. Mit freundlichen Grüßen Wolfgang
Wenn ich das jetzt richtig im Kopf habe, dann geht das so: bic #TAIFG, &TACTL ; reset interrupt flag Ohne Gewehr...ähm Gewähr...
Problem erkannt, a) es gab kein Hauptprogramm, welches durch einen Interrupt unterbrochen werden konnte b) falscher Interrupt -Vector offensichtlich ist die Zeile: " bic #TAIFG,&TACTL -- ohne Gewehr" nicht notwendig, da, wenn ich das richtig gelesen habe, mit reti das GIE in das Statusregister zurückgeschrieben wird. Hab mal mein neues Programmteil angehängt, welches bei mir funktioniert mfg Wolfgang
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.