Forum: Compiler & IDEs Wieviele Takte dauert es?


von Koblenzer (Gast)


Lesenswert?

Guten Abend...

ich habe eine Frage,
Mein mikrocontroller wartet auf einen Signal (PORTC, bit 0) von FPGA.
1
loop_until_bit_is_clear(PINC,0);
2
PORTC |= (1 << 6);
3
PORTA = 0b11111111;
4
DDRA = 0b00000000;
5
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.

von MBtechler (Gast)


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.

von Sebastian M. (izaseba)


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
1
PORTC |= (1 << 6); //1 Takt
2
PORTA = 0b11111111;//2 Takte
3
DDRA = 0b00000000;// 2 oder 1 Takt ?
4
PORTC &= ~(1 << 6);//1 Takt

Gruß Sebastian

von Koblenzer (Gast)


Lesenswert?

@Sebastian Mazur

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

von Sebastian M. (izaseba)


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

von Karl H. (kbuchegg)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.