Klar hat const einen Sinn. Du willst ja auch Deine Arrays im Flash ablegen, Du mußt es aber dem Kompiler so mitteilen:
Code:
const uint8_t beispiel PROGMEM = 255;
Willst Du z.B. die Konstante auf ein Port ausgeben mußt Du es mit
pgm_read_byte() auslesen z.B. so
Code:
PORTB = pgm_read_byte(&beispiel);
Wichtig ist, daß Du pgm_read_byte einen Zeiger auf die Flashadresse übergibst.
Nachlesen kannst Du es z.B. hier

Tja, Buch...
Vergiss es, es gibt kein Buch, das von C und AVR handelt.
Ich kann Dir wirklich das obengenannte Werk "Programmieren in C" von den Vätern der Sprache empfehlen, klar ist es für PC gedacht, es macht aber nichts, die Unterschiede sind nicht so groß.
Dafür gibt es das Tutorial auf www.mikrocontroller.net und die AVR libc Doku auf http://www.nongnu.org/avr-libc/user-manual/index.html
Gruß Sebastian
P.S.
Am Anfang erschlagt einem der Umfang von den neuen Befehlen
In C gibt es etwa 30 Befehle, das ist doch nicht viel, oder

Schon klar, aber ich habe halt da einen Code in Bascom der da funktioniert und denn will ich als erste Aufgabe, in C mal umschreiben.
Manchmal kann man Sachen nicht 1:1 übersetzen, man muß halt komplett umdenken.

P.P.S Irgendwo hab ich noch meinen Code für eine Propelleruhr, da hab ich es ähnlich gemacht, muß mal morgen danach gucken, kannst Du Dir als Beispiel anschauen.