Problem with delay color sensor TCS3200

Hi, i am making an art project and i need to receive RGB data from a TCS3200 sensor.
The problem is that i can only delay the function 4000 ms, the moment i push down the value, the info i receive gets corrupted. (0 values on RGB or just getting R values from RGB).

Here's the code (it's the code from the network with some little changes)

#include <TimerOne.h>

#define S0 6
#define S1 5
#define S2 4
#define S3 3
#define OUT 2

int g_count = 0; // count the frequecy
int g_array[3]; // store the RGB value
int g_flag = 0; // filter of RGB queue
float g_SF[3]; // save the RGB Scale factor

// Init TSC230 and setting Frequency.
void TSC_Init()
{
pinMode(S0, OUTPUT);
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT);
pinMode(OUT, INPUT);

digitalWrite(S0, LOW); // OUTPUT FREQUENCY SCALING 2%
digitalWrite(S1, HIGH);
}

// Select the filter color
void TSC_FilterColor(int Level01, int Level02)
{
if(Level01 != 0)
Level01 = HIGH;

if(Level02 != 0)
Level02 = HIGH;

digitalWrite(S2, Level01);
digitalWrite(S3, Level02);
}

void TSC_Count()
{
g_count ++ ;
}

void TSC_Callback()
{
switch(g_flag)
{
case 0:
//Serial.println("->WB Start");
TSC_WB(LOW, LOW); //Filter without Red
break;
case 1:
//Serial.print("->Frequency R=");
//Serial.println(g_count);
g_array[0] = g_count;
TSC_WB(HIGH, HIGH); //Filter without Green
break;
case 2:
//Serial.print("->Frequency G=");
//Serial.println(g_count);
g_array[1] = g_count;
TSC_WB(LOW, HIGH); //Filter without Blue
break;

case 3:
//Serial.print("->Frequency B=");
//Serial.println(g_count);
//Serial.println("->WB End");
g_array[2] = g_count;
TSC_WB(HIGH, LOW); //Clear(no filter)
break;
default:
g_count = 0;
break;
}
}

void TSC_WB(int Level0, int Level1) //White Balance
{
g_count = 0;
g_flag ++;
TSC_FilterColor(Level0, Level1);
Timer1.setPeriod(1000000); // set 1s period
}

void setup()
{
TSC_Init();
Serial.begin(9600);
Timer1.initialize(); // defaulte is 1s
Timer1.attachInterrupt(TSC_Callback);
attachInterrupt(0, TSC_Count, RISING);

delay(4000);

for(int i=0; i<3; i++)
//Serial.println(g_array*);*

}
void loop()
{

  • g_flag = 0;*
  • String message = "" ;*
  • for(int i=0; i<3; i++)*
    //Serial.println(int(g_array * g_SF*));
    message = message + int(g_array g_SF*) + ",";
    _ Serial.println(message);
    delay(4000);*_

}