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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.