Помогите с шимом на atmega 8

Обсуждаем контроллеры компании Atmel.
Ответить
Встал на лапы
Аватара пользователя
Сообщения: 147
Зарегистрирован: Вс мар 09, 2014 09:13:00

Сообщение DenChik87 »

Помоните сделать быстрый шим на ассеблере. Нужно сделать чтобы он рос от нуля до маесимума, затем наобарот с максимома до нуля уменьшался и т.д. Я написал коротеечную программу прикррепленную ниже. Но в ней шим доходит до максимума, а затем снова начинает с нуля, как на 2ом прикрепленном рисунке (симулировал в протеусе). В AVR студио все вроде работает. Если распологаете временем подскажите в чем ошибка. Или ссылочку где прочитать как это сделать правильно.
Вложения
прога в асме.png
(50.54 КБ) 197 скачиваний
Так прога работает в протеусе.png
(51.68 КБ) 256 скачиваний
Реклама
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

Сообщение dgrett »

Так вам phase correct pwm не подойдёт? Он в 2 раза медленнее, правда. Для этого сбросьте wgm21 и больше никаких плясок. Откуда будете брать OCR2- с ADC или ещё как - ваша боль. Да, ссылка.. Могу только на даташит сослать :)
Я всё-всё узнAю и стану профессором.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15697
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Размести буфер данных для OCR.... в регистровой паре r25:r24 и при каждом прерывании выполняй модификацию содержимого командами adiw/sbiw на +/-1 с последующей загрузкой содержимого буфера в компаратор. Естественно тот декремент/инкремент должен соответственно проверяться на границы допустимого диапазона - нуль и переполнение.
Вот как-то так...
:dont_know:
Ответить

Вернуться в «AVR»