Forum: Mikrocontroller und Digitale Elektronik MSP 430 Wie Timer in C programmieren?


von Wolfgang (Gast)


Angehängte Dateien:

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

von OldBug (Gast)


Angehängte Dateien:

Lesenswert?

Hi Wolfgang!

Ich habe da mal ein bißchen manipuliert :)
Probiers mal so...

Gruß,
Patrick...

von Wolfgang (Gast)


Lesenswert?

Hallo Patrick,
vielen Dank, habe getestet, aber leider kein Erfolg
ich bleibe dran
mfg
Wolfgang

von OldBug (Gast)


Lesenswert?

Was passiert denn?

von Wolfgang (Gast)


Lesenswert?

nichts, LED bleibt AUS

von OldBug (Gast)


Angehängte Dateien:

Lesenswert?

Hi Wolfgang!

Ich war grad mal auf der TI-Seite, aber ich finde da irgendwie keinen
Fehler.
Naja, vielleicht bin ich auch zu blind ;)

Ich habe Dir mal ein Beispiel von TI angehängt.

Viel Glück ;)

von Wolfgang (Gast)


Angehängte Dateien:

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

von OldBug (Gast)


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...

von Wolfgang (Gast)


Lesenswert?

danke, wieder etwas schlauer
gruss
wolfgang

von alexander binder (Gast)


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

von Wolfgang (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.