PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Arduino IDE = C ? => Frage zu Pin0 und Pin1 MEGA32U4 / Leonardo



PsiQ
12.07.2013, 12:51
Hallo Roboterrunde!
Ich habe ein Problem bei einem Programm was ich gerade "baue".
Es ist ein Arduino Leonardo = MEGA32U4. Ich habe alle Pins in Verwendung an die ich mit meinem Shield rankomme,
ausser Pin0 und Pin1. Programmiert habe ich in der "Arduino IDE", was anscheinend so eine Art C zu sein scheint...

Um vor dem Programm/Loop einen Pin zu definieren, muss ich diesem eine Variable zuordnen, und den Pinmode einstellen.
Beim Leonardo läuft Programmieren und "serial" direkt über USB.
Es gibt die Option "serial1" auch noch als TTL RX/TX zu verwenden, das brauche ich aber nicht,
ich brauche noch einen Pin mehr als Digital Output. Pin1 oder Pin0...


Wenn ich nun einen analog Pin zuordne schaut das so aus:



// Zuordnung TASTER = Input
int start = A0;
int stopp = A1;
int ampel = A2;
// Zuordnung LEDs = Output
int ledstart = A3;
int ledstopp = A4;
int ledampel = A5;


Die Variable "start" wird als integer definiert und Pin A0 zugeordnet.

Wenn ich eine allgemeine Speicher-Variable, ohne Pinverknüpfung verwende,
definiere ich diese so:


// Definieren von Speichervariablen etc
int starterfolgt = 0; // Speichervariable für "Start ist erfolgt"
// => Zeitmessung läuft. Nach Reset =0 auf 0 setzen.

int stoppentprellen = 0; // Speichervariable um Stopptaste zu entprellen. Nach Reset = 0 setzen.




Und nun kommt das Problem.
Um eine LED1 Pin 13 zuzuordnen schreibe ich:
" int LED1 = 13; "

Das scheint zu funktionieren, aber warum schreibt der Compiler dann nicht einfach den Wert "13" in die Variable "LED1", sondern -erkennt irgendwie-,
dass der reale Hardwarepin PIN13 gemeint ist und ordnet diesen zu??

Ich möchte nun PIN0 einer Variable zuordnen, identisch zu Pin 13 hieße das:
" int LED1 = 0; "

ABER bei der Variablendefinition ohne reale Hardwarebindung, habe ich genauso doch den Startwert auf 0 gesetzt !?!?
( siehe oben // definieren von Speichervariablen)

- Also habe ich oben entweder zwei Variablen mit dem realen Pin schon verknüpft, was sich in einem Programmfehler äussern müsste da diese sich gegenseitig überschreiben,
ODER ich kann den Pin gar nciht so verknüpfen ?!?!

- Zu Hilfe ! -
Ich habe jetzt schon 2 Tage dami rumgesucht auf deutsch und englisch, und alle Programmbeispiele sind immer schöööön darauf aus ja nicht den Pin1 und Pin0 als INPUT oder OUTPUT zu verwenden,
so dass ich nciht schauen kann obs richtig ist / funktioniert.

Das bedeutet entweder, mein Programm funktioniert glücklicherweise/zufällig, obwohl ich schon 2 Speichervariablen einem Hardwarepin zugeordnet habe,
ODER dass ich den Pin 0 so NICHT zuordnen kann...

Kann mir da jemand helfen ?

- Danke ! -