
Возможно кому-нибудь пригодится
LCD 8х2 WH0802A или 16х2 WH1602A
Кнопка Mode - вкл/выкл выхода.
Кнопки Freq-, Freq+ изменение частоты. Шаг 1 Гц (10, 100 Гц).
Кнопки Duty-, Duty+ изменение коэффициента заполнения ШИМ. Шаг 1% (5%).
Если долго держать кнопку, шаг увеличивается.
Частота и ШИМ сохраняются в EEPROM через 2 сек после изменения частоты или ШИМ (чтобы не записывать слишком часто)
На низкой частоте используется делитель /8, /64, /256
Версия с одним каналом PB2:
Частота: 1 Гц...1.6 МГц ((F_CPU/10)). Можно поднять до Fmax= F_CPU/4 по datasheet
Fast PWM Mode
Длительность импульса минимум 1 такт. ШИМ 1...99%
Версия с двумя каналами PB1, PB2:
Частота: 1 Гц...800 кГц ((F_CPU/20)). Fmax= F_CPU/8
Phase and Frequency Correct PWM Mode
Длительность импульса минимум 2 такта. ШИМ 1...50%
Частоту можно поднять до F_CPU/4
2-х канальный ШИМ сыроват и возможны глюки на высоких частотах
из-за особенностей ICR1.
Наверное лучше 1 канал ШИМ + схема деления на канала: 74AC74 + 74AC08.
Проекты в Atmel_Studio7:


