Wieviele Takte dauert es?

Gast #720179
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.
Gast #720191
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.
#720202
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
#720261
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
#720547
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren