mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik msp430 Timerinterrupt unregelmäßig?


Autor: Timo P. (latissimo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
initialisierung: (nach OSC Fault)
void init_timerA()
{
  TACCTL0 = CCIE;                             // TACCR0 interrupt enabled
    TACCR0 = 5000;                // 10ms bei 4MHz Quarz
  TACTL = TASSEL_1 + MC_2 + TAIE + ID_3 ;     // ACLK/8, contmode, interrupt
}

Interrupt :
// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
  P4OUT ^= (1<<2);
  TACCR0 += 500000;                          // Periode/(8/XTAL)
}
der timer ist ausschließlich hierfür verwendet.

Msp430F2274  mit CCE kompiliert

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tja, wenn du die Obergrenze für den Timer in jedem Interrupt 
unregelmäßig verschiebst...

> TACCR0 += 500000;                          // Periode/(8/XTAL)

TACCR0 ist wieviele Bits breit?

Autor: Timo P. (latissimo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schon klar, verdammt.......
aus 50 000 wird schnell mal ne 500 000 blöder schreibfehler

dann sind das die Überläufe, die ja bei 16bit desöfteren zustande 
kommen....

danke !

Autor: Timo P. (latissimo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zahlenwert ist geändert!

Als Beispiel mal auf 50 gesetzt Aber ich bek. nur rotze heraus, siehe 
Anhang!

Autor: Timo P. (latissimo)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
siehe anhang....

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der "Spike" ist sicher kein Messproblem sondern so reproduzierbar 
erzeugbar? Hast du eine tatsächliche Oszi-Mitschrift zur Hand?

Nebensächlich: Warum benutzt du den Continuous Mode (TACCR0...0xFFFF) 
statt den Up Mode (0...TACCR0)

Autor: Timo P. (latissimo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
moment ich gucke nach dachte ich hätte den upmode

wenn ich continious habe ist mir alles klar....
dann kommen zwei interrupts oder? einer bei taccr0 und einer bei 
overflow.

richtig?

Autor: Timo P. (latissimo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sollte natürlich MC_1 sein statt MC_2....

diese blöden Makros kenn ich noch net auswendig.....

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weiss ich nicht. Ich habe nicht das Datenblatt zur Hand, sondern nur 
eine Übersicht eines Dritten 
(http://www.ccs.neu.edu/home/noubir/Courses/CSU610/...). 
Dort sind beide Fälle streng getrennt bzw. der Mixed-Fall nicht 
betrachtet.

Autor: Gunb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich nutze zwar für meine Zwecke den Cont. Mode mit Interrupt und 
mehreren CCRs, aber rein spontan fällt mir nur ein: schau dir mal die 
OUTMODx-Settings des TACCTL0-Registers an. Stimmt dies für deinen Zweck?

Ich meine zu glauben, dass der Overflow eine separate ISR-Aktivierung 
hat, der sollte also bei die nicht ausgelöst werden.

gruss
gunb

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.