8 Bit Timer/Counter

Gast #63168
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
Gast
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
Gast
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
Gast
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...
Gast
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
Gast
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...
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.