Gast
#1657251
Hallo, mich nerven die ewig langen Header Dateien zur GPIO Konfiguration, daher will ich Konstanten PINC, PORTC und DDRC umrechnen. Im Header File soll nur noch eine Konstante stehen, der Präprozesser soll die Schreibarbeit machen. Hab zwei Ansätze, bin jedoch noch mit keinem zu einer Lösung gekommen. Version 1 (leider schon gelöscht, hier das Prinzip): #define _DDR(port) ( (port==PORTB)?DDRB:((port==PORTC)?DDRC:0) ) Das kann man natürlich ewig fortsetzen,... Nachteil: mann muss sich was für die nicht definierten PORTA,... überlegen, welche villeicht bei anderen AVRs vorhanden sind. Habe diese mit #ifndef ... definiert, ist aber keine besonders saubere Lösung. Version 2: #define _DDR(index) DDR##index #define _PORT(index) PORT##index #define _PIN(index) PIN##index in dem Headerfile stehen dann nur noch Buchstaben wie z.B. #define LED_PName B Hier sagt er mir aber ständig, dass B nicht definiert ist (logisch). Hat jemand ne Idee - oder noch besser, ne Lösung? *Ich will keine Kniffe über Speicherplatz-Abstandsrechnungen machen, da das bei anderen AVRs in die Hose gehen könnte. Mit freundlichen Grüßen, Kjartan Ferstl