www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik TINY2313 (Timer und PWM???)


Autor: Hennes Hanke (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!!!!

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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.

...

Autor: cazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hennes Hanke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja mein Timer1 ist voll verwendet!
Habe noch nie Interrupts genutzt !
Was muss ich beachten? Kann mir jemand wertvollte Tips geben?

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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...

...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.