Forum: Mikrocontroller und Digitale Elektronik ATMega32 In & Outputs


von Leo C. (Gast)


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

von EMV (Gast)


Lesenswert?

Wenn die IOs das Problem sind:
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Zugriff_auf_IO-Ports

Wenn das define falsch ist:
Ein C-Buch

von Karl H. (kbuchegg)


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)

von Electronics'nStuff (Gast)


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)

von Electronics'nStuff (Gast)


Lesenswert?

Electronics'nStuff schrieb:
> #define PB4

#define Ausgang PB4

So sollte es natürlich heissen..

von Leo C. (Gast)


Lesenswert?

Danke hat geklappt!


Gruss Leo

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.