mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Warteroutine PIC


Autor: Mario Horvat (mariohorvat)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: tt2t (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Mario Horvat (mariohorvat)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Wegstaben Verbuchsler (wegstabenverbuchsler)
Datum:

Bewertung
0 lesenswert
nicht 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 
....

Autor: Mario Horvat (mariohorvat)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dankeschön Wegstaben Verbuchsler

sorry wenn das jz. vl. eine dumme frage was

aber ich bin ganz neu auf diesem Sektor :D

dankee

Autor: stepp64 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Halt 3x die Routine aufrufen.........

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.