ldi tmp, 255-tonwert ;Timer mit dem aktuellen Tonwert vorladen
Er meckert, weil tonwert eine Variable ist, die erst zum Zeitlauf geändert wird,
woher soll der Assembler wissen, was mit tonwert gemeint ist.
Es gab da aber ein Assemblerbefehl fürs Subtrahieren .......

Edit: noch schlimmer, tonwert ist ein register,
Du versuchst von 255 einen register abzuziehen.....