Rufus t. Firefly wrote:
> Das wäre nur mit viel Aufwand und einem Linkerskript möglich, lässt sich
> aber mit einem #define viel einfacher hinpfuschen:
>
> #define MeineVariable PORTB
>
> Allerdings ist von beiden Vorgehensweisen DEUTLICH abzuraten. Warum soll
> man im Sourcecode Portzugriffe verschleiern? Was spricht dagegen, PORTB
> auch so zu nennen?
Na ja, so dumm finde ich das gar nicht.
#define LCD_PORT PORTA
#define LCD_DDR DDRA
int main()
{
LCD_DDR = 0xFF;
LCD_PORT = 0xFF;
}
hat ja doch einen gewissen dokumentarischen Zweck. Von der
Einfachheit einer möglichen Umstellung mal abgesehen.
Und manchmal, aber nur manchmal, kommt man dann tatsächlich in
die Verlegenheit eine Funktion schreiben zu müssen, der man
einen beliebigen Port übergibt und die auf diesem übergebenen
Port arbeitet. Dann übergibt man einen Zeiger.
Steht aber alles in der Doku zur avr-lib
RTFM