Forum: Mikrocontroller und Digitale Elektronik Warteroutine PIC


von Mario H. (mariohorvat)


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

von tt2t (Gast)


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

von Mario H. (mariohorvat)


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

von Wegstaben V. (wegstabenverbuchsler)


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 
....

von Mario H. (mariohorvat)


Lesenswert?

dankeschön Wegstaben Verbuchsler

sorry wenn das jz. vl. eine dumme frage was

aber ich bin ganz neu auf diesem Sektor :D

dankee

von stepp64 (Gast)


Lesenswert?

Halt 3x die Routine aufrufen.........

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.