@ Frank (Gast)
>Sind beim ATMega Zugriffe auf PORTA...D genauso schnell wie Zugriffe auf
>Variablen im C-Code?
Ja.
>Hintergrund: UART0 und UART1 eines AVR sollen in Software verbunden
>werden (als ob der PC an UART0 mit dem Chip an UART1 verbunden wäre) -
>aber ohne UART-Programmierung, sondern indem Bits in PORTD in kurzer
>Endlosschleife in einem Bootloader kopiert werden: RXD1-Bit nach
>TXD0-Bit, RXD0-Bit nach TXD1-Bit. F_CPU ist 18.432MHZ, es soll bis
>115200 Baud funktionieren, Interrupts sind aus.
Kann man machen, auch wenn das etwas sinnfrei ist.
>Ich frage mich jetzt, was schneller ist:
ASM ;-)
>A: PORTD auslesen, Bitschieberei in lokaler Variable,
Gar nicht schieben, nur abfragen. Bei Einlesen muss es PIND sein. Beide
Versionen dürften ansatzweise gleich schnell sein. Denn das wird alles
auf Bitbefehle umgesetzt. Das dürfte 3 Takte / Port sein, in Summe 6 +
Schleife, macht 8 Takte Umlaufzeit. Im Zweifel ist B einen Tick
schneller.