|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
|||
|
|||
|
Delay Function
Can someone show me a way to write a function that can delay the robot. I would like to write a function and put it in ‘user_routines.c’ and call it anywhere in my ‘user_routines_fast.c’ file. Simply I would like to:
{ pwm13 = 167; pwm15 = 167; delay = 100; } where ‘delay =’ would pause the robot for whatever time you gave it. Your help would be appreciated. What would the function look like? Thanks... |
|
#2
|
||||
|
||||
|
Re: Delay Function
maybe somthing like this..
Code:
void delay(unsigned int seconds)
{
unsigned int current = 0;
while (current < (seconds * 1000) / 26.4) // Seconds * 1000 to get milliseconds and then / 26.4 millisecond loop
{
getdata(); // forget what parameter getdata takes
current++;
putdata(); // forget what parameter putdata takes..
}
}
|
|
#3
|
|||
|
|||
|
Re: Delay Function
"Stalling" execution is generally a bad idea. I would make a "loopcounter" variable, and increase the counter every time the function runs. After a certain number of loops, make it do the next thing.
For example, here's our pump code: Code:
void pump_routine(void) {
static unsigned int loops = 0; <--- Loop Counter
if(BTN_PUMP_DISABLE) {
if(DIGIN_PUMP_PRESSURE_SWITCH && loops>10) { <-- If more than ten loops have passed
RLY_PUMP_ON = 0;
}
else if(DIGIN_PUMP_PRESSURE_SWITCH) {
loops++; <-- Increase loop counter
RLY_PUMP_ON = 1;
}
else {
loops = 0;
RLY_PUMP_ON = 1;
}
}
else {
RLY_PUMP_ON = 0;
loops = 0;
}
RLY_PUMP_NUL = 0;
}
|
|
#4
|
||||
|
||||
|
Re: Delay Function
i've thought about it before, and it turns out something like bear24rw's idea.
Code:
int counter=0;
void User_Autonomous_Code(void)
{
static unsigned int i;
const float delay = 100;
int counter, int limit=(delay*1000)*26.4;
for(counter=0, counter<limit, counter++)
{
}
}
|
|
#5
|
||||
|
||||
|
Re: Delay Function
Quote:
|
|
#6
|
|||
|
|||
|
Re: Delay Function
You do realize that the range for an int is -32,768 to +32,767?
|
|
#7
|
||||
|
||||
|
Re: Delay Function
Quote:
Perhaps you will find some insight in this recent thread I'd suggest structuring your autonomous code to run every 26ms (off the SPI data updates), tuck some timers into that, and structure you code as a state machine. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Delay Help! | waiakea2024 | Programming | 7 | 21-02-2007 12:41 |
| VEX Ultrasonic Sensor delay | P1h3r1e3d13 | Programming | 4 | 28-03-2006 13:45 |
| NERDS Delay... | Andy Grady | General Forum | 21 | 14-03-2006 21:52 |
| Delay in autonomous mode | SpeakerSilenced | Programming | 1 | 22-02-2005 10:58 |
| Delay | Gal Longin | Programming | 1 | 09-12-2004 10:37 |