mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Programmablaufzeit berechnen


Autor: DerPate (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo habe ein kleines Problem damit bei der folgenden Befehlssequenz 
die Ablaufzeit zu Berechnen weil ich nich genau weiß wann das Carry Flag 
nun wirklich gesetzt wird.

start: push r17
       clc
       ldi r17,0x00
st01:  dec r17
       brcs st01
       pop r17
       ret

nun ist es ja eigentlich so das der dec-Befehl keinen Einfluss auf das 
Carryflag hat.

Nun ist meine Frage läuft die Schleife dann 255 mal durch und dann wird 
das C-Flag gesetzt oder wird es trotzdem nach dem erstenmal dec gesetzt 
weil ein Überlaufstattfindet?

Zyklen
push 2
clc 1
ldi 1
dec 1
brcs1/2
pop 2

der ATmega ist mit 8 MHz getaktet also hat damit eigentlich eine 
Zykluszeit von 125 ns.

wenn mir jemand helfen könnte wäre das sehr schön

Danke

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Das C-Flag wird überhaupt nicht gesetzt.

MfG Spess

Autor: DerPate (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sprich das programm rent einmal nach unten durch ohne nochmal auf die 
Marke zu springen?

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>sprich das programm rent einmal nach unten durch ohne nochmal auf die
>Marke zu springen?

Ja. 'DEC' beeinflußt das Carry-Flag nämlich nicht. Und da du C löscht 
bleibt dem Programm nichts anderes übrig.

Was hast du denn vor?

MfG Spess

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
prüf auf 0 mit brne oder breq und du hast deine Warteschleife :-)

Autor: DerPate (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das is ne Prüfungsaufgabe und ich wollte sehn ob mein Gedankengang 
richtig war das ich am ende auf 1,25 us komme ^^ da ich nächsten 
Mittwoch Prüfung habe und ich grad die Probeklausur rechne.

Und Danke an Euch die mir geholfen haben ^^

Autor: DerPate (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hab nochwas vergessen ein    ret   kommt auchnoch mit unten dran und das 
sind nochal 4 Zyklen mehr ^^

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.