@Jagdfalke
die variable vom typ word hat 16 Bit (2^16 = 65535, also von 0 bis 65535). Da der Wert eigentlich nur eine 8 Bit Variable sein sollte (0 bis 255) müsste Byte als Typ für W eigentlich stimmen.
Wenn der ATMega16 8 Bit ADCs hätte, würde deine Theorie aufgehen. Da er aber 10 Bit ADCs hat, gehts von 0 - 1023. Dafür reicht deine Byte-Variable nicht aus und deshalb läüft sie über und nach 255 gehts wieder bei 0 los.