ШИМ на AT90s2313
ШИМ на AT90s2313
Здравствуйте, подскажите есть ли какая формула для того что бы по заданному периоду импульсов ШИМ на выходе микросхемы как то определиться в выборе частоты кварца и в програмном коэф. деления тактовой частоты. Допустим нужен период 10мс, какой частоты взять кварц и как выставить TCCR1B(коэф.деления СК) ?
И ещё, с установкой какого регистра начинает считать таймер? С TCCR1A ? т.е сначала прописываем TCCR1B, затем OCR1A, а как только TCCR1A -пошёл отсчёт. Так?
И ещё, с установкой какого регистра начинает считать таймер? С TCCR1A ? т.е сначала прописываем TCCR1B, затем OCR1A, а как только TCCR1A -пошёл отсчёт. Так?
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
Есть мастер начального кода - вот скриншот посмотрите
http://www.radiokot.ru/forum/viewtopic.php?t=10908
как использовать в задачах у меня в домашней страничке. ШИМ это задача 8.
http://www.radiokot.ru/forum/viewtopic.php?t=10908
как использовать в задачах у меня в домашней страничке. ШИМ это задача 8.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Про ШИМ на меге я читал, не понял только что такое N в формуле Fpfcpwm=Fclc/(2*N*TOP) ? Задание №8 посмотрел. Там конечно на С написаны программы ( я на ASMe ,в С не понимаю практически ничего) но оттуда выцепил ещё один регистр, и как я про него забыл? Теперь ясно--OCR1A-скважность, а регулировка частоты TCNT ?
А , например, при каком то событии мне нужно получить только 2 импульса на выходе ШИМ. Остальные не нужны. А потом ждать до следующего события . Далее повтор. Как их считать?
А , например, при каком то событии мне нужно получить только 2 импульса на выходе ШИМ. Остальные не нужны. А потом ждать до следующего события . Далее повтор. Как их считать?
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
Рома1001 писал(а):Про ШИМ на меге я читал, не понял только что такое N в формуле Fpfcpwm=Fclc/(2*N*TOP) ?
Как их считать?
Это делитель тактирующей частоты перед поступлением на счетчик - посмотрите как он настраивается интерактиными мастерамиhttp://www.radiokot.ru/forum/viewtopic.php?p=133862#133862
Там же советую и другие вопросы разрешить.
А то много топиков про ШИМ одновременно.
Рома1001 писал(а): Задание №8 посмотрел. оттуда выцепил ещё один регистр, и как я про него забыл?
Ну хоть в чем то пользя !
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
- sachok
- Опытный кот
- Сообщения: 849
- Зарегистрирован: Сб янв 05, 2008 11:05:15
- Откуда: Україна м.Луцьк
- Контактная информация:
Что бы не плодить много подобных тем напишу здесь. У меня проблема с ШИМ на Attiny2313. Нужно сделать приборчик (ну а для него программку) которая будет делать следующие функции:
нужно сделать 4 ШИМ канала скважность которых нужно изменять с помощью 8 кнопок (по 2 кнопки на канал одна увеличение, другая уменьшение).
потом с помощью фильтра сделать так что бы менялось напряжение от 0 до 5 В, которое естественно зависит от скважности. (сделано)
Кое что я сделал, но есть проблемы с регулировкой ШИМа. (исходник и файл proteus 7.4 SP3 во вложении). в переменную нужно помещать число от 0 до 1023 тогда скважность ШИМа будет: это число/10,23=х%. вот только с процедурой регулировки ШИМа у меня ничего не получается. если просто присвоить то всё работает по другому у меня не получается. помогите разобраться!
нужно сделать 4 ШИМ канала скважность которых нужно изменять с помощью 8 кнопок (по 2 кнопки на канал одна увеличение, другая уменьшение).
потом с помощью фильтра сделать так что бы менялось напряжение от 0 до 5 В, которое естественно зависит от скважности. (сделано)
Кое что я сделал, но есть проблемы с регулировкой ШИМа. (исходник и файл proteus 7.4 SP3 во вложении). в переменную
Код: Выделить всё
u_valКод: Выделить всё
u_val=100;- Вложения
-
- 4 PWM.rar
- (15.47 КБ) 214 скачиваний
Я не Сашок!!!
- sachok
- Опытный кот
- Сообщения: 849
- Зарегистрирован: Сб янв 05, 2008 11:05:15
- Откуда: Україна м.Луцьк
- Контактная информация:
Я же использую 2 таймера что бы получить 4 канала ШИМ, первый - 8-bit Timer/Counter0 with PWM отсюда в регистры :
нужно записывать число от 0 до 255.
Также я использую второй таймер - 16-bit Timer/Counter1 и здесь в регистры:
нужно записывать число от 0 до 1023 поскольку ШИМ стоит как fast PWM TOP 03FFh. Или я что то не понимаю???
Код: Выделить всё
OCR0A=0x00;
OCR0B=0x00; нужно записывать число от 0 до 255.
Также я использую второй таймер - 16-bit Timer/Counter1 и здесь в регистры:
Код: Выделить всё
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00; нужно записывать число от 0 до 1023 поскольку ШИМ стоит как fast PWM TOP 03FFh. Или я что то не понимаю???
Я не Сашок!!!
- sachok
- Опытный кот
- Сообщения: 849
- Зарегистрирован: Сб янв 05, 2008 11:05:15
- Откуда: Україна м.Луцьк
- Контактная информация:
Вот ещё (забил)
здесь переменная преобразуется в тип и будет взято младшее 8 бит.
Но проблема не в том!!! ШИМ работает, но не регулируется с помощью кнопок.
Код: Выделить всё
OCR1AH=(char)(u_val>>8);
OCR1AL=(char)u_val;здесь переменная
Код: Выделить всё
u_valКод: Выделить всё
charНо проблема не в том!!! ШИМ работает, но не регулируется с помощью кнопок.
Я не Сашок!!!