ATMega32 In & Outputs

Gast #3039399
Lesenswert?

Habe eine ganz einfache Frage:

Ich möchte beim ATMega32 Input und Output - Pins definieren...
Bei Inputs habe ich das wie folgt versucht:

#define Detect_Read_SD(PINA & (1<< PA4))

hat aber nicht geklappt :(
hat mir da einer ein Beispiel dafür wie das klappt?

Danke und Gruss

Leo
#3039409
Lesenswert?

Leo C. schrieb:
> Habe eine ganz einfache Frage:
>
> Ich möchte beim ATMega32 Input und Output - Pins definieren...
> Bei Inputs habe ich das wie folgt versucht:
>
> #define Detect_Read_SD(PINA & (1<< PA4))
>
> hat aber nicht geklappt :(

Ich denke mal das Hauptproblem besteht wieder mal darin, dass dir nicht 
klar ist, was ein #define macht und wie es arbeitet

#define Text Anderer_Text

Das ist die Anweisung an den Preäprozessor im weiteren Programmtext den 
Text "Text" durch den Text "Anderer_Text" zu ersetzen.

Beachte: zwischen 'Text' und 'Anderer_Text' ist ein Leerzeichen!


(Hat denn dein C-Buch nichts zum Thema Makros bzw. Präprozessor zu 
sagen? Wundert mich. Denn darüber gibt es noch jede Menge andere Dinge, 
die man als C-Programmierer wissen müsste/sollte)
Gast #3039457
Lesenswert?

Also Eingänge beschreib ich immer so:

#define Eingang (PINA & 0x08) && 1 //Eingang PA3

Dann kannst du im weiteren Quelltext die einfache Schreibweise:

if (Eingang)
{
   //Mach was
}

verwenden.

Ausgänge beschreib ich in aller Regel so:

#define PB4

Das setzen resp. rücksetzen ist damit allerdings nicht so komfortabel 
(siehe AVR GCC TUT)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren