Zitat von
Saturas077
Ich hoffe Ihr seit nicht böse, dass ich schon wieder ein Problem habe.
Nicht, wenn wir dir helfen können
Mein Projekt benötigt die Genauigkeit eines 8Bit Timers, ohne Prescale, über eine Dauer von mindestens 2ms, besser wären 100-200ms.
Das klingt rätselhaft. Eigentlich konfiguriert man den Timer, läßt ihn laufen und läßt ihn über Interrupt melden, wann seine Zeit abgelaufen ist oder so ... Erklär doch ein bißchen mehr, so daß man eine sinnvolle Konfiguration vorschlagen kann.
Auf welchem µC soll das laufen?
Das ist mit einem 16 Bit Register, 2 mal 8 Bit, zu lösen, allerdings weiß ich nicht wie ich ein solches benutze. Das was ich im Internet fand sieht wie folgt aus: .....
Ich verstehe das so, daß Du einen 16Bit Timercounter auslesen möchtest, um eins incrementieren willst und wieder zurückspeichern möchtest.
Schreiben und Lesen eines 16Bit Registers, wie das TCNT1 des Timers 1, das aus TCNT1L und TCNT1H besteht, ist im Datenblatt des ATMega8a beispielhaft so dargestellt. Man beachte die Reihenfolge der Zugriffe.
Code:
; Set TCNT1 to 0x01FF
ldi r17,0x01
ldi r16,0xFF
out TCNT1H,r17
out TCNT1L,r16
; Read TCNT1 into r17:r16
in r16,TCNT1L
in r17,TCNT1H
Auf einem ATMega8 geht das ADIW. Also zB so:
Code:
in r24,tcnt1L
in r25,tcnt1H
ADIW r24,1
out tcnt1H,r25
out tcnt1L,r24
Gruß
Searcher
Lesezeichen