tiny2313 3 канальный ШИМ

Обсуждаем контроллеры компании Atmel.
Ответить
Прорезались зубы
Аватара пользователя
Сообщения: 241
Зарегистрирован: Пт янв 18, 2008 01:41:27

Сообщение artmasterpro »

Привет. Подскажите мне барану пожалуйста:

Как мне получить 3 канальный ШИМ.
Сделал 1 канал на таймер0 и пытаюсь два других канала на таймер1.

Я ожидаю что таймер1 будет работать в fast PWM OCR1A так же как и таймер0.
два регистра, OCR1A и OCR1В - при достижении значения одного из них на соответствующей ноге появляется 1 итд.

На практике не могу ничего понять, работает только один из выходов или тот или другой.

Вообще у меня задача управлять RGB светодиодной лентой т.е. мне нужно чтоб я мог ууправлять яркостью каждого канала.

Помогите разобраться. Спасибо!
Главная заповедь электронщика:- Не крути две ручки сразу
Реклама
Опытный кот
Аватара пользователя
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Сообщение alex_ »

Я так полагаю, что как хочешь ничего не выйдет, тут только программно придётся выкручиваться :(
Вот ещё подобная тема, может чем и поможет: http://radiokot.ru/forum/viewtopic.php?p=1301472
Есть так же специализированные микросхемы, например: http://microsin.net/adminstuff/hardware ... river.html и стоят не дорого http://ru.aliexpress.com/item/Free-ship ... 24790.html?
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 672
Зарегистрирован: Ср фев 29, 2012 01:58:32
Откуда: Харьков, Украина

Сообщение eess9 »

Я в свое время три канала ШИМ настраивал так:

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

DDRB |= (1<<PB4)|(1<<PB3)|(1<<PB2);      

TCCR0A |= (1<<COM0A1)|(1<<COM0B1)|(1<<WGM01)|(1<<WGM00);
TCCR0B |= (1<<CS02);

OCR0A=eeprom_read_byte(&E1);

TCCR1A |= (1<<COM1A1)|(1<<COM1B1)|(1<<WGM10);
TCCR1B |= (1<<WGM12)|(1<<CS12);

OCR1A=eeprom_read_byte(&E2);
OCR1B=eeprom_read_byte(&E3);
Может быть, поможет вам :))
Прорезались зубы
Аватара пользователя
Сообщения: 241
Зарегистрирован: Пт янв 18, 2008 01:41:27

Сообщение artmasterpro »

Вставил ваш код http://take.ms/yiRWK
Ничего не получилось. - http://take.ms/9ox9c

Неужели на таймер1 никак нелзя настроить 2 независимых шима?
Не хотелось бы програмное решение т.к. загружать лишний ресурс.

или только програмное решение?
Главная заповедь электронщика:- Не крути две ручки сразу
Реклама
Эиком - электронные компоненты и радиодетали
Вымогатель припоя
Аватара пользователя
Сообщения: 672
Зарегистрирован: Ср фев 29, 2012 01:58:32
Откуда: Харьков, Украина

Сообщение eess9 »

А почему у меня работает? :))
Вложения
ATtiny2313_PWM.rar
(23.11 КБ) 142 скачивания
1.png
(223.29 КБ) 478 скачиваний
Реклама
Прорезались зубы
Аватара пользователя
Сообщения: 241
Зарегистрирован: Пт янв 18, 2008 01:41:27

Сообщение artmasterpro »

Елки палки, да работает :))) :))) :))) . Беру свои слова обратно!
Автору респект )))
Спасибо. буду разбираться сегодня что у меня его глушит!
Главная заповедь электронщика:- Не крути две ручки сразу
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 672
Зарегистрирован: Ср фев 29, 2012 01:58:32
Откуда: Харьков, Украина

Сообщение eess9 »

Всегда пожалуйста.
Обратите внимание, что в регистры TCCR1A и TCCR1В не стоит записывать больше чем 0х00FF, т.к. для синхронности работы с 0-м, этот таймер урезан до 8-ми битного состояния.
Прорезались зубы
Аватара пользователя
Сообщения: 241
Зарегистрирован: Пт янв 18, 2008 01:41:27

Сообщение artmasterpro »

Ага....а я то думал как этого достичь, но не то писал!
Спасибо!
Главная заповедь электронщика:- Не крути две ручки сразу
Ответить

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