Es reicht 1 Thread pro Thema, es ist sinnlos 2 mal das gleiche zu posten.

Jetzt zum eigentlichen Thema.

1) Du hast bei ICR einen Floatwert, das ICR Register kann aber nur Integerwerte verarbeiten. Hier ist es aber egal, weil es in 415 geändert wird.
2) Du hast eingestellt das 415,667 dein TOP Wert ist, bedeutet das er bei 0 beginnt und bei 415 einen Überlauf hat. Somit musst du mit 415 und nicht 255 als Maximalwert rechnen.
3) Was ich auch nicht verstehe ist was du in der Funktion "writePwminverted" vorhast. Du schaltest den Ausgang B ab und in der nächsten Zeile wieder ein, was hat das für einen Sinn?

Was du auch machen kannst um den Ausgang ganz abzuschalten. Im TCCR1A Register schaltest du den Port wieder auf "Normal Operation" um (also trennen vom Timer) und dann kannst du den Ausgang direkt ein bzw ausschalten. Das kannst du auch in eine eigene Funktion packen.

Also z.B.
Led == 0% => Ausgang auf "normal operation" stellen, Ausgang = 1
Led == 100% => Ausgang auf "normal operation" stellen, Ausgang = 0
Led > 0% && Led < 100% => Ausgang auf PWM stellen, Vorgabewert in OCR1A schreiben (1...414)

MfG Hannes