ШИМ на AT90s2313

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Аватара пользователя
Рома1001
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Вс сен 21, 2008 13:19:20

ШИМ на AT90s2313

Сообщение Рома1001 »

Здравствуйте, подскажите есть ли какая формула для того что бы по заданному периоду импульсов ШИМ на выходе микросхемы как то определиться в выборе частоты кварца и в програмном коэф. деления тактовой частоты. Допустим нужен период 10мс, какой частоты взять кварц и как выставить TCCR1B(коэф.деления СК) ?
И ещё, с установкой какого регистра начинает считать таймер? С TCCR1A ? т.е сначала прописываем TCCR1B, затем OCR1A, а как только TCCR1A -пошёл отсчёт. Так?
Аватара пользователя
tych
Э...
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва
Контактная информация:

Сообщение tych »

Есть мастер начального кода - вот скриншот посмотрите
http://www.radiokot.ru/forum/viewtopic.php?t=10908

как использовать в задачах у меня в домашней страничке. ШИМ это задача 8.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Аватара пользователя
Рома1001
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Вс сен 21, 2008 13:19:20

Сообщение Рома1001 »

Про ШИМ на меге я читал, не понял только что такое N в формуле Fpfcpwm=Fclc/(2*N*TOP) ? Задание №8 посмотрел. Там конечно на С написаны программы ( я на ASMe ,в С не понимаю практически ничего) но оттуда выцепил ещё один регистр, и как я про него забыл? Теперь ясно--OCR1A-скважность, а регулировка частоты TCNT ?
А , например, при каком то событии мне нужно получить только 2 импульса на выходе ШИМ. Остальные не нужны. А потом ждать до следующего события . Далее повтор. Как их считать?
Аватара пользователя
tych
Э...
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва
Контактная информация:

Сообщение tych »

Рома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
Откуда: Україна м.Луцьк
Контактная информация:

Сообщение sachok »

Что бы не плодить много подобных тем напишу здесь. У меня проблема с ШИМ на Attiny2313. Нужно сделать приборчик (ну а для него программку) которая будет делать следующие функции:
нужно сделать 4 ШИМ канала скважность которых нужно изменять с помощью 8 кнопок (по 2 кнопки на канал одна увеличение, другая уменьшение).
потом с помощью фильтра сделать так что бы менялось напряжение от 0 до 5 В, которое естественно зависит от скважности. (сделано)

Кое что я сделал, но есть проблемы с регулировкой ШИМа. (исходник и файл proteus 7.4 SP3 во вложении). в переменную нужно помещать число от 0 до 1023 тогда скважность ШИМа будет: это число/10,23=х%. вот только с процедурой регулировки ШИМа у меня ничего не получается. если просто присвоить

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

u_val=100;
то всё работает по другому у меня не получается. помогите разобраться!
Вложения
4 PWM.rar
(15.47 КБ) 213 скачиваний
Я не Сашок!!!
Аватара пользователя
NiTr0
Друг Кота
Сообщения: 3051
Зарегистрирован: Пт авг 10, 2007 12:49:55
Откуда: kr.ua
Контактная информация:

Сообщение NiTr0 »

sachok писал(а):нужно помещать число от 0 до 1023

А с каких это пор ШИМ отрастил себе 10-битный регистр? Там 8 бит вроде как всегда было... Итого - от 0 до 255. Хотя лучше ИМХО от 5 до 250, оставив крайние 10 единиц незадействованными из-за слишком коротких импульсов...
Аватара пользователя
sachok
Опытный кот
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк
Контактная информация:

Сообщение sachok »

Я же использую 2 таймера что бы получить 4 канала ШИМ, первый - 8-bit Timer/Counter0 with PWM отсюда в регистры :

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

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
Откуда: Україна м.Луцьк
Контактная информация:

Сообщение sachok »

Вот ещё (забил)

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

OCR1AH=(char)(u_val>>8);
OCR1AL=(char)u_val;

здесь переменная преобразуется в тип и будет взято младшее 8 бит.
Но проблема не в том!!! ШИМ работает, но не регулируется с помощью кнопок.
Я не Сашок!!!
Аватара пользователя
NiTr0
Друг Кота
Сообщения: 3051
Зарегистрирован: Пт авг 10, 2007 12:49:55
Откуда: kr.ua
Контактная информация:

Сообщение NiTr0 »

Таки да... Но тогда лучше урезать 2й таймер тоже до 8 бит (для упрощения - 256 значений ИМХО хватит)
И попробуйте в авр студио просимулировать программу...
Аватара пользователя
sachok
Опытный кот
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк
Контактная информация:

Сообщение sachok »

Всё разобрался:) NiTr0 спасибо за участие.
Я не Сашок!!!
TechMike
Прорезались зубы
Сообщения: 247
Зарегистрирован: Сб дек 15, 2007 23:00:54
Откуда: Moscow
Контактная информация:

Сообщение TechMike »

sachok писал(а):Всё разобрался:) NiTr0 спасибо за участие.


Результат плс в студию, для поиска и истории останется.
Аватара пользователя
sachok
Опытный кот
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк
Контактная информация:

Сообщение sachok »

вот то что у меня получилось
Вложения
untitled.c
(3.17 КБ) 322 скачивания
Я не Сашок!!!
Закрыто

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