Go Down

Topic: Literaturtipps für Programmiersprache C (Read 1 time) previous topic - next topic

Chris72622

Hallo,

habe vor wenigen Monaten noch nicht programmiert und mit der Arduinoumgebung angefangen.

Da ich solche Codes in Zukunft verstehen möchte..

Code: [Select]
//2 Pins als Ausgang deklarieren und einen als Eingang
DDRA = 0b00000011; // 6 Eingänge 2 Ausgänge

//den ersten Pin auf "High" setzen
PORTA |= (1 << PA0);
//den gleichen Pin auf "Low" setzen
PORTA &= ~(1 << PA0);

//überprüfen ob der Eingang gesetzt ist
if(PINA2) {
 //Ausgang setzen
 PORTA |= (1 << PA1);
} else {
 PORTA &= ~(1 << PA1);
}


..und mir meine ganzen schlauen Arduinobücher dabei nicht helfen können, frage ich mich nun, wie es weitergehen könnte.

Sollte ich mir nun C, C# oder C++ aneignen, um weiterzukommen?

Hab mir jedenfalls mal "Programmieren in C: Mit dem C-Reference Manual in deutscher Sprache" bestellt und lese mich momentan hier ein:

http://openbook.galileocomputing.de/c_von_a_bis_z/

Ob das nun der "richtige" Weg ist, weiss ich nicht; vielleicht aber Ihr.  :*

Gruß Chris

uwefed

#11
Jan 20, 2013, 01:01 pm Last Edit: Jan 20, 2013, 01:03 pm by uwefed Reason: 1
Chris zu Deinem Verständnisproblem:

Code: [Select]
//2 Pins als Ausgang deklarieren und einen als Eingang
DDRA = 0b00000011; // 6 Eingänge 2 Ausgänge

DDRA ist das Register des PORT A das definiert ob ein PIN Eingang oder Ausgang ist. bei 0 Eingang und bei 1 Ausgang.

Code: [Select]
//den ersten Pin auf "High" setzen
PORTA |= (1 << PA0);
//den gleichen Pin auf "Low" setzen
PORTA &= ~(1 << PA0);

PORTA ist das Register das die Ausgangsspannung (H oder L) der Pins bestimmt.
Weil hier nur 1 Pin geändert werden soll wird zuerst PORTA gelesen und dann Binär gesetz. |: die Oderverknüpfung mit 1 setzt ein Bit auf 1. "1<<PA0" verschibt die 1 um PA0 stellen Shift. "~" negiert ein Bit, aus 1 wird 0.

Das sind alles nicht C-spezifische Programme sondern Boolean-Logik und Controller-spezifische Register.

Kapitel 6 von http://openbook.galileocomputing.de/c_von_a_bis_z/ erklärt einiges.

Grüße Uwe

Addi


Sollte ich mir nun C, C# oder C++ aneignen, um weiterzukommen?

C ist schon die Richtige wahl,weil die IDE verwendet C++(C++ ist mit C kompatibel). C# würde ich
nicht lernen, weil es nur für Microsofts .Net Framework verfügbar ist. Wenn du C# lernen
möchtest wäre Gadgeteer etwas für dich.

Addi
/ \    _|  _| o
 /--\ (_| (_| |

Go Up