Also für die Aufgabe die dein Roboter erfüllen soll, reicht es am Anfang, wenn du wirklich nur die Grundlagen von C lernst.

Sprich vor allem:

  • Das Dualsystem verstehen
  • main () und Unterprogramme
  • Variablen, damit rechnen
  • if / for / while usw.
  • logische Verknüpfungen, sprich & | usw
  • Wenn du schon ein paar LEDs blinken hast lassen usw. mal mit Pointern (Zeigern) beschäftigen

Mehr brauchst du für den Anfang eigentlich garnicht... Denn der Rest ist Controller-Spezifisch, d.h. z.B.

  • Wie sage ich einem Pin, ob er ein Eingang oder Ausgang ist
  • Wie kann ich ihn high&low und auslesen

Wenns dann mal an so Sachen wie mit den PC kommunizieren, ein Rechtecksignal mit einem Timer ausgeben, eine analoge Spannung einlesen usw geht - das lernst du in keinem normalen C-Tutorial. Da musst du dir extra für die AVRs eins raussuchen und im Datenblatt nach den jeweiligen Registern sehen (Ist garnicht so schwer )

Von dem her sollte das hier nicht schlecht sein:
http://www.mikrocontroller.net/artic...R-GCC-Tutorial

Dort steht auch am Anfang:
Vorausgesetzt werden Grundkenntnisse der Programmiersprache C. Diese Kenntnisse kann man sich online erarbeiten, z. B. mit dem C Tutorial von Helmut Schellong (Liste von C-Tutorials). Nicht erforderlich sind Vorkenntnisse in der Programmierung von Mikrocontrollern, weder in Assembler noch in einer anderen Sprache.
Wie das Tutorial von Helmut Schellong ist weis ich nicht, aber wird wohl nicht schlecht sein wenn es dort so schön verlinkt wird

Und leg dir auch einen Controller (Atmega8 / 32 oder sowas) zu, C lernen ohne es Auszuprobieren führt zu nichts...

Viele Grüße
-schumi-