MSP 430 Wie Timer in C programmieren?

Gast #56265
Lesenswert?

Habe ähnliche Frage schon einmal für Assembler-programmierung gestellt.
(Problem konnte gelöst werden) Nun wollte ich es auch mit dem
C-Compiler von IAR probieren, aber ohne Erfolg.
Welchen Fehler könnte ich gemacht haben?
mfg
Wolfgang
Angehängte Dateien:
Gast #56271
Lesenswert?

Hallo Patrick,
das neue Programm läuft, leider ist es für mich  nicht vollkommen
verständlich;
z.B. im Continunous mode sollte der Zähler m.E. bis FFFFh hochlaufen-
macht nichts - es ist eine Möglichkeit ein Unterprogramm anzustoßen
ich habe es etwas auch etwas abgeändert, um mit dem Oszi besser die
Zeit ermitteln zu können.
Jetzt wird z. B. alle 5ms eine Impulsfolge (hier könnte das
Unterprogramm stehen) erzeugt.
Eine Frage noch (weil mein Englisch unterentwickelt ist): Was versteht
man unter toggle?
Vielen Dank für Deine Unterstützung
Mit freundlichen Grüßen
Wolfgang
Angehängte Dateien:
Gast #56272
Lesenswert?

Hi!

Toggle heist frei übersetzt "umschaltren".
Am einfachsten geht das per Exklusiv-oder verknüpfung, in Deinem Fall
für BIT0 also so:

#define TOGGLE(sfr, mask) sfr ^= mask

oder so:

P1OUT ^= BIT0

Weshalb CCR0 bei Dir keinen Einfluss hat, kann ich Dir jetzt so auch
nicht sagen, ich benutze Timer_A so:

    TACTL = 0x0216 | 0xC0;          // SMCLK, clear TAR, interrupt
enabled
    CCR0 = 0x2710;                  // measure interval is 100ms

...ich hoffe, das hilft Dir...
Gast #56274
Lesenswert?

Hallo,

verfolge euren Beitrag mit viel Interesse.
Könnt Ihr mir sagen wie Ich einen Takt mit 32768 Hz erzeugen kann.
Möchte damit zuerst eine LED an/ausmachen und später einen Sensor mit
diesem Takt ansteuern.


Gruß Alexander
Gast #56275
Lesenswert?

Hallo Alexander,

da es viele Möglichkeiten zur Takterzeugung gibt, wäre es nützlich,
wenn du dein Projekt etwas konkretisierst.
Muss es ein MSP430 sein?
Man kann z. B. auch 2 Gatter und ein Uhrenquarz nehmen, um den Takt zu
erzeugen.
Mit freundlichen Grüßen
Wolfgang

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