OCR0A ist deine obere Grenze bist zu der der timer hinauf zählt.
OC0B wird beim Erreichen von OCR0B gelöscht und beim Überlauf (OCR0A + 1) wieder gesetzt.
Du müsstest also die LED an OC0B hängen und COM0B1 anstatt COM0A1 setzen. Dann würde das Ganze prinzipiell einmal funktionieren.
Ansonsten:
Wieso setzt du OCR0A extra als obere Grenze wenn du sowieso bis 255 zählst und betreibst das Ganze nicht gleich im mode 3 laut Datenblatt?
Interrupts musst du jetzt auch nicht global freischalten wenn du gar keinen Interrupt behandelst.
Die Variable i als globale Variable ist jetzt auch unnötig.
Lesezeichen