атмега8 ШИМ максимальная частота.

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Родился
Сообщения: 2
Зарегистрирован: Чт апр 16, 2009 23:45:38

Сообщение Rett »

Хочу сделать небольшой преобразователь как генератор хочу взять атмегу8 хотел бы узнать максимальную частоту ШИМа. и если можно то и код, желательно на gcc.
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 335
Зарегистрирован: Вт сен 11, 2007 10:27:08
Откуда: Киев

Сообщение __Alexander »

Частота шима задается таймером, частота таймера задается внутренним генератором или внешним кварцем. Вот и весь ответ.
Реклама
Родился
Сообщения: 2
Зарегистрирован: Чт апр 16, 2009 23:45:38

Сообщение Rett »

__Alexander писал(а):Частота шима задается таймером, частота таймера задается внутренним генератором или внешним кварцем. Вот и весь ответ.
хорошо, тогда сделать генератор на 100-200кГц на атмеге8 при 8МГц кварце будет без проблем.. правильно?
может есть какой-нибудь пример кода? а то смотрю в нете там только какие-то не-очень рабочие и до 58кГц
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 335
Зарегистрирован: Вт сен 11, 2007 10:27:08
Откуда: Киев

Сообщение __Alexander »

Непонятно только одно, если вам генератор нужен, то зачем ШИМ?

А пример кода вот:

ICR1 = 1000;
TCCR1A = 0xC2;
TCCR1B = 0x19;
TIMSK |= 0x04;

Этими регистрами задаете частоту и остальные параметры

OCR1A = 800;

Этим изменяете скважность.

А лучше в даташит.
Реклама
Эиком - электронные компоненты и радиодетали
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1148
Зарегистрирован: Вт июл 08, 2008 12:24:17

Сообщение Yellow Tiger »

__Alexander писал(а):Непонятно только одно, если вам генератор нужен, то зачем ШИМ?
Вероятно, за тем и ШИМ, что нужен не генератор:
Rett писал(а):Хочу сделать небольшой преобразователь
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3459
Зарегистрирован: Ср сен 27, 2006 16:18:57

Сообщение Барсик »

Если делать нормальный аппаратный ШИМ с регулировкой скважности от 1/255 до 255, то надо его делать на таймере 0. Максимальная частота при тактовой 8 МГц получится 8000/256 = 31 КГц. Если делать более "точный" ШИМ на таймере1, то частота будет ещё меньше...
Вот как я делал для ATtiny13:

Код: Выделить всё

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 9600,000 kHz
// Mode: Fast PWM top=FFh
// OC0A output: Non-Inverted PWM
// OC0B output: Disconnected
TCCR0A=0x83;
TCCR0B=0x01;
Реклама
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»