www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 8 Bit Timer/Counter


Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo...
Gibt es eine Möglichkeit meine 16 Bit große "Verzögerung" in einen
8Bit Timer/Counter zu laden? Mittels Z-Pointer oder so? Da ich meinen
16Bit Counter schon für andere Aufgaben verwende und ich nun nur noch
einen mit 8Bit zur Verfügung habe wäre das sehr interessant zu
wissen....
Danke Alex

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Alex

Lass doch mit dem 8 Bit Timer eine Variable hochzählen. Die brauchst du
doch dann doch nur noch abzufragen, ob es schon so weit ist.

MFG
Dieter

Autor: Frank Linde (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Alex,

Du kannst den 8-Bit-Timer nicht zu einem 16-Bit-Timer umfunktionieren.
Wenn das ginge, hätten es die Marketing-Strategen von ATMEL sicherlich
schon ganz fett vorne auf's Datenblatt gedruckt. ;-)

Aber der Vorschlag von Dieter ist eine gute Möglichkeit, Dein Ziel zu
erreichen.

Gruß, Frank

Autor: Hannes Lux (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo...

Runterzählen ist auch nicht schlecht, dann kann die Timer0-OVF-ISR
gleich die Schalthandlung ausführen...

Bei 16-Bit-Zählvariablen lohnt sich auch Hochzählen bis zum Überlauf,
da ist die Bedingungsabfrage einfacher...

Bit- & Bytebruch... - ...HanneS...

Autor: BernhardT (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
16 Bit große "Verzögerung"  ? finde ich etwas ungenau.
Mit 8 Bit Vorteiler ( gibt es z.B. beim AVR) kann ein 8 Bit counter
solange Zählen wie ein 16 Bit counter ohne  Vorteiler (aber nicht so
genau).
Ich weis aber nicht ob du das meinst.
Gruß Bernhard

Autor: Hannes Lux (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Bernhard...

Nein, das meinte ich nicht...

Ich meinte, dass Timer0 per Interrupt ein "Zeitnormal" liefert, das
für mehrere Dinge genutzt werden kann, da die ISR auch mehrere
Variablen hoch- oder runterzählen kann.


So lasse ich z.B. bei einer sechsfach-PWM den PWM-Treppenzähler (ein
Register) in der Timer0-ISR hochzählen und mit den Tempowerten aller
Kanäle vergleichen und bei Gleichheit den betreffenden Port
ausschalten.


In einer anderen Anwendung (Modellbau-Fernsteuer-Encoder mit 4433)
erzeugt Timer0 ein 0,01ms Zeitnormal, mit dem ich  die
Sendertastimpulsbreite, den Impulsabstand (Kanalimpulsbreite), aber
auch die 20ms-Impulspause steuere, was einen 16-Bit Zähler erfordert.

Timer1 möchte ich vorerst frei halten, wenn ich etwas sattelfest bin
(auch ich bin MC-Neuling) möchte ich Experimente mit Soundausgabe via
Timer1-PWM machen (nur Geräusche, kein Multimedia).


In der Schaltung eines Fernsteuer-Schaltdecoders mit 1200 werden für 10
Schaltausgänge Ausschaltverzögerungen gebraucht. Also lasse ich in
Timer0-ISR neben dem Zähler für die Impulsbreitenmessung noch 10 untere
Register runterzählen und bei 0 den Ausgang ausschalten.


So in etwa meinte ich das...

Mit besten Grüßen,
Bit- & Bytebruch... - ...HanneS...

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
10 Leute betreten zu verschiedenen Zeiten einen Raum und sollen ihn zu
bestimmten anderen Zeiten wieder verlassen.

Jetzt könnte man 10 Stopuhren verteilen, eine für jeden, man hat aber
nicht soviele.

Lösung:

Man hängt nur eine einzige Uhr im Raum auf, die jeder sehen kann. Und
jeder merkt sich die Zeit, wann er gekommen ist und addiert die Zeit
dazu, die er im Raum bleiben soll.

Deshalb reicht auch bei einem MC ein einziger Timer aus, um beliebig
viele Zeitverzögerungen zu realisieren.


Peter

Autor: Hannes Lux (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stimmt...

Danke, Peter...

Manchmal denkt man eben um die Ecke, besonders als Anfänger...

Bit- & Bytebruch... - ...HanneS...

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.