Including VirtuaWire.h and control rc servo

hi.
After including VirtualWire.h, I usage overflow interrupt of timer2 to control rc servo, but when I enable timer2, VirtualWire.h not working, I don't recieve anything from transmiter, if I delete code of timer2 then VirtualWire.h working. help me..!!!

This is my code:

void setup() {
Serial.begin(9600);
// recieve rf
vw_setup(1024); // speed transmit data
vw_set_rx_pin( 8 );// pin recieve data
vw_rx_start();// start recieve data
// set timer2 with interrrupt 10 ms
TCCR2A = 0;
TCCR2B = 0;
TCCR2B = _BV(CS21) | _BV(CS22) | _BV(CS20) ;
TIMSK2 = _BV(TOIE2);
TCNT2 = 99;
}
void recieve_data()
{
if (vw_get_message(msg, &msgLen)) // if have data

button[0] = msg[0];

delay(10);
Serial.println("gia tri "+ String(button[0]));
}
}

ISR (TIMER2_OVF_vect)
{
interrup++;
if( interrup==2)
{
digitalWrite(2,HIGH);
delayMicroseconds(oldtheta1Pos); oldthete1Pos is varaible i will transmisson in.
digitalWrite(2,LOW);
interrup=0;
}
TCNT2 = 99;
}

You're using a blocking delay in the ISR. Beyond being horrible practice (ISRs are supposed to run as quickly as possible), it's probably preventing VW from working, because interrupts are disabled for relatively long periods of time while it's sitting there in the ISR waiting on the delay, while wireless communications are time-sensitive.

Don't do that. Take a look at how they handle it in the official servo library - they move the compare match value around (and keep track of where in the cycle it is) so the ISR runs almost instantly and returns control back to the rest of the sketch.

thanks you. because i only delay about 1-2 ms and ISR working every 20ms so think it does not affect.

You're putting a 2ms delay in an ISR that's going to be firing every 20ms or so?
Uh, no, that's way, way too long to have interrupts disabled if you want virtual wire to be able to receive (or send, for that matter).

You want ISRs to return within tens of microseconds, the faster the better.

I tried doing it with different time delay, virtualware library will working if time delay less than 300 microseconds. but my servo need delay 500 to 2500 microseconds to working. i still thinking way but i didn't find any way.