Okay... but why use nops? You really should (and its more stable this way) write your code re-entrantly, so that it can freely loop as the system lends itself to.
Personally, even when dead-reckoning a machine, I like to write a script executer so I have a simplified language i can quickly write autonomous scripts in (case in point, the debut of RALFF on our sweet 2006 adaptive autonomous mode) and lets you have multiple programs loaded that are switch-selectable at match time with either jumpers, toggle switches, or (my favorite) a hex-wheel encoder. Its a nice system... all you have to do is sit down with your strategist/driver and work out strategies that you like for autonomous, write the scripts, and give them a 'playbook'.
Well, i'm getting off track. For you to schedule things to happen, you can do something as simple as this if you want, now this is dirty but I think gets you where you want, again, if I were you I'd go ahead and just write the script executor, but, here we go:
Code:
//variable
unsigned int time = 0;
//inside User_Autonomous_Code
time++;
if (time < 10)
{
//do things that happen until 10 time counts (or until .254 seconds if using frc controller)
pwm01 = pwm02 = 200; //drive forwards-ish
}
else if (time < 100)
{
//do things that happen until 100 time counts (or 2.54seconds)
pwm01 = 100;
pwm02 = 200; //spin for a while
}
//etc.
That should do what you want I think... and yes, it is very very true that an encoded tire is always better than a dead-reckoned one.
-q