Wenn man die ISRs nicht ordnungsgemäß wieder verläßt, wird der Stack irgenwann überlaufen. Das ist zumindestens bei clslatch der Fall.
Das CLI am Anfang der ISR ist unnötig, das I Flag ist schon gelöscht.

Hinter dem Sleep ist das programm einfach zuende, da muß eigentlich noch ein jump noch oben hin, denn nach einem Timer Interrupt geht es da weiter.

Der AD Wandler wird so weit ich sehr nie eingeschaltet, sondern nur der Teiler gesetzt-