LostInMusic schrieb:
>>PINA ist doch keine Konstante.
>
> Wie bitte?
>
> PINA = die Adresse des PINA-Registers im I/O-Bereich des Controllers.
>
> Selbstverständlich ist das eine Konstante.
Nein. Nicht in C.
&PINA ist eine Konstante, aber nicht PINA welches als
1 | #define PINA *(volatile uint8_t*)(Adresse des Pin Registers)
|
per Makro definiert ist. Im PINA Makro ist die Dereferenzierung bereits
in das Makro eingebaut, so dass es sich für einen C-Programmierer wie
eine normale Variable verhält.
> Beim ATtiny24/44/84 hat sie den Wert 0x19. Wer's nicht glaubt,
> möge sich davon mit "ldi r16, PINA" im Simulator überzeugen.
Du musst schon auch die Programmiersprache berücksichtigen. Hier geht es
um C und nicht um Assembler. Für einen C Programmierer verhalten sich
DDRA, PORTA und PINA (genauso wie alle anderen Hardware-Register) wie
ganz normale Variablen, die per Makro-Magic an die µC-Register gekoppelt
sind.