Zitat Zitat von Michitux
Doch was mir jetzt wirklich Probleme macht, ist, wie ich die I/O's verwenden soll und wie ich das ganze initialisieren muss - diese ganzen Nummern sind mir echt ein Rätsel!
Meinst du z.B. sowas:

Code:
	DDRD = 0x81;
	PORTD = 0xFF;

	ADMUX = 0x07;
	ADCSRA = 0xE7;
und wenn ja, was genau verstehst du daran nicht?

In dem Beispiel z.B. wird dem DDRD Register der Wert 0x81 zugewiesen, was der Dezimalzahl 129 bzw. dem Bitmuster 10000001 entspricht.
Das bedeutet, daß die Pins 0 und 7 von PortD als Ausgänge und alle anderen Pins als Eingänge verwendet werden.
Dann kommt das PORTD Register, in das in diesem Fall einfach nur FF geschrieben wird (= 255 = 11111111).
Damit werden die als Ausgänge verwendeten Pins auf High gesetzt, und bei den Eingängen die internen PullUp-Widerstände aktiviert.

Wenn man wissen will was die beiden folgenden Zeilen bedeuten, muss man nur kurz im Datenblatt nachschauen.
Da steht genau welche Bits in diesen Registern welche Bedeutung haben.
(da sind immer ein paar schöne Tabellen in denen das haarklein beschrieben ist)
Mit ADMUX = 0x07 z.B. wird Pin 7 von PortA für die AD-Wandlung ausgewählt.


Es ist im Prinzip ganz einfach...
1. überlegen was man will
2. im Datenblatt nachschauen wie das geht
3. programmieren (= die richtigen Bits in den richtigen Registern setzen)