Hallo Mario,
das einzige was hier "Schrott und Blödsinn" ist, sind die Kommentare von
0x4E(Gast) zu deinem Code (die Links zu den Büchern sind allerdings
empfehlenswert). Mir geht immer der Hut hoch wenn ich so respektloses
Geschreibsel sehe.
Ich heiße dich als Einsteiger herzlich willkommen.
Auch wenn dein Code etwas eigenartig ist, das ist egal. Während der
Lernphase muss man alles ausprobieren, nur so lernt man was.
Da deine LEDs bereits wie gewünscht blinken, gehts also nur mehr um den
Schalter.
Dazu stellst du zunächst den Port A0 auf Eingang, was
du mit DDRA = 0 bereits richtig gemacht hast.
Danach schreibst du PORTA = 0xFF. Damit schaltest du die internen
Pullups ein. Wenn dein Schalter gegen Masse schaltet ist auch das
richtig.
Jetzt muss du nur mehr den PINA0 abfragen, und je nach Wert dein
Programm in einer while Schleife warten lassen, fertig.
z.B. so:
while((PINA & 1) == 1);
oder in Kurzform, was das gleiche ist:
while(PINA & 1);
das kommt dort rein, wo du bereits den entsprechenden Kommentar in
deinem Programm reingeschrieben hast.
solange das Bit 0 von Port-A auf 1 ist (der Schalter ist offen und der
Pullup zieht den Eingang auf 1) kreiselt er endlos in der while
Schleife. Sobald du den Schalter zumachst, wird die while Schleife nicht
mehr ausgeführt und dein Code für die LEDs wird wieder laufen.