Синтаксис - это как "уметь ходить" в шахматах. Без этого никуда, но этого мало. Я тоже в шахматах "ходун" еще тот.
.
По сути. Смотрим дизассемблер. Мой вариант:
TCCR1A = 1<<COM1A1|0<<COM1A0|1<<COM1B1|0<<COM1B0|1<<WGM11|0<<WGM10;
0000001A LDI R24,0xA2 Load immediate
0000001B OUT 0x2F,R24 Out to I/O location
Все, две команды. Теперь твой вариант:
TCCR0A |= (1<<COM0A1);
0000001A IN R24,0x30 In from I/O location
0000001B ORI R24,0x80 Logical OR with immediate
0000001C OUT 0x30,R24 Out to I/O location
TCCR0A &= ~(1<<COM0A0);
0000001D IN R24,0x30 In from I/O location
0000001E ANDI R24,0xBF Logical AND with immediate
0000001F OUT 0x30,R24 Out to I/O location
TCCR0A |= (1<<COM0B1);
00000020 IN R24,0x30 In from I/O location
00000021 ORI R24,0x20 Logical OR with immediate
00000022 OUT 0x30,R24 Out to I/O location
TCCR0A &= ~(1<<COM0B0);
00000023 IN R24,0x30 In from I/O location
00000024 ANDI R24,0xEF Logical AND with immediate
00000025 OUT 0x30,R24 Out to I/O location
TCCR0A |= (1<<WGM01)|(1<<WGM00);
00000026 IN R24,0x30 In from I/O location
00000027 ORI R24,0x03 Logical OR with immediate
00000028 OUT 0x30,R24 Out to I/O location
Оптимизация по умолчанию, О1.