Lass mal dein Programm im Simulator vom AVR Studio 4 laufen und guck mal ob es dann da geht.
Oft sind es wirklich nur ein paar verwurstelte Bits, die das Problem machen.
Im Studio kannst Du die Reaktion deines Programms schritt für Schritt austesten.
Das hat mir bei der Fehlersuche schon oft geholfen.

Die Eingänge kannst Du durch manipulation der entsprechenden Portpins simulieren.

Der Simulator hat nur seine Schwächen, wenn die komunikation mit anderen Bausteinen getestet werden soll.