Ah, I see. You need to react within around 50 mS, so you think an interrupt is needed? Well, I set up a test case which just uses loop to see if 3 bytes of serial data has arrived from your test gear. (This 3 bytes is collected by the serial hardware's interrupts). Once that happens we call test_the_thing to do some action. In my case I turned LED 13 on, if I got a T in the first byte, otherwise turned it off.
void test_the_thing ()
{
char cmd [3];
for (byte i = 0; i < sizeof cmd; i++)
cmd [i] = Serial.read ();
if (cmd [0] == 'T')
digitalWrite (13, HIGH);
else
digitalWrite (13, LOW);
} // end of test_the_thing
void setup ()
{
Serial.begin (115200);
pinMode (13, OUTPUT);
} // end of setup
void loop ()
{
if (Serial.available () >= 3)
test_the_thing ();
} // end of loop
Timing this, it shows that the reaction time to turn the LED on, after the third byte has arrived, is 19.375 uS. This then is reacting 2580 times as fast as you need it to, so that is plenty fast enough. Plenty of time in fact to be doing other things as well.
