Warteschleifen Berechnung

Gast #57318
Lesenswert?
• ▲
▼
Hallo

Ich bin am Verarbeiten des Warteschleifen Prinzips.

Sind denn die Taktzyklen in diesem Beispiel (vom Internet)wirklich
richtig berechnet ?

Laut Datenblatt AT90S8515 braucht der Befehl "rcall" schon 3 Zyklen,
und der "ret" Befehl 4 Clock-Zyklen.

---------------------------------------------------------------------

Wait50us:            ;Systemtakt = 10Mhz sollen sich tges=50us ergeben

        ldi tim1,165 ; Zähler
Wait51:
        dec tim1
        brne Wait51
        ret

; 10 MHz Taktfrequenz = 0,1us/Takt
;
; 4  Takte für UP-Abarbeitung (Aufruf und Rücksprung)
; 1  Takt  für ldi tim1,X X=Zähler um 50us zuerhalten
; =5 Takte *0.1 = 0.5us =ta = sonstige Zeit für UP
;
; Schleife
;       dec tim1        1 Takt
;       brne wait51     2 Takte
;                     = 3 Takte = 3*0.1=0.3us = ts = Zeit für Schleife

;
; X= (tges-ta)/ts=(50us-0.5us)/0.3us=165 (Zeitzähler)
----------------------------------------------------------------------

Vielen Dank für die Infos

Toni
Gast #57320
Lesenswert?
• ▲
▼
Hallo Toni,

genau genommen sind da zwei Fehler drin:

1. rcall, ldi und ret entsprechen 8 Zyklen und nicht 5
2. Beim letzten Durchlauf der Schleife benötigt sie nur 2 Taktzyklen

Um exakt die 50us zu treffen, mußt Du tim1 also auf 164 setzen und
zwischen BRNE und RET noch ein NOP einfügen (164*0,3 + 0,8).

Gruß, Frank

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.