на пальцах - то что зовут таймером, таймером-счетчиком, по сути - именно счетчик.
на его вход подается либо частота от тактового генератора МК (которую можно предварительно поделить см. предделитель = prescaler), либо внешние сигналы.
для генерации ШИМ подаем частоту от тактового генератора...
далее, с каждым тактом значение счетчика увеличивается на 1.. счетчик в общем случае считает от нуля до максимального значения, последнее можеь быть как 2^8 - 1 для 8 битного и 2^16 - 1 для 16-ти битного, так и меньшим, если это позволяет устройство таймера счетчика или выбранный режим.
когда насчитанное счетчикм значение совпадает с заданным в регистрах сравнения значением, сигнал на выходе сбрасывается в 0 и восстанавливается при переполнении (когда счетчик досчитает до максимального значения следующий такт сбросит его в 0)
что вам нужно сделать:
- настроить регистры так, чтобы счетчик работал в режиме ШИМ (FastPWM я думаю будет для вас оптимальным для начала)
- разрешить счетчику дергать ножки контроллера
- задать источник тактовых импульсов для счетчика (там же выбирается предделитель)
ну а в целом -
http://www.atmel.com/images/doc2505.pdf