TINY2313 (Timer und PWM???)

Gast #264506
Lesenswert?

cout<<"Hello Forum";

Ich bin im moment damit beschäftigt ein Programm zu realiseren.
Also:
Ich habe eine Lampe(zum testen neh LED). Ich möchte nun diese LED mit
einer PWM (Hardware)zum leuchten bekommen. Nach einer zeit von ca.25
Sekunden soll diese LED aus gehen.
Das PWM Signal habe ich schon mit dem Timer/ Counter1 erstellt.
Wie kann ich nun eine Zeit von ca. 25Sekunden erstellen ohne den
weiteren Ablauf des  Programmes zu blockieren.

Was ist sinniger ein HardwareTimer mit dem T/C0 oder besser einen
SoftwareTimer (der aus mehreren Schleifen besteht)
Brauche ich Interrupts?

möchte mal Eure Meinungen dazu hören!

DANKE Schön!!!!
#264507
Lesenswert?

> Was ist sinniger ein HardwareTimer mit dem T/C0 oder besser einen
> SoftwareTimer (der aus mehreren Schleifen besteht)

Weder noch...

> Brauche ich Interrupts?

Ja...

Man nehme einen Timer-Interrupt (dessen Intervall man aus Taktfrequenz,
Vorteiler und Zählumfang ausrechnen kann) und zähle in diesem eine
Variable hoch (oder runter).
Dies betrachte man als "Uhr" nach der sich alle Teile des Programms
richten können.
Braucht man nun eine Verzögerung, dann holt (kopiert) man sich diese
"Uhrzeit", addiert die Verzögerung dazu und prüft in der Mainloop die
Differenz und reagiert bei Gleichstand oder Überlauf.

...
Gast #264508
Lesenswert?

dafür kannst du auch den Timer1 nehmen, deine genaue PWM-Betriebsart
kenne ich nicht. OC1A- oder/oder TOV1-INT kannst du dafür nehmen. Je
nach eingestellter PWM-Frequenz erzeugst du dir einen zyklischen
Interrupt, der zählt dann eine Variable hoch.
#264510
Lesenswert?

Du wiederholst dich... (einmal hätte gereicht)

Ein Timer kann durchaus mehrere Jobs erledigen.
So wäre es möglich, mit Timer1 nicht nur die PWM zu erzeugen, sondern
auch noch einen Interrupt auszulösen, in dem die (als "Uhr" genutzte)
Variable hochgezählt wird.

Jedes ernstzunehmende Programm hat einen Timer als "Zeitnormal"
laufen, in dem gewisse Standardaufgaben synchronisiert werden. Dies
wären z.B.: Zeitzählung (Uhr), Steuerung von Verzögerungen, Entprellung
von Tastern, Synchronisation von LCD-Ausgabe, Steuerung von blinkenden
LEDs, Multiplexing von 7-Segment-Ziffern-Anzeigen auf LED-Basis. All
diese Dinge kann ein einziger Timer quasi zeitgleich erledigen.

Hier wird z.B. über das Thema diskutiert:
http://www.mikrocontroller.net/forum/read-1-233282.html#233728

...

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