Den bog vi har brugt på DTU til programmering af microcontrollere er "C in a nutshell"
http://oreilly.com/catalog/9780596006976/Den henvender sig ikke direkte til opsætningen af registrene på en mikrocontroller hvis det er det som du har behov for at lære så må du læse datasheet og evt. finde en compiler som kan hjælpe dig med dette.
Med hensyn til udviklingsboards findes der uendelig mange. Hvilke funktioner vil du gerne have.
Seriel
VGA
Eathernet
# Digitale porte
# Analoge porte
USB
SD-kort læser
# LysDioder
# Knapper, Switche eller knapper?
Da jeg starte med at programmere mikroprocessorer valgte jeg at købe et arduinoboard. Dette er et lille boarde med nogle digitale porte og analoge porte. Samt en seriel forbindelse som bliver oprettet til en computer via USB.
Det er der for sin vis ikke noget vildt i men det fantastiske med en arduino er at der ligger en bootloader på, dvs. der findes en del funktioner man kan kalde som så er indbygget og det er tit nogle af disse der kan være svære at sætte op i starten. Samtidigt er der et stort forum på
www.arduino.cc hvor der er utallige eksempler så jeg kan da anbefale dig at kigge der.
Hvis du iforvejen er dygtig C programmør skal du ikke købe et sådan board. Fordi så kan du koncentrere dig om registre, flag osv på mikroprocessoren og ikke selve C koden. Skal du lære begge dele så vil jeg anbefale dig at starte med et sådan board.