mikrocontroller.net

Forum: Compiler & IDEs Wieviele Takte dauert es?


Autor: Koblenzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Abend...

ich habe eine Frage,
Mein mikrocontroller wartet auf einen Signal (PORTC, bit 0) von FPGA.
loop_until_bit_is_clear(PINC,0);
PORTC |= (1 << 6);
PORTA = 0b11111111;
DDRA = 0b00000000;
PORTC &= ~(1 << 6);
Wieviele Takten dauert es???
Von Erkennung, dass bit 0 am Port C "low" ist
bis bit 6 am Port C gelöscht wird???
Es ist bei mir sehr Zeitkritisch, vielleicht gibt's
andere möglichkeiten. Ist es mit'nem Interrupt schneller???

Danke.

Autor: MBtechler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn es wirklich auf einzelne Takte ankommt, solltest du für diesen Teil 
besser Assembler verwenden, denn in C läßt sich die Zeit nicht exakt 
vorhersagen. Ein Interrupt ist definitiv wesentlich langsamer.

Autor: Sebastian Mazur (izaseba)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wenn es wirklich auf einzelne Takte ankommt, solltest du für diesen Teil
>besser Assembler verwenden, denn in C läßt sich die Zeit nicht exakt
>vorhersagen.

Bei diesem kleinem Beispiel bist Du mit Assembler nie schneller als C

@Koblenzer,
warum schaust Du nicht in .lss selber nach?
ich würde sagen
PORTC |= (1 << 6); //1 Takt
PORTA = 0b11111111;//2 Takte
DDRA = 0b00000000;// 2 oder 1 Takt ?
PORTC &= ~(1 << 6);//1 Takt

Gruß Sebastian

Autor: Koblenzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Sebastian Mazur

wenn ich gewusst hätte was .lss ist :)

Autor: Sebastian Mazur (izaseba)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Koblenzer wrote:
> wenn ich gewusst hätte was .lss ist :)

Ups, ja, da hast Du recht Sorry...

Wenn man das Standard mit Mfile erstellte Makefile verwendet, werden in 
Deinem Projektordner unteranderem Die Dateien *.lss und *.lst erzeugt.
Wenn man die nun mit einem Editor öffnet kann man sich wunderbar 
anschauen, wie Dein Programm in Assembler aussieht.
In AvrStudio muß man wahrscheinlich irgendwo ein Häckchen setzen, das 
kann ich leider nicht sagen, weil ich kein AvrStudio benutze, vieleicht 
kann da jemand weiterhelfen ?

Gruß Sebastian

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sebastian Mazur wrote:

> In AvrStudio muß man wahrscheinlich irgendwo ein Häckchen setzen,

Yep. Das stimmt.
Wie zu erwarten, findet sich diese Einstellung unter Project - Options

Dort stellt man alles ein, was das Projekt bzw. die Generierung
des brennbaren Programmes betrifft.

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.