movlw 0x83
movwf TMR0
--> ist richtig, funktioniert und ergibt bei den Werten ca. 2ms.
BlackBox
hi leute
ich habe bei sprut gelesen das wenn ich den tmr0 auf einen wert setzen muss den erstmal auf movlw 0x83 und dann mit movwf tmr0 da speichern.
ist das richtig den als ichs ausprobiert hab gings nicht.
ich brauche diesen als tmr0 offset.
timer0 offset ist 131
prescaller ratio 16
bei einem osci 4MHz
und da kommte 2ms raus
könnt ihr mir da helfen
danke im vorraus
mfg d.stolarek
---
movlw 0x83
movwf TMR0
--> ist richtig, funktioniert und ergibt bei den Werten ca. 2ms.
BlackBox
also ich weiss was passiert ist
ich hab eine sehr wichtigen punkt bei mir vergessen
ich musste schon wieder die bank wechseln
also jetzt läufts bei mir
danke blackbox fuer deine antwort
---
das problem was ich jetzt hab ist, das ich nun eine art schleife machen will
die schaut was ist drin in tmr0
TIMER
.
.
.
BTFSC TMR0, 0xFF
GOTO NEXT
GOTO TIMER
.
.
.
NEXT
ich weiss aber nich obs richtig ist und das witzige ist der springt immer zu dem unteren auch wenn er den wert 0xFF erreicht
bitte helft mir
danke im vorraus
---
Wie wärs mit dem Studium de Befehlssatzes?
BTFSC prüft ein Bit und nicht ein Register auf einen Wert.
Sinnvoll wäre den Timer-Interupt zu verwenden. Wenn Du es aber unbedingt so machen willst, dann geht das nur über einen Umweg.
z.B. So:
Denke aber daran, dass TMR0 nur 16 Befehlszyklen auf einem Wert bleibt. Eine solche Auswertung ist daher nicht zu empfehlen. Die 2ms sind übrigens erst beim Überlauf von 0xff auf 0x00 um.Code:movlw 1 Timer .. addwf TMR0,w ; +1 ergibt 0x00 in w, wenn TMR0=0xFF btfss STATUS,Z ; Sprung, wenn Z-Flag gesetzt goto Timer Goto Next
BlackBox
ich weiss das der überlauf erst nach der gesamten zeit ist und da dann erst die 2ms sind das ist auch das was ich benötige
und danke für den vorschlag ich werds bei mir versuchen
---
Lesezeichen