Попытался покопать документацию, но так и не пришло ясного осознания, как манипулировать TCCR2A, TCCR2B и сколько класть на прерывании в TCNT2, чтобы иметь конкретную (хотя бы приблизительно) частоту софтового ШИМ. С TCNT2 и pwm_time в общем-то разобрался, но при условии что знаю частоту таймера. Частота таймера, как понимаю, получается из частоты кварца, делённой на некий делитель, запрятанный в регистрах TCCR2A и/или TCCR2B. А вот с ними запутался...
Chip, можно прокомментировать строки:
TCCR2A &= ~((1<<WGM21) | (1<<WGM20));
TCCR2B &= ~(1<<WGM22);