The simplest way is to design your software units for test. What I mean is this: do NOT make any calls to the WPI library from within your unit. Make all calls to WPI library in a wrapper function.
For example:
Code:
void periodic_10ms_task(void)
{
armAngle = WPI_readEncoder(ARM_ENCODER);
armLimit = WPI_readDIO(ARM_LIMIT_SWITCH);
armOutput = controlArm(armAngle, armLimit);
WPI_setPWM(armOutput);
}
Before anyone complains: I don't really know what the WPI library function name are - the above names are made up (we use LabVIEW).
Now you can test you controlArm() function as a unit on a PC using MS VisualC++ Express.