реклама на сайте
подробности

 
 
> Случайные числа и плавный переход
Krik99
сообщение Feb 9 2013, 19:27
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 45
Регистрация: 11-05-08
Из: Украина
Пользователь №: 37 411



Здравствуйте. Помогите с алгоритмом... собственно есть программный 8-ми канальный ШИМ, необходимо случайным образом вносить изменения в значения каждого из ШИМ каналов одновременно, но значения каждого канала полностью случайны, и к тому же нужно плавно переходить от предыдущего значения к новому. Пишу под CVAVR, помогите хотябы на пальцах с алгоритмом, а то нечего не приходит в голову( С одним каналом все норм, а вот когда их 8.... За ранние спасибо!


--------------------
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ARV
сообщение Feb 9 2013, 19:37
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



когда я делал свою лампу настроения, то для плавного перехода между цветами использовал алгоритм Брезенхама. думал, что компактней не придумешь - в тини13 влезло. однако, оказалось, что обычные целочисленные вычисления над long-ами тоже вмещается в тини13... в общем, алгоритм прост до безобразия, привожу в "неэкономном" варианте...
дано: U - текущий уровень канала (скважность ШИМа), u - уровень, к которому ШИМ-канал должен прийти "плавно".
решение:
1. вводим дополнительное условие: любые переходы между цветами должны делаться за N элементарных шагов.
2. вычисляем приращение уровня float delta = (u - U)/(float)N;
3. реализуем тупой цикл плавного перехода for(i=0; i<N; i++){PWM += delta; delay();}
если каналов несколько - храним соответствующие значения в массиве и в цикле планых переходов обрабатываем весь массив для всех каналов

как-то так вот...


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 16:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.0137 секунд с 7
ELECTRONIX ©2004-2016