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

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

    28 14.66%
  • Да.

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

    34 17.80%
Показано с 1 по 10 из 921

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11
    Продвинутый
    Регистрация
    28.11.2010
    Возраст
    61
    Сообщений
    241
    Вес репутации
    232

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

    Цитата Сообщение от Chip Посмотреть сообщение
    Как проверишь отпишись
    Проверил, не все в норме.
    Pin2 = (Порт) PE4 и Pin3 = (Порт) PE5 светятся постоянно, остальные правильно работают.
    В объяве нашел ошибку

    #define D2_High PORTE |=B00010000 //red
    #define D2_LOW PORTD &= B11101111
    #define D3_High PORTE |=B00100000 //green
    #define D3_LOW PORTD &= B11011111

    Это уже рабочий
    PHP код:
    #define  D2_High PORTE |=B00010000  //red line-1 on
    #define  D2_LOW PORTE &= B11101111  //red line-1 off 
    #define  D3_High PORTE |=B00100000  //green line-1 on 
    #define  D3_LOW PORTE &= B11011111  //green line-1 off 
    #define  D4_High PORTG |=B00100000  //blue line-1 on 
    #define  D4_LOW PORTG &= B11011111  //blue line-1 off  

    #define  D5_High PORTE |=B00001000  //red line-2 on   
    #define  D5_LOW PORTE &= B11110111  //red line-2 off     
    #define  D6_High PORTH |=B00001000  //green line-2 on 
    #define  D6_LOW PORTH &= B11110111  //green line-2 off    
    #define  D7_High PORTH |=B00010000  //blue line-2 on 
    #define  D7_LOW PORTH &= B11101111  //blue line-2 off  

    #define  D8_High PORTH |=B00100000  //red line-3 on 
    #define  D8_LOW PORTH &= B11011111  //red line-3 off  
    #define  D9_High PORTH |=B01000000  //green line-3 on 
    #define  D9_LOW PORTH &= B10111111  //green line-3 off 
    #define  D10_High PORTB |=B00010000  //blue line-3 on 
    #define  D10_LOW PORTB &= B11101111  //blue line-3 off  

    #define D11_High PORTB |=B00100000  //red line-4 on 
    #define D11_LOW PORTB &= B11011111  //red line-4 off  
    #define D12_High PORTB |=B01000000  //green line-4 on 
    #define D12_LOW PORTB &= B10111111  //green line-4 off 
    #define D13_High PORTB |=B10000000  //blue line-4 on 
    #define D13_LOW PORTB &= B01111111  //blue line-4 off 

    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[12];  //массив храннения цветов 12-ть каналов 


    void setup()  

            for (
    int i=214i++){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() > 12)  
      {  
          if (
    Serial.read() == 255)  //проверка прификса       
            

                for (
    int i 012i++)  
                 {                 
                   
    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 012i++)  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

    Последний раз редактировалось Mastar; 30.11.2010 в 15:15.

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

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

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

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

Ваши права

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