SPI in loop() working fine, but not in ISR TIMER 1 interrupt

//please ignore comments, as the code is modified so frequently that I forget about comments!

#include <avr/interrupt.h>
#include <avr/io.h>
#include <SPI.h>

volatile byte matrica[8][3];
volatile byte counting1;
volatile byte counting2;

volatile byte bitek;
volatile byte counter=0;

void setup() {
  
 SPI.setBitOrder(MSBFIRST);
 SPI.setDataMode(SPI_MODE0);
 SPI.setClockDivider(SPI_CLOCK_DIV2);
 
   pinMode(4, OUTPUT);
   pinMode(2, OUTPUT);
  digitalWrite(2, LOW);
  
  //Serial.begin(57600);
  
  TIMSK1 = 0;  
  // TIMER 1 CTC mode
  TCCR1A = 0;    // CORRECT
  TCCR1B |= (1<<WGM12); // CORRECT 
  /* IZBERI IZVOR URE ZA TIMER 2, IZVOR JE MULTIPLEXER */
  //ASSR &= ~(1<<AS2);  

  /* Enable Compare Match A interrupt enable  */
  
  //TIFR2 |= (1<<OCF2A);

  /* Now configure the prescaler to CPU clock divided by 64 */
  TCCR1B &= ~(1<<CS12);   // 
  TCCR1B |=  (1<<CS11);  // 001 - prescaler -2 ??  
  TCCR1B &=  ~(1<<CS10);  //

  SPCR |= (0<<SPIE);
for(counting1=0;counting1<4;counting1++)
for(counting2=0;counting2<3;counting2++)  
{ matrica[counting1][counting2]=1;
  matrica[counting1+4][counting2]=255;
}
  TCNT1 = 0;
  OCR1A = 255;
TIMSK1 |= (1<<OCIE1A);// correczt


sei();
bitek=0;

SPI.begin();
}
;
volatile byte krneki=0;

volatile void dilej() { krneki=0; while(krneki > 20) {krneki++;} }  

ISR(TIMER1_COMPA_vect) 
{  
  switch(bitek)  
  {       
    case 0: bitek=1;
            OCR1A=2; TCNT1 = 0;                   
                        SPI.transfer(matrica[0][1]); dilej();
                        SPI.transfer(matrica[0][2]); dilej();
                        SPI.transfer(matrica[0][3]);  dilej();
            break;
    case 1: bitek=2;
            OCR1A=2; TCNT1 = 0;   
                        SPI.transfer(matrica[1][1]); dilej();
                        SPI.transfer(matrica[1][2]); dilej();
                        SPI.transfer(matrica[1][3]); dilej();
                      
            break;
    case 2: bitek=3; 
            OCR1A=4;  TCNT1 = 0;
                        SPI.transfer(matrica[2][1]); dilej();
                        SPI.transfer(matrica[2][2]); dilej();
                        SPI.transfer(matrica[2][3]); dilej();                 
            break;
    case 3: bitek=4;
            OCR1A=8;   TCNT1 = 0; 
                        SPI.transfer(matrica[3][1]); dilej();
                        SPI.transfer(matrica[3][2]); dilej();
                        SPI.transfer(matrica[3][3]); dilej();
            break;
    case 4: bitek=5;
            OCR1A=16;  TCNT1 = 0;          
                        SPI.transfer(matrica[4][1]); dilej();
                        SPI.transfer(matrica[4][2]); dilej();
                        SPI.transfer(matrica[4][3]); dilej();
            break;
    case 5: bitek=6;
            OCR1A=32;   TCNT1 = 0;        
                        SPI.transfer(matrica[5][1]); dilej();
                        SPI.transfer(matrica[5][2]); dilej();
                        SPI.transfer(matrica[5][3]); dilej();
            break;            
    case 6: bitek=7;
            OCR1A=64;   TCNT1 = 0;
                        SPI.transfer(matrica[6][1]); dilej();
                        SPI.transfer(matrica[6][2]); dilej();
                        SPI.transfer(matrica[6][3]); dilej();
                      
            break;
    case 7: bitek=8; 
            OCR1A=255;  TCNT1 = 0;
                        SPI.transfer(matrica[7][1]); dilej();
                        SPI.transfer(matrica[7][2]); dilej();
                        SPI.transfer(matrica[7][3]); dilej();
                      
            break;
    case 8: bitek=9; 
            OCR1A=64;   TCNT1 = 0;
                        SPI.transfer(matrica[6][1]); dilej();
                        SPI.transfer(matrica[6][2]); dilej();
                        SPI.transfer(matrica[6][3]); dilej();
            break;
    case 9: bitek=10;
            OCR1A=32;  TCNT1 = 0;
                        SPI.transfer(matrica[5][1]); dilej();
                        SPI.transfer(matrica[5][2]); dilej();
                        SPI.transfer(matrica[5][3]); dilej();
                     
            break;
    case 10:bitek=11; 
            OCR1A=16;  TCNT1 = 0;
                        SPI.transfer(matrica[4][1]); dilej();
                        SPI.transfer(matrica[4][2]); dilej();
                        SPI.transfer(matrica[4][3]); dilej();
            break;
    case 11:bitek=12;
            OCR1A=8;   TCNT1 = 0;
            
                        SPI.transfer(matrica[3][1]); dilej();
                        SPI.transfer(matrica[3][2]); dilej();
                        SPI.transfer(matrica[3][3]); dilej();
            
            break;
    case 12: bitek=13; 
            OCR1A=4;   TCNT1 = 0;
                      
                        SPI.transfer(matrica[2][1]); dilej();
                        SPI.transfer(matrica[2][2]); dilej();
                        SPI.transfer(matrica[2][3]); dilej();
            
            break;
    case 13: bitek=0; 
            OCR1A=2;    TCNT1 = 0;
                        SPI.transfer(matrica[1][1]); dilej();
                        SPI.transfer(matrica[1][2]); dilej();
                        SPI.transfer(matrica[1][3]); dilej();             
            break;
          
    default: bitek=0; break; //?e se je slu?ajno kaj sfukalo, resetiramo bitek na 0
  }                    
         PORTB |= 0b00000100; // <-latch_on
         PORTB &= 0b11111011; // <-latch_off    
}  
//*/
void loop() 
{
  
  



}

I know, what a mess