MSP430 Wie wird ein Unterprogramm mit einem Timer gestartet?

Gast #55237
Lesenswert?

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
Gast #55238
Lesenswert?

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...
Gast #55240
Lesenswert?

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...
Gast #55242
Lesenswert?

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
Gast #55244
Lesenswert?

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
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren