Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

помогите оптимизировать прогу для ШИМа...

Непрочитано 27.06.2012, 01:59  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
Печаль помогите оптимизировать прогу для ШИМа...

Я написал прогу для 3-ех ШИМ. Управляю RGB-светодиодом. Строк получилось штук 30 и заняло памяти в атмеге 8 20%. Кто-нибудь может подсказать как лучше оптимизировать код?.... скажем так по универсальнее его может сделать...

пример куска кода )))
if ((RED==255)&&(GREEN==255)&&(BLUE==255)&&(R==0)&&(G ==0)&&(B==0)&&(C==0)) {RED-=15;C=1;};

if ((RED›0)&&(RED‹255)&&(GREEN==255)&&(BLUE==255)&&(R ==0)&&(G==0)&&(B==0)&&(C==0)) {RED-=15;C=1;};

if ((RED==0)&&(GREEN==255)&&(BLUE==255)&&(R==0)&&(G== 0)&&(B==0)&&(C==0)) {R=1;C=1;};

if ((RED==0)&&(GREEN==255)&&(BLUE==255)&&(R==1)&&(G== 0)&&(B==0)&&(C==0)) {GREEN-=15;C=1;};
Реклама:
miwutka вне форума  
Сказали "Спасибо" miwutka
warel (29.06.2019)
Непрочитано 27.06.2012, 02:14  
nonamedov
Почётный гражданин KAZUS.RUN
 
Регистрация: 06.06.2008
Сообщений: 1,519
Сказал спасибо: 76
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: помогите оптимизировать прогу для ШИМа...

Сообщение от miwutka Посмотреть сообщение
Строк получилось штук 30 и заняло памяти в атмеге 8 20%. Кто-нибудь может подсказать как лучше оптимизировать
Поздравляю, у Вас талант на самое быстрое заполнение памяти МК.
А если серьезно, эти строки ни о чем не говорят, выложите всю программу.
nonamedov вне форума  
Сказали "Спасибо" nonamedov
warel (29.06.2019)
Непрочитано 27.06.2012, 02:23  
nonamedov
Почётный гражданин KAZUS.RUN
 
Регистрация: 06.06.2008
Сообщений: 1,519
Сказал спасибо: 76
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: помогите оптимизировать прогу для ШИМа...

Хотя нет, можно, преписав эти строки на ассемблере.
nonamedov вне форума  
Сказали "Спасибо" nonamedov
warel (29.06.2019)
Непрочитано 27.06.2012, 02:37  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: помогите оптимизировать прогу для ШИМа...

решено своими силами обошлось в 10 строк ))

Последний раз редактировалось miwutka; 28.06.2012 в 11:53.
miwutka вне форума  
Сказали "Спасибо" miwutka
warel (29.06.2019)
Непрочитано 27.06.2012, 02:39  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: помогите оптимизировать прогу для ШИМа...

вот весь код. По нажатию на кнопку происходит пошаговое изменение цвета на светодиоде-РЖБ. Хочу оптимизировать както.......
miwutka вне форума  
Сказали "Спасибо" miwutka
warel (29.06.2019)
Непрочитано 27.06.2012, 11:57  
niXto
Почётный гражданин KAZUS.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: помогите оптимизировать прогу для ШИМа...

А разве в меге8 нет аппаратных шимов? Или возьми мегу48 у нее 6 шимов, вообще ничего тормозить не будет
niXto вне форума  
Сказали "Спасибо" niXto
warel (29.06.2019)
Непрочитано 27.06.2012, 11:59  
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,327
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: помогите оптимизировать прогу для ШИМа...

Сообщение от miwutka Посмотреть сообщение
По нажатию на кнопку происходит пошаговое изменение цвета на светодиоде-РЖБ
Расскажите по-подробнее своими словами как именно изменяется, а то за кучей условий if() не видно леса
Yurkin2007 вне форума  
Сказали "Спасибо" Yurkin2007
warel (29.06.2019)
Непрочитано 27.06.2012, 12:08  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: помогите оптимизировать прогу для ШИМа...

miwutka, Это не оптимизировать надо -ЭТО надо переписывать полностью .

ЗЫ Под авр вы пишите еще хуже .Так что пики совсем не причем ...
__________________
Осторожно , злой кот
dosikus вне форума  
Сказали "Спасибо" dosikus
warel (29.06.2019)
Непрочитано 27.06.2012, 12:38  
nonamedov
Почётный гражданин KAZUS.RUN
 
Регистрация: 06.06.2008
Сообщений: 1,519
Сказал спасибо: 76
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: помогите оптимизировать прогу для ШИМа...

Судя по всему Вы не умеете строить циклы, например, чтобы получить все цвета радуги можно написать так:
Цитата:
red = 0;
grin = 255;
blue = 255;
while (mode==M) /*проверка номера M цветового эффекта*/
{
for (i=0; i ›= 255; i++) /* цикл перехода (переливания) с красного на зеленый*/
{
red++;
grin--;
delay_ms(N); // задержка на N миллисекунд
};
for (i = 0; i ›= 255; i++) /* цикл перехода с зеленого на синий */
{
grin++;
blue--;
delay_ms(N);
};
for (i = 0; i ›= 255; i++) /* цикл перехода с синего на красный,
цвета не из радуги, но как то надо же вернуться на начальное состояние */
{
blue++;
red--;
delay_ms(N);
};
};
Конечно можно построить и функцию прехода от одного цвета к другому, которая бы сделала бы программу короче, но учитывая простоту алгоритма эффекта от нее отказался, к тому же тогда придется применить указатели.

PS. Замечу, что Ваш алгоритм я не понял и даже особо не старался, но , думаю, в случае чего Вы сами разберетесь и измените код под свои нужды.

Последний раз редактировалось nonamedov; 27.06.2012 в 12:43.
nonamedov вне форума  
Эти 2 пользователя(ей) сказали Спасибо nonamedov за это сообщение:
miwutka (27.06.2012), warel (29.06.2019)
Непрочитано 27.06.2012, 14:11  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: помогите оптимизировать прогу для ШИМа...

вроде понял как упростить. Сначала всё потушено.Там по алгоритму по цветовой палитре из паинта переход от красного по цветам радуги и до красного, а потом белый зажигаеться и тухнет )) Упомянули про указатели. Сколько читал про них - не могу понять как они работают. Может кто может объяснить попутно...?
Сообщение от nonamedov Посмотреть сообщение
чтобы получить все цвета радуги
непойму как получаться цвета радуги если одновременно два цвета будут светиться только при 127 числе. Половина диапазона цвета не отобразиться, или я чегото не понял?
miwutka вне форума  
Сказали "Спасибо" miwutka
warel (29.06.2019)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Решено] UC3843 скважность ШИМа 50% ???? artstonecnc Источники питания и свет 21 05.02.2011 00:33
Нарыл новую (для меня) прогу FLOWCODE NikMih_1 Proteus, KiCAD и другие ECAD 4 15.10.2010 19:18
Из ШИМа - аналог. vo1 Микроконтроллеры, АЦП, память и т.д 17 24.12.2009 14:54
Пишу прогу частотомера на at90s2313 fiksx Микроконтроллеры, АЦП, память и т.д 20 17.10.2008 17:18
Ищу прогу для работы с i2c ipkin Микроконтроллеры, АЦП, память и т.д 4 21.12.2007 16:07


Часовой пояс GMT +4, время: 21:12.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.