Результаты опроса: Нужна ли вам такая функция на телевизоре?

Голосовавшие
191. Вы ещё не голосовали в этом опросе
  • Нет.

    28 14.66%
  • Да.

    129 67.54%
  • Нужна , только руки кривые, самому не осилить

    34 17.80%
Страница 64 из 93 ПерваяПервая ... 14545859606162636465666768697074 ... ПоследняяПоследняя
Показано с 631 по 640 из 921
  1. #631
    Пользователь
    Регистрация
    23.09.2011
    Возраст
    34
    Сообщений
    37
    Вес репутации
    163

    По умолчанию Re: Фоновая подсветка телевизора Ambilight

    Цитата Сообщение от Chip Посмотреть сообщение
    Зачем тебе на меге с регистрами заморачиватся у тебя же огромное количество выходов?
    Выходов много, а шимов всего 12 (аппаратных). А совместить софт и аппаратно у меня не получилось, и передать софт на 30 шимов тоже (и блиотека softPWM расчитана на 15 ) вот и набрал регистров.....
    Последний раз редактировалось asuz; 11.10.2011 в 17:28.

  2. #632
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Фоновая подсветка телевизора Ambilight

    Цитата Сообщение от Userrex Посмотреть сообщение
    Привет всем. Респект Chip за столь обстоятельный ПОСТ.
    Хочу собрать сеё уст-во на 6 зон 18 каналов(судя по посту одна ардуина справится?), Не дадите скейч, или он единый, для разного кол-ва зон и отличие только в настройке Win-приложения?
    В программировании не силен.
    Попробуй вот этот скетчь и отпишись
    Я его еще не проверял
    Не забудь настройки в программе сделать на 18 каналов

    PHP код:
    #define  D2_High PORTD |=B00000100  //red 
    #define  D2_LOW PORTD &= B11111011 
    #define  D3_High PORTD |=B00001000  //green 
    #define  D3_LOW PORTD &= B11110111 
    #define  D4_High PORTD |=B00010000  //blue 
    #define  D4_LOW PORTD &= B11101111 

    #define  D5_High PORTD |=B00100000 
    #define  D5_LOW PORTD &= B11011111 
    #define  D6_High PORTD |=B01000000  
    #define  D6_LOW PORTD &= B10111111 
    #define  D7_High PORTD |=B10000000 
    #define  D7_LOW PORTD &= B01111111 

    #define  D8_High PORTB |=B00000001 
    #define  D8_LOW PORTB &= B11111110 
    #define  D9_High PORTB |=B00000010 
    #define  D9_LOW PORTB &= B11111101 
    #define  D10_High PORTB|=B00000100 
    #define  D10_LOW PORTB &=B11111011 

    #define D11_High PORTB |=B00001000 
    #define D11_LOW PORTB &= B11110111 
    #define D12_High PORTB |=B00010000 
    #define D12_LOW PORTB &= B11101111 
    #define D13_High PORTB |=B00100000 
    #define D13_LOW PORTB &= B11011111 

    #define D14_High PORTC |=B00000001 
    #define D14_LOW PORTC &= B11111110 
    #define D15_High PORTC |=B00000010 
    #define D15_LOW PORTC &= B11111101 
    #define D16_High PORTC |=B00000100 
    #define D16_LOW PORTC &= B11111011

    #define D17_High PORTC |=B00001000 
    #define D17_LOW PORTC &= B11110111 
    #define D18_High PORTC |=B00010000 
    #define D18_LOW PORTC &= B11101111 
    #define D19_High PORTC |=B00100000 
    #define D19_LOW PORTC &= B11011111

    volatile unsigned int tcnt2
    volatile byte pwm_time
    //byte pwm_time, Red_R_Old, Green_L_Old, Blue_T_Old; 
    unsigned long blank=0//таймер простоя 
    byte volatile color[18];  //массив храннения цветов 12-ть каналов 


    void setup()  

            for (
    int i=219i++){pinMode(iOUTPUT);}   
            
    Serial.begin(115200); 
       
         
    TIMSK2 &= ~(1<<TOIE2); //разрешения прерывания по переполнению таймера/счетчика Т2  
        
    TCCR2A &= ~((1<<WGM21) | (1<<WGM20));// Режим работы таймера/счетчика 
        
    TCCR2B &= ~(1<<WGM22);// Режим работы таймера/счетчика 
        
    ASSR &= ~(1<<AS2);  //Выбор источника синхронизации таймера если AS2=0 от системного генератора 
        
    tcnt2 252//  16000000/31000/64=8 tcnt2=256-8=248.     
        
    TIMSK2 |= (1<<TOIE2);//Разрешение прерывания по переполнению Т2. 


    void loop()  

      if (
    Serial.available() > 18)  
      {  
          if (
    Serial.read() == 255)  //проверка прификса       
            

                for (
    int i 018i++)  
                 {                 
                   
    color[i] = Serial.read();  // прочитать данные о цветах из порта в массив 
                 
    }       
                
    // if (Red_R_Old == color[0] && Green_L_Old == color[4] && Blue_T_Old == color[8])   
                 
    blank=0
            } 
      } else {  
               if(
    blank>100000) { blank=0; for (byte i 018i++)  color[i] = 0;}  
              
    blank++;  
             }   
    }  
    //****************обработчик прерывания******************** 
    ISR(TIMER2_OVF_vect)  

        
    TCNT2 tcnt2

     
    pwm_time++; 
        if(
    color[0] > pwm_time D2_High;  else D2_LOW;  
        if(
    color[1] > pwm_time D3_High;  else D3_LOW
        if(
    color[2] > pwm_time D4_High;  else D4_LOW;  
         
        if(
    color[3] > pwm_time D5_High;  else D5_LOW
        if(
    color[4] > pwm_time D6_High;  else D6_LOW
        if(
    color[5] > pwm_time D7_High;  else D7_LOW;  
         
        if(
    color[6] > pwm_time D8_High;  else D8_LOW
        if(
    color[7] > pwm_time D9_High;  else D9_LOW
        if(
    color[8] > pwm_time D10_High; else D10_LOW
         
        if(
    color[9] > pwm_time D11_High; else D11_LOW;  
        if(
    color[10] > pwm_timeD12_High; else D12_LOW;         
        if(
    color[11] > pwm_timeD13_High; else D13_LOW
        
        if(
    color[12] > pwm_timeD14_High; else D14_LOW;  
        if(
    color[13] > pwm_timeD15_High; else D15_LOW;         
        if(
    color[14] > pwm_timeD16_High; else D16_LOW;
        
        if(
    color[15] > pwm_timeD17_High; else D17_LOW;  
        if(
    color[16] > pwm_timeD18_High; else D18_LOW;         
        if(
    color[17] > pwm_timeD19_High; else D19_LOW;

    Последний раз редактировалось Chip; 11.10.2011 в 17:44.

  3. #633
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Фоновая подсветка телевизора Ambilight

    Цитата Сообщение от asuz Посмотреть сообщение
    Выходов много, а шимов всего 12 (аппаратных). А совместить софт и аппаратно у меня не получилось, и передать софт на 30 шимов тоже (и блиотека softPWM расчитана на 15 ) вот и набрал регистров.....
    У Arduino Nano всего 6 аппаратных ШИМ выходов, но я их и не использую
    Посмотри внимательно на выше выложенный мной скетчь и сравни со скетчем из шапки и поймешь что тебе нужно править
    Если что то будет не понятно спрашивай не стесняйся
    Последний раз редактировалось Chip; 11.10.2011 в 17:56.

  4. #634
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Фоновая подсветка телевизора Ambilight

    Вот тебе в помощь распиновку контроллера
    Будет выглядеть примерно так

    PHP код:
    #define  D2_High PORTE |=B00010000  //red  
    #define  D2_LOW PORTE &= B11101111  
    #define  D3_High PORTE |=B00100000  //green  
    #define  D3_LOW PORTE &= B11011111  
    #define  D4_High PORTG |=B00100000  //blue  
    #define  D4_LOW PORTG &= B11011111 
    PE4 означает 4-й бит порта E, соответственно мы включаем этот бит B00010000 и выключаем B11101111 , не забывай что отсчет битов начинается с 0
    PG5 означает 5-й бит порта G и т.д.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	MEGA1280.jpg 
Просмотров:	16967 
Размер:	287.7 Кб 
ID:	13146  
    Последний раз редактировалось Chip; 11.10.2011 в 18:23.

  5. #635
    Пользователь
    Регистрация
    23.09.2011
    Возраст
    34
    Сообщений
    37
    Вес репутации
    163

    По умолчанию Re: Фоновая подсветка телевизора Ambilight

    сделал скей на 15 каналов, пины вида
    0C3A-5 вывод меги
    0С3B-2 вывод меги
    0С3C-3 вывод меги
    и таких выводов 12 с 2по13 и ещё
    0С5A-46
    0С5B-45
    0С5C-44 выводы меги
    получается ещё +3 = 15
    остальные выводы контроллера я не могу задействовать....

  6. #636
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Фоновая подсветка телевизора Ambilight

    Прочитай выше сообщение

  7. #637
    Пользователь
    Регистрация
    23.09.2011
    Возраст
    34
    Сообщений
    37
    Вес репутации
    163

    По умолчанию Re: Фоновая подсветка телевизора Ambilight

    чёт не как
    получается например вывод меги 23
    вывод контроллера 77
    PA1(AD1)

    #define D23_High PORTA |=B00010000 //red line-1 on
    #define D23_LOW PORTA &= B11101111 //red line-1 off
    .
    .
    if(color[0] > pwm_time ) D23_High; else D23_LOW;

    с таким кодом на выходе 23 меги нет не чего....

  8. #638
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Фоновая подсветка телевизора Ambilight

    И не будет, ты бит не правильно установил, нужно устанавливать 1-й бит B00000010 а у тебя четвертый B00010000
    Последний раз редактировалось Chip; 11.10.2011 в 18:43.

  9. #639
    Пользователь
    Регистрация
    23.09.2011
    Возраст
    34
    Сообщений
    37
    Вес репутации
    163

    По умолчанию Re: Фоновая подсветка телевизора Ambilight

    стыдно спросить...а какое значение включено и выключено должно быть у 1 бита у 2-го и остальных....
    1-ого включено B00000010 это я уже знаю


    а помойму понял

    Включено:
    0-bit B00000001
    1-bit B00000010
    2-bit B00000100
    3-bit B00001000
    4-bit B00010000
    5-bit B00100000
    6-bit B01000000
    7-bit B10000000

    Выключено:
    0-bit B11111110
    1-bit B11111101
    2-bit B11111011
    3-bit B11110111
    4-bit B11101111
    5-bit B11011111
    6-bit B10111111
    7-bit B01111111
    Последний раз редактировалось asuz; 11.10.2011 в 19:02.

  10. #640
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Фоновая подсветка телевизора Ambilight

    правльно только в таблице еще нужно 0-й бит добавить

Страница 64 из 93 ПерваяПервая ... 14545859606162636465666768697074 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 22 (пользователей: 0 , гостей: 22)

Метки этой темы

Ваши права

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