Hallo Pebisoft

TCNT0 = -2; // 2 * 256 = 512 cycle

bewirkt nur, das in TCNT0 der Wert 254 eingetragen wird. Dieser entspricht dem Zweierkomplement von -2.

Ist nur für den besseren Überblick.Man braucht halt nicht immer zu rechenen. 256 - x = irgendwas

Die 512 Takte kommen in deinem Fall
nur Zustande, wenn der Vorteiler auf 256 gestellt wird.

Wie Peter Dannegger es in seinem RC5 Code es ja auch gemacht hat mit

TCCR0 = 1<<CS02; //divide by 256

MFG
Dieter