Страница 1 из 1

ШИМ на AT90s2313

Добавлено: Ср окт 01, 2008 19:49:57
Рома1001
Здравствуйте, подскажите есть ли какая формула для того что бы по заданному периоду импульсов ШИМ на выходе микросхемы как то определиться в выборе частоты кварца и в програмном коэф. деления тактовой частоты. Допустим нужен период 10мс, какой частоты взять кварц и как выставить TCCR1B(коэф.деления СК) ?
И ещё, с установкой какого регистра начинает считать таймер? С TCCR1A ? т.е сначала прописываем TCCR1B, затем OCR1A, а как только TCCR1A -пошёл отсчёт. Так?

Добавлено: Ср окт 01, 2008 20:01:33
tych
Есть мастер начального кода - вот скриншот посмотрите
http://www.radiokot.ru/forum/viewtopic.php?t=10908

как использовать в задачах у меня в домашней страничке. ШИМ это задача 8.

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

Добавлено: Ср окт 01, 2008 21:23:34
tych
Рома1001 писал(а):Про ШИМ на меге я читал, не понял только что такое N в формуле Fpfcpwm=Fclc/(2*N*TOP) ?

Как их считать?


Это делитель тактирующей частоты перед поступлением на счетчик - посмотрите как он настраивается интерактиными мастерамиhttp://www.radiokot.ru/forum/viewtopic.php?p=133862#133862

Там же советую и другие вопросы разрешить.

А то много топиков про ШИМ одновременно.

Рома1001 писал(а): Задание №8 посмотрел. оттуда выцепил ещё один регистр, и как я про него забыл?

Ну хоть в чем то пользя !

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

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

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

u_val=100;
то всё работает по другому у меня не получается. помогите разобраться!

Добавлено: Сб янв 03, 2009 22:48:39
NiTr0
sachok писал(а):нужно помещать число от 0 до 1023

А с каких это пор ШИМ отрастил себе 10-битный регистр? Там 8 бит вроде как всегда было... Итого - от 0 до 255. Хотя лучше ИМХО от 5 до 250, оставив крайние 10 единиц незадействованными из-за слишком коротких импульсов...

Добавлено: Вс янв 04, 2009 11:45:34
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. Или я что то не понимаю???

Добавлено: Вс янв 04, 2009 14:32:00
sachok
Вот ещё (забил)

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

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

здесь переменная преобразуется в тип и будет взято младшее 8 бит.
Но проблема не в том!!! ШИМ работает, но не регулируется с помощью кнопок.

Добавлено: Вс янв 04, 2009 14:48:02
NiTr0
Таки да... Но тогда лучше урезать 2й таймер тоже до 8 бит (для упрощения - 256 значений ИМХО хватит)
И попробуйте в авр студио просимулировать программу...

Добавлено: Вс янв 04, 2009 17:05:36
sachok
Всё разобрался:) NiTr0 спасибо за участие.

Добавлено: Ср янв 07, 2009 00:22:06
TechMike
sachok писал(а):Всё разобрался:) NiTr0 спасибо за участие.


Результат плс в студию, для поиска и истории останется.

Добавлено: Ср янв 07, 2009 18:11:20
sachok
вот то что у меня получилось