Welcher Timer für was?

Wenn du Kanal B Toggeln willst musst du glaube ich auch das Compare Match B Register beschreiben. Die Pins schalten jeweils wenn ihr zugehöriges Register einen bestimmten Wert erreicht

Außerdem hast du auf dem Mega auf den 16 Bit Timern auch einen Kanal C. Also bis zu 3 Pins pro Timer.

Und das ist Blödsinn:

(0 << COM1A1)

Denke mal nach was du machst!

Ein Bit löschen geht so:

register &= ~(1 << COM1A1)

Und mit dem Inversen

Da du vorher das ganze Register auf 0 gesetzt hast, brauchst du das aber nicht