Den Code habe ich im ersten Beitrag jetzt nochmal aktualisiert.
Der Teil mit dem Debounce-Befehl klappt jetzt soweit an den anderen Pins. Das einzige Problem ist noch, dass der Lautsprecher aus der "Fussgaenger"-Routine beim zurückkehren ins Hauptprogramm nocheinmal invertiert wird, allerdings nur wenn Var<x oder Var <=y ist (wobei x=ungerade Zahl 1,3,5,... und y=gerade Zahl 2,4,6,...) ansonsten klappt es. Aber das ist eigentlich nur nebensächlich.

Das große Problem ist immer noch der Teil mit den Interrupts. Wenn man die Benutzen möchte muss man die Taster soweit ich weiß ja an PD2/INT0 bzw. PD3/INT1 (ATmega anschließen.
Das Problem ist immer noch, dass die Subroutinen einfach selbstständig anfangen zu laufen und das noch nicht einmal nach einem bestimten Schema (mal die eine, dann die andere, mal bleibt er länger in der Hauptschleife und mal so kurz, dass man noch nicht einmal sieht, dass die LED angeht).
Was ich später gerne machen würde ist das Programm bei "Ampelaus" in den Power-down Mode zu bringen und dafür brauche ich ja die Interrupts.
Und dann nochmal etwas nebensächliches: Wenn die Ampel aus ist möchte ich auch gerne direkt von dort aus in die "Fussgaenger"-Routine springen können (im Programm ist das der auskommentierte Teil). Ich bin mir aber nicht sicher ob man das so machen kann, weil man dann ja zweimal ein Subfunktion aufgerufen hätte, aber am Ende nur ein "End Sub" (als erstes "Call Ampelaus", dann "Call Fussgaenger" und dann einmal "End Sub")
Ich hoffe ich habe mich irgendwie verständlich ausgedrückt

Hat dazu noch irgendjemand eine Idee?