beide Reihenfolgen sind okay, aber das manuelle bit-setzen macht den code unleserlich, weil niemand weis welcher Pin 0b00000001 ist. Wichtig ist aber eigentlich nur immer die Pins erst Konfigurieren(DDR), dann Setzen(PORT).

Lesen geht immer, auch wenns auf Ausgang steht, macht aber nur wenig Sinn!

Den PWM Ausgang in PORT Register zu setzen hat nur die Wirkung, dass der Pin so lange an ist, bis das Timer Register programmiert wird. Im Datenblatt steht, dass der Timer die Port Funktion übersteuert und wirkungslos macht wenn der Ausgang als PWM benutzt wird.

Ob du PB0 oder OCRA0 als Makro verwendest ist je nach Prozessor abhängig! PB0 ist IMMER Port B Pin 0 aber OCR0A kann auf einem anderen Pin liegen, je nach Layout. Zum lesen den PIN Register oder schreiben des PORT Register ist das schlecht, denn diese Register arbeiten nicht sinnvoll mit PWM zusammen! Aber für das DDR Register ist es wiederum gut, weil der Code so portierbar wird für Prozessoren mit anderem Pin Layout!