mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR: Wieviele Takte?


Autor: Hans R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wieviele Takte braucht

i=0;
while (i<211) i++;

und

PORTB=0x04;

?

Autor: Ronny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kommt drauf an,was der C-Compiler daraus macht.Keiner der beiden Befehle
kann mit einem Maschinenbefehl(== ein Taktzyklus bei den meisten
Befehlen)  abgearbeitet werden.

PORTB =... wäre mit 2 Maschinenbefehlen noch am kompaktesten
realisierbar,was aber nicht automatisch heisst,das das auch jeder
C-Compiler so hinbekommt.Vor allem in niedrigeren Optimierungsstufen
und bei Debug-Codes wird der Code etwas grösser ausfallen.

Hängt aber u.a. auch noch davon ab,welcher Code davor kommt.Steht z.B
die Variable 'i' in einem Register,kann 'i = 0;' mit einem
Takt/Maschinenbefehl realisiert werden,ansonsten werden wieder 2
benötigt.

Lies dir doch mal das Tutorial hier auf der Seite durch,damit bekommst
du ungefähr ein Gefühl,wie welche C-Konstrukte in Assembler realisiert
werden können.Uas dem Listing eines C-Compilers kann man auch sehen,wie
der Compiler bestimmte Sequenzen übersetzt.Aber der generierte Code ist
oft etwas komplizierter zu verstehen,wenn man keine Übung darin hat.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
-> simulator

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wieviele Takte braucht
>
> i=0;
> while (i<211) i++;

Irgendwas zwischen 0 (i nicht volatile) und 100000 (i double)

Deshalb macht man sowas nicht.

Entweder man nimmt nen Timer oder delay() aus der Bibliothek.

Wer sagt, er hätte nicht genug Timer, einfach einen Timer frei laufen
lassen, dann kann jeder Prozess ihn benutzen.


Peter

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.