AVR: Wieviele Takte?

Gast #348997
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.
#348999
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

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.

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.