Warteroutine PIC

OP #2034992
Lesenswert?

halloo,

eine frage wie kann ich diese Warteschleife auf ca 3 sekunden ändern??
8MHz --> 1sekunde

wait1s
                      movlw   d'93'
                      movwf   ZAEHL1
                      movlw   d'38'
                      movwf   ZAEHL2
                      movlw   d'11'
                      movwf   ZAEHL3

tloop1s:
                      decfsz  ZAEHL1
                      goto    tloop1s
                      decfsz  ZAEHL2
                      goto    tloop1s
                      decfsz  ZAEHL3
                      goto    tloop1s
                      return
Gast #2035001
Lesenswert?

wie wäre es mit etwas Mathematik ???

wait1s
                      movlw   d'93'
                      movwf   ZAEHL1
                      movlw   d'38'
                      movwf   ZAEHL2
                      movlw   d'33'  ; <------------- statt d'11'
                      movwf   ZAEHL3

ich habe aber nicht grundsätzlich geüüft, ob die Basis-Routine bei 8 MHz 
1 Sekunde liefert
OP #2035015
Lesenswert?

tt2t schrieb:
> wie wäre es mit etwas Mathematik ???
>
> wait1s
>                       movlw   d'93'
>                       movwf   ZAEHL1
>                       movlw   d'38'
>                       movwf   ZAEHL2
>                       movlw   d'33'  ; <------------- statt d'11'
>                       movwf   ZAEHL3
>
> ich habe aber nicht grundsätzlich geüüft, ob die Basis-Routine bei 8 MHz
> 1 Sekunde liefert

asoo ok danke

was hast du gemeint mit mathematik?

könntest du mir das eklären woher du weist das du statt 11 --> 33 
brauchts?
mfg mario
#2035027
Lesenswert?

> woher du weist das du statt 11 --> 33 brauchts?

vielleicht, weil vorher die Schleife 1 Sekunde gebraucht hat, und 3 
Sekunden das dreifache (3 * 1) von 1 Sekunden sind.

irgendein Zählerwert in der Schleife wird mit dem Wert x gefüllt, und 
nun wird halt der Wert mit 3 * x gefüllt ...

Daß x = dezimal 11 ist, ist halt deiner gegebenen Situation geschuldet. 
Wäre der Ursprungswert nicht 11, sondern 17, dann wäre es jetzt 3 * 17 
....

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren