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!!!!
> 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. ...
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.
Ja mein Timer1 ist voll verwendet! Habe noch nie Interrupts genutzt ! Was muss ich beachten? Kann mir jemand wertvollte Tips geben?
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 ...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.