roboforum.ru

Технический форум по робототехнике.

Подсветка а-ля Ambilight

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

Re: Подсветка а-ля Ambilight

Сообщение -= Александр =- » 09 фев 2008, 05:40

Да, есть у меня такой глюк, правда проявляется гораздо реже. Но работа над ним в процессе!
Пока непонятно в чем дело, но скорее всего это глюк программы. Какая у тебя версия?
Ниндзя - круче всех. Они умеют ходить по воде, делить на ноль и угадывать шаффл в АйПоде.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Re: Подсветка а-ля Ambilight

Сообщение Freeman » 12 фев 2008, 21:09

Версия 1.3 бэта... но и в 1.2 то же самое было... мне кажется что дело с драйвером порта...
хотя я не программист, а сетевик(не совсем :lol: ), и то, только учусь)
Аватара пользователя
Freeman
 
Сообщения: 43
Зарегистрирован: 20 янв 2008, 04:28

Re: Подсветка а-ля Ambilight

Сообщение Freeman » 17 фев 2008, 16:16

Еще вопрос появился(немного в оффтоп): Как в коде вижн АВР получить файл пришивки(.hex файл)?
Аватара пользователя
Freeman
 
Сообщения: 43
Зарегистрирован: 20 янв 2008, 04:28

Re: Подсветка а-ля Ambilight

Сообщение -= Александр =- » 17 фев 2008, 19:24

Просто скомпиль проект и он его сгенерит. Shift+F9
Ниндзя - круче всех. Они умеют ходить по воде, делить на ноль и угадывать шаффл в АйПоде.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Re: Подсветка а-ля Ambilight

Сообщение Freeman » 18 фев 2008, 22:02

компилит... создает кучу файлов в том числе и .asm, но никаких .hex не создает... предлагает сразу зашить в контроллер
Аватара пользователя
Freeman
 
Сообщения: 43
Зарегистрирован: 20 янв 2008, 04:28

Re: Подсветка а-ля Ambilight

Сообщение -= Александр =- » 18 фев 2008, 22:31

У меня почему-то все создает... Может у тебя настроен компилер на создание .rom - поищи в настройках...
Ниндзя - круче всех. Они умеют ходить по воде, делить на ноль и угадывать шаффл в АйПоде.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Re: Подсветка а-ля Ambilight

Сообщение Freeman » 24 фев 2008, 03:02

Вот под СМД зделал лейаут... мож кто проверит?

З.Ы.: сод вижн все равно хекс файл не создает... как не шаманил...
Аватара пользователя
Freeman
 
Сообщения: 43
Зарегистрирован: 20 янв 2008, 04:28

Re: Подсветка а-ля Ambilight

Сообщение Duhas » 24 фев 2008, 18:29

ну ты бы выложил рас хочешь чтоб проверили ? ....
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Подсветка а-ля Ambilight

Сообщение Freeman » 24 фев 2008, 22:36

Ой, извиняюсь, не заметил что файл не заатачился...
там все разведено под штыревые коннекторы... по отдельности выведены площадки для подключения программатора...
вот...
Вложения
ambilight.rar
(23.08 КиБ) Скачиваний: 115
Аватара пользователя
Freeman
 
Сообщения: 43
Зарегистрирован: 20 янв 2008, 04:28

Re: Подсветка а-ля Ambilight

Сообщение Duhas » 25 фев 2008, 01:12

мля... могет в чем гить более традициональном? лэйаут там.. пикад или картинкой.... а то я чуствую скоро в 3д максе будем платы рисовать ..
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Подсветка а-ля Ambilight

Сообщение Master » 25 фев 2008, 10:05

Ага объемные со сглаживанием :)
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Re: Подсветка а-ля Ambilight

Сообщение APf72 » 27 фев 2008, 20:11

Приветствую всех! Александр, хорошую тему замутил!
-= Александр =- писал(а):Да, есть у меня такой глюк, правда проявляется гораздо реже. Но работа над ним в процессе!
Пока непонятно в чем дело, но скорее всего это глюк программы. Какая у тебя версия?

Сам пока не собирал, но, кажется, знаю чем помочь:
Замени строки
Код: Выделить всёРазвернуть
if(R[i]+G[i]+B[i]==0)E[i]=0;
else E[i]=1;
на
Код: Выделить всёРазвернуть
E[i] = (R[i] || G[i] || B[i]);

Вообще если проект еще не закрыт, могу предложить свою помощь, чем смогу - помогу. Пишу на Delphi, могу попытаться что-то сделать на C. Также у меня есть замечания по твоему исходнику (типа "а я бы делал так..."), так что если они тебе нужны - напиши. Но повторю, что специализируюсь на Delphi, а C знаю только т.к. приходится.
APf72
 
Сообщения: 2
Зарегистрирован: 27 фев 2008, 19:22

Re: Подсветка а-ля Ambilight

Сообщение -= Александр =- » 03 мар 2008, 02:10

Нет, глюк именно сверху. Будь он там - оно бы воспроизводимо было. А так - случайно всплывает...
Все замечания пиши сюда - вместе подумаем! :wink:
Проект всегда открыт, только вот руки редко доходят что-то доделывать...
Ниндзя - круче всех. Они умеют ходить по воде, делить на ноль и угадывать шаффл в АйПоде.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Re: Подсветка а-ля Ambilight

Сообщение APf72 » 04 мар 2008, 05:12

-= Александр =- писал(а):Нет, глюк именно сверху. Будь он там - оно бы воспроизводимо было. А так - случайно всплывает...

А оно и воспроизводимо! Попробуй цвета 0x0202FC, 0x808000 или 0x404080. Может в коде еще есть ошибка, но при этих цветах E = 0 точно!
-= Александр =- писал(а):Все замечания пиши сюда - вместе подумаем!

Рассмотрим блок:
Код: Выделить всёРазвернуть
for(i=1;i<=4;i++)
  {
  if(rx_buffer[0]==i-1){R[i]=rx_buffer[1];G[i]=rx_buffer[2];B[i]=rx_buffer[3];}
  if(R[i]+G[i]+B[i]==0)E[i]=0;
  else E[i]=1;
  }

Во первых, заменяем
Код: Выделить всёРазвернуть
if(R[i]+G[i]+B[i]==0)E[i]=0;
else E[i]=1;

на
Код: Выделить всёРазвернуть
E[i] = (R[i] || G[i] || B[i]);

тем самым, исправляя глюк.
В твоем цикле E задается для каждого i от 1 до 4, но, за один раз, изменяется значение только одного E, поэтому «E[i]=» переносим «глубже»:
Код: Выделить всёРазвернуть
for(i=1;i<=4;i++)
  {
  if(rx_buffer[0]==i-1)
    {
    R[i]=rx_buffer[1];G[i]=rx_buffer[2];B[i]=rx_buffer[3];
    E[i] = (R[i] || G[i] || B[i]);
    }
  }

Исходя из полученного, приходим к выводу, что цикл нам вообще ни к чему:
Код: Выделить всёРазвернуть
i = rx_buffer[0]+1;
R[i] = rx_buffer[1];
G[i] = rx_buffer[2];
B[i] = rx_buffer[3];
E[i] = (R[i] || G[i] || B[i]);

На случай, если в будущем будут предусмотрены дополнительные команды, придется добавить ограничение:
Код: Выделить всёРазвернуть
i = rx_buffer[0]+1;
if (i <= 4)
  {
  R[i] = rx_buffer[1];
  G[i] = rx_buffer[2];
  B[i] = rx_buffer[3];
  E[i] = (R[i] || G[i] || B[i]);
  }

Элементы с индексами [0] у тебя не используются (пропадают без дела), поэтому можно строку
Код: Выделить всёРазвернуть
i = rx_buffer[0]+1;

заменить на
Код: Выделить всёРазвернуть
i = rx_buffer[0];

но тогда необходимо в строках
Код: Выделить всёРазвернуть
if(E[1]){R1=1; G1=1; B1=1;}

и др., а также
Код: Выделить всёРазвернуть
if(counter>R[1])R1=0; if(counter>G[1])G1=0; if(counter>B[1])B1=0;

и др. заменить индекс [1] на [0], [2] на [1] и т.д. В строке
Код: Выделить всёРазвернуть
if (i <= 4)

можно будет просто убрать знак «равно».
Ну, и совсем для «готичности», вместо этих строк
Код: Выделить всёРазвернуть
R[1]=0;
G[1]=0;
B[1]=0;

и др. можно сделать так:
Код: Выделить всёРазвернуть
char R[4] = {0, 0, 0, 0};

и т.д.
Кроме того в строках
Код: Выделить всёРазвернуть
if(counter>R[1])R1=0; if(counter>G[1])G1=0; if(counter>B[1])B1=0;

ты используешь знак «больше», поэтому контроллер будет выполнять очень много лишних команд (в зависимости от яркости). Достаточно будет и «==».
Последний раз редактировалось Vooon 04 мар 2008, 13:58, всего редактировалось 1 раз.
Причина: помогай аподсветке - пиши [code=cpp]...[/code]
APf72
 
Сообщения: 2
Зарегистрирован: 27 фев 2008, 19:22

Re: Подсветка а-ля Ambilight

Сообщение -= Александр =- » 04 мар 2008, 21:57

Пасибо! Будет время - подправлю... Все это писалось в спешке, так что в софте наверняка тоже полно ошибок...
Ниндзя - круче всех. Они умеют ходить по воде, делить на ноль и угадывать шаффл в АйПоде.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Пред.След.

Вернуться в Золотой фонд

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17