Forum: Compiler & IDEs Verzögerungsschleife


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Daniel (Gast)


Lesenswert?

Hallo,

ich programmiere gerade eine Verzögerungsschleife.
Dazu nehme ich eine while-Schleife mit 18 Umdrehungen für 10us, bei 
8MHz.
Leider sind es nur 4.5us.
Und wenn ich den Wert auf 36 verdoppel sind es 12.75us.
Nun stellt sich mir die Frage: Wie kann das sein?
Und gibt es vielleicht bessere Wege für Verzögerungsschleifen?

Dann dachte ich füge ich noch eine nop-Funktion vom Assembler ein, weil 
davor war die while-Schleife ganz leer.
#asm nop #endasm hab ich mir abgeguckt, funktioniert aber irgendwie auch 
nicht.

schonmal vielen Dank
Schonmal vielen Dank

von Joerg Wunsch (Gast)


Lesenswert?

asm volatile("nop");

Ansonsten #include <avr/delay.h>.

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]
  • [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.