The vex encoder ticks 90 times per revolution. That is ~700 ticks a sec. at 450 rpm. The vex controller may be able to handle that, but I haven't tried it.
You could use the terminal built into IFI/Intelitek Loader. I assume you will want to use EasyC if you're on a tight schedule. If you are not familiar with MPLab, interrupts, and timers, then you want to use EasyC.
I would suggest somthing like this(this is easyC).
Code:
void Main (void)
{
unsigned long count = 0;
unsigned long old_count = 0;
unsigned long timer;
unsigned long old_timer;
int rpm;
int diff;
StartEncoder(1);
StartTimer(1);
while(1)
{
timer = GetTimer(1);
if (timer - old timer >= 1000) //only do the calculation once a second.
{
old_timer = timer;
count = GetEncoder(1);
diff = count - old_count;
old_count = count;
rpm = (diff * 60) / 90; //# of ticks * 90 secs / 90 ticks per rev.
PrintToScreen("RPM = %d\n", (int)rpm;
}
}
}
I have not tested this code, but it should at least get you started.
I have attached an EasyC pro project(vex) with this code.