Der er stor forskel på C og C#. C# er alt for komplekst et sprog til 8bit microcontrollere.
En compiler laver kode om til assembler kode. Assembler kode er små instruktioner som kun gør en enkelt ting hver. Det kan være meget svært at programmere assembler men det kan til tider være meget bedre kode man får lavet hvis man laver det i Assembler selv
Typisk vil du bare skrive dit microcontroller kode i C og sende det gennem compileren som så genererer Assembler kode som bagefter bliver lavet om til binær kode som microcontrolleren kan forstå.
Derefter kan du så brænde den binære kodefil ned på microcontrolleren hvorefter microcontrolleren så vil udføre den kode du har skrevet
Der burde findes et hav af bøger omkring C. Måske ikke så mange specifikt med henblik på at programmere microcontrollere, men det er heller ikke voldsomt vigtigt. Hvis du bare programmerer C så vil mange af de samme principper kunne bruges direkte fra programmer som kan laves til en normal computer. Hvis du kan finde en god bog om C så vil det helt sikkert være en hjælp.
Jeg ville selv kikke efter tutorials på nettet omkring udvikling i C. Det minder meget om PHP hvilket du sikkert kan en del af i forvejen. Prøv evt. og kikke på
http://arduino.cc/ under learning sektionen hvor der er både eksempler på programmer og links til gode tutorials