MSP430 - Delay 10us mit Timer B

OP #359270
Lesenswert?
• ▲
▼
Hey,

Ich möchte mit dem MSP430f149 und dem Timer B eine Verzögerung von 10us
(+/- 5%) realisieren. Der MSP430 läuft mit 8MHz. Der Timer B ist ein
Free Running Timer. In der Interrupt Routine setze ich das Flag, damit
ich aus der Schleife komme.

Das Problem: Aus mir noch unbekannten Gründen ist die Verzögerung nur
7.5us, gemsssen mit KO.

Was mach ich falsch? Den Timer höher zählen lassen, kann wohl nicht die
Antwort sein, oder?


void Wait10us()
{
    chTime10us_up = FALSE;
    TBCTL &=~ MC_2;  // Stopp Timer
    TBCCR1 = TBR + 80; // Neuer Capture Value (8MHz)
    TBCTL |= MC_2; // Restart Timer
    TBCCTL1 = CCIE; // CCR2 interrupt enabled

    do
    {
        _NOP();
    }while (chTime10us_up == TRUE);
}
Gast #359273
Lesenswert?
• ▲
▼
In
do
    {
        _NOP();
    }while (chTime10us_up == TRUE);

liegt der Hund begraben. Du initialisierst chTime10us_up mit FALSE,
diese Schleife wird also sofort verlassen. Wenn Du es so machen
willst,musst Du schon auf (chTime10us_up == FALSE) abfragen.
Ich nehme an, dass die 7,5µs, welche Du misst, die reine Laufzeit ist.
Allerdings sind die 10µs allgemein zu hinterfragen.
Wenn es schon 10µs sein müssen,macht man es denke ich geschickterweise
über eine Schleife mit NOPs, welche Du ausmisst.
Bei Deiner Timerlösung solltest Du ausserdem bedenken, dass beim
Anhalten des Timers alle anderen Kanäle beeinflusst, eventuelle
Capturing-Messungen (wie in Deinem Beispiel Kanal CCR0), kannst Du dann
wegschmeissen.

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.