Hallo!

Nachdem ich mich nun seit ein paar Tagen in die Materie C-Programmierung mit einem AVR eingelesen habe, bleibt eine Verständnisfrage bestehen, die ich einfach nicht selbst beantworten kann:

Warum muss man die ganzen Ports immer um einen Bit verschieben?

Es gibt dafür ja extra die Funktion SFR_IO8, die __SFR_OFFSET dazu zählt.
Nun stellt sich mir aber die Frage: Warum muss man so umständlich erst etwas dazuzählen, um es hinterher auch immer wieder abzuziehen?

Oder hat das einen tieferen Grund, den ich jetzt einfach nur nicht gesehen habe? Ich würde mich jedenfalls über eine Aufklärung sehr freuen.