Код такой

моргает мало при tcnt2 = 236;
это что за параметр получается?
поставил 240, еле мерцает, но всё равно напрягается мозг. Так можно эпилептиком стать
Код:
#define  D2_High PORTA |=B00000001  //red  22
#define  D2_LOW PORTA &= B11111110  
#define  D3_High PORTA |=B00000010  //green  23
#define  D3_LOW PORTA &= B11111101  
#define  D4_High PORTA |=B00000100  //blue  24
#define  D4_LOW PORTA &= B11111011  
#define  D5_High PORTA |=B00001000  //25
#define  D5_LOW PORTA &= B11110111  
#define  D6_High PORTA |=B00010000   //26
#define  D6_LOW PORTA &= B11101111  
#define  D7_High PORTA |=B00100000  //27
#define  D7_LOW PORTA &= B11011111  
#define  D8_High PORTA |=B01000000  //28
#define  D8_LOW PORTA &= B10111111  
#define  D9_High PORTA |=B10000000  //29
#define  D9_LOW PORTA &= B01111111


#define  D10_High PORTB|=B00000001  //ss  jp2 53
#define  D10_LOW PORTB &=B11111110
#define D11_High PORTB |=B00000010  //sck jp2 52
#define D11_LOW PORTB &= B11111101  
#define D12_High PORTB |=B00000100  //mosi 51
#define D12_LOW PORTB &= B11111011  
#define D13_High PORTB |=B00001000  //miso 50
#define D13_LOW PORTB &= B11110111
#define D14_High PORTB |=B00010000  //  PWMH 10
#define D14_LOW PORTB &= B11101111  
#define D15_High PORTB |=B00100000  // PWMH 11 
#define D15_LOW PORTB &= B11011111  
#define D16_High PORTB |=B01000000  // PWMH  12
#define D16_LOW PORTB &= B10111111
#define D17_High PORTB |=B10000000  // PWMH  13
#define D17_LOW PORTB &= B01111111


#define D18_High PORTC |=B00000001  //37
#define D18_LOW PORTC &= B11111110  
#define D19_High PORTC |=B00000010  //36
#define D19_LOW PORTC &= B11111101
#define D20_High PORTC |=B00000100  //35
#define D20_LOW PORTC &= B11111011
#define D21_High PORTC |=B00001000  //34
#define D21_LOW PORTC &= B11110111  
#define D22_High PORTC |=B00010000  //33
#define D22_LOW PORTC &= B11101111
#define D23_High PORTC |=B00100000  //32
#define D23_LOW PORTC &= B11011111  
#define D24_High PORTC |=B01000000  //31
#define D24_LOW PORTC &= B10111111  
#define D25_High PORTC |=B10000000  //30
#define D25_LOW PORTC &= B01111111


#define D26_High PORTF |=B00000001  //adc0
#define D26_LOW PORTF &= B11111110  
#define D27_High PORTF |=B00000010  //adcl
#define D27_LOW PORTF &= B11111101  
#define D28_High PORTF |=B00000100  //adcl
#define D28_LOW PORTF &= B11111011
#define D29_High PORTF |=B00001000  //adcl
#define D29_LOW PORTF &= B11110111  
#define D30_High PORTF |=B00010000  //adcl
#define D30_LOW PORTF &= B11101111  
#define D31_High PORTF |=B00100000  //adcl
#define D31_LOW PORTF &= B11011111
#define D32_High PORTF |=B01000000  //adcl
#define D32_LOW PORTF &= B10111111  
#define D33_High PORTF |=B10000000  //adcl
#define D33_LOW PORTF &= B01111111


#define D34_High PORTK |=B00000001  // ADCH
#define D34_LOW PORTK &= B11111110
#define D35_High PORTK |=B00000010  // ADCH
#define D35_LOW PORTK &= B11111101  
#define D36_High PORTK |=B00000100  // ADCH
#define D36_LOW PORTK &= B11111011  
#define D37_High PORTK |=B00001000  // ADCH
#define D37_LOW PORTK &= B11110111
#define D38_High PORTK |=B00010000  // ADCH
#define D38_LOW PORTK &= B11101111  
#define D39_High PORTK |=B00100000  // ADCH
#define D39_LOW PORTK &= B11011111  
#define D40_High PORTK |=B01000000  // ADCH
#define D40_LOW PORTK &= B10111111
#define D41_High PORTK |=B10000000  // ADCH
#define D41_LOW PORTK &= B01111111


#define D42_High PORTL |=B00000001  //49
#define D42_LOW PORTL &= B11111110  
#define D43_High PORTL |=B00000010  //48
#define D43_LOW PORTL &= B11111101
#define D44_High PORTL |=B00000100  //47
#define D44_LOW PORTL &= B11111011  
#define D45_High PORTL |=B00001000  //46
#define D45_LOW PORTL &= B11110111  
#define D46_High PORTL |=B00010000  //45
#define D46_LOW PORTL &= B11101111
#define D47_High PORTL |=B00100000  //44
#define D47_LOW PORTL &= B11011111  
#define D48_High PORTL |=B01000000  //43
#define D48_LOW PORTL &= B10111111  
#define D49_High PORTL |=B10000000  //42
#define D49_LOW PORTL &= B01111111





#define D50_High PORTJ |=B00000001  //RXD3
#define D50_LOW PORTJ &= B11111110  
#define D51_High PORTJ |=B00000010  //TXD3
#define D51_LOW PORTJ &= B11111101

#define D52_High PORTH |=B00000001  //RXD2
#define D52_LOW PORTH &= B11111110  
#define D53_High PORTH |=B00000010 //TXD2
#define D53_LOW PORTH &= B11111101 

#define D54_High PORTH |=B00010000  //PH3 pwml 6
#define D54_LOW PORTH &= B11101111  
#define D55_High PORTH |=B00001000 //PH4 pwml 7
#define D55_LOW PORTH &= B11110111

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


void setup()   
{  
  
  DDRB=0xFF;
  DDRC=0xFF;
  DDRA=0xFF;
  DDRF=0xFF;
  DDRL=0xFF;
  DDRK=0xFF;
  DDRH=0xFF;
  DDRJ=0xFF;
  
  
        //for (int i=2; i < 100; i++){pinMode(i, OUTPUT);}    
        //Serial.begin(115200);  
    Serial.begin(115200);
    
     TIMSK2 &= ~(1<<TOIE2); //разрешения прерывания по переполнению таймера/счетчика Т2   
    TCCR2A &= ~((1<<WGM21) | (1<<WGM20));// Режим работы таймера/счетчика  
    TCCR2B &= ~(1<<WGM22);// Режим работы таймера/счетчика  
    ASSR &= ~(1<<AS2);  //Выбор источника синхронизации таймера если AS2=0 от системного генератора  
    tcnt2 = 236; //  16000000/31000/64=8 tcnt2=256-8=248.      
    TIMSK2 |= (1<<TOIE2);//Разрешение прерывания по переполнению Т2.  
}  

void loop()   
{  
  
  
  
  
 
  
  if (Serial.available() > 54)   
  {   
      if (Serial.read() == 255)  //проверка прификса        
        {  
            for (int i = 0; i < 54; i++)   
             {                  
               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 = 0; i < 54; i++)  color[i] = 0;}   
          blank++;   
         }    
}   
//****************обработчик прерывания********************  
ISR(TIMER2_OVF_vect)   
{  
    TCNT2 = tcnt2;  

 pwm_time++;  
    if(color[0] > pwm_time ) D20_High;  else D20_LOW;   
    if(color[1] > pwm_time ) D31_High;  else D31_LOW;  
    if(color[2] > pwm_time ) D2_High;  else D2_LOW;   
      
    if(color[3] > pwm_time ) D22_High;  else D22_LOW;  
    if(color[4] > pwm_time ) D32_High;  else D32_LOW;  
    if(color[5] > pwm_time ) D21_High;  else D21_LOW;   
      
    if(color[6] > pwm_time ) D23_High;  else D23_LOW;  
    if(color[7] > pwm_time ) D33_High;  else D33_LOW;  
    if(color[8] > pwm_time ) D34_High; else D34_LOW;  
      
    if(color[9] > pwm_time ) D6_High; else D6_LOW;   
    if(color[10] > pwm_time) D13_High; else D13_LOW;          
    if(color[11] > pwm_time) D14_High; else D14_LOW;  
     
    if(color[12] > pwm_time) D19_High; else D19_LOW;   
    if(color[13] > pwm_time) D39_High; else D39_LOW;          
    if(color[14] > pwm_time) D40_High; else D40_LOW; 
     
    if(color[15] > pwm_time) D18_High; else D18_LOW;   
    if(color[16] > pwm_time) D25_High; else D25_LOW;          
    if(color[17] > pwm_time) D24_High; else D24_LOW;
    
    if(color[18] > pwm_time) D3_High; else D3_LOW;
    if(color[19] > pwm_time) D10_High; else D10_LOW;
    if(color[20] > pwm_time) D11_High; else D11_LOW;
    
    if(color[21] > pwm_time) D35_High; else D35_LOW;
    if(color[22] > pwm_time) D30_High; else D30_LOW;
    if(color[23] > pwm_time) D29_High; else D29_LOW;
    
    if(color[24] > pwm_time) D12_High; else D12_LOW;
    if(color[25] > pwm_time) D5_High; else D5_LOW;
    if(color[26] > pwm_time) D4_High; else D4_LOW;
    
    if(color[27] > pwm_time) D28_High; else D28_LOW;
    if(color[28] > pwm_time) D36_High; else D36_LOW;
    if(color[29] > pwm_time) D37_High; else D37_LOW;
    
    if(color[30] > pwm_time) D15_High; else D15_LOW;
    if(color[31] > pwm_time) D7_High; else D7_LOW;
    if(color[32] > pwm_time) D46_High; else D46_LOW;
    
    if(color[33] > pwm_time) D9_High; else D9_LOW;
    if(color[34] > pwm_time) D16_High; else D16_LOW;
    if(color[35] > pwm_time) D17_High; else D17_LOW;
    
    if(color[36] > pwm_time) D52_High; else D52_LOW;
    if(color[37] > pwm_time) D45_High; else D45_LOW;
    if(color[38] > pwm_time) D42_High; else D42_LOW;
    
    if(color[39] > pwm_time) D54_High; else D54_LOW;
    if(color[40] > pwm_time) D47_High; else D47_LOW;
    if(color[41] > pwm_time) D8_High; else D8_LOW;
    
    if(color[42] > pwm_time) D49_High; else D49_LOW;
    if(color[43] > pwm_time) D53_High; else D53_LOW;
    if(color[44] > pwm_time) D48_High; else D48_LOW;
    
    if(color[45] > pwm_time) D38_High; else D38_LOW;
    if(color[46] > pwm_time) D26_High; else D26_LOW;
    if(color[47] > pwm_time) D27_High; else D27_LOW;
    
    if(color[48] > pwm_time) D55_High; else D55_LOW;
    if(color[49] > pwm_time) D41_High; else D41_LOW;
    if(color[50] > pwm_time) D43_High; else D43_LOW;
    
    //if(color[51] > pwm_time) D44_High; else D44_LOW;
    //if(color[52] > pwm_time) D51_High; else D51_LOW;
    //if(color[53] > pwm_time) D50_High; else D50_LOW;
    
    
}