![]() |
Programming "sleep" function
We need to move our arm in autonomous but can't figure out how to program in a delay to regulate how long the motor stays on for. How is everyone else doing this??
|
Re: Programming "sleep" function
Declare a global int counter, or a static int counter.
Suppose your autonomous mode can be divided into stages, like: Stage 1: Drive closer to rack Stage 2: Use camera to detect rack Stage 3: Drive to vision target Stage 4: Position Arm Stage 5: Place ringer Inside your autonomous routine, have something like this: if(counter >= 0 && counter < STAGE_ONE_END) { // actions to do in stage 1 } else if(counter >= STAGE_ONE_END && counter < STAGE_TWO_END) { // actions to do in stage 2 } else if(counter >= STAGE_TWO_END && counter < STAGE_THREE_END) { // actions to do in stage 3 } ... // more if statements counter++; The actual values of STAGE_ONE_END and so on would be determined experimentally. Or you could decide for exactly how long you want each stage to run, then take the cycle rate of the CPU (xx.x milliseconds) and determine how many iterations are equivalent to your desired time. |
Re: Programming "sleep" function
Use a counter. Its 26.2 ms for each time User_Autonomous_Code() is called.
Code:
#define STAGE_1 0 |
| All times are GMT -5. The time now is 04:45. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi