Delta_G:
OK, so that line is waiting for you to enter something on the serial monitor. Now think about where you have it for a minute.First you read from the serial monitor. Then you wait for something to be entered. Does that sound right?
The way it is, only after you enter something else will the code pass that line and get to the part where it sets your fire rate. So you appear to be one behind. You send a command and then the code hangs there until you send another command. Then once it sees that you've sent another command, it will finish up with the one it already had and set your fire rate. Then loop comes back around and reads the new message and then hangs there doing nothing until another new message comes through.
D'oh, I feel stupid now. :L I just had to move it to the top.