|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
Delay code isn't delaying.
I'm working with Kevin Watson's 3.0 compatible FRC framework. I have code in the begining of my Autonomous() function that should cause the robot to wait, based on a few constants defined in Autonomous.h. It doesn't seem to work, and just takes off immediately. Could it have something to do with the fact that the field control system spends a moment in teleop before jumping to autonomous in the begining?
I attached a .zip archive with my entire workspace. Thank you for helping. -Guy Davidson |
|
#2
|
|||||
|
|||||
|
Re: Delay code isn't delaying.
Might it have something to do with this line in autonomous.h?
Code:
#define WAITING_TIME 0 |
|
#3
|
|||
|
|||
|
Re: Delay code isn't delaying.
That line is commented out as part of this block:
Code:
/* #define LOOPS_IN_A_SECOND 38 #define WAITING_TIME 0 #define TICKS_IN_A_FOOT 156 //163 * 23 / 24 #define DRIVE_FORWARD_1 10 //45 //in ft #define DRIVE_FORWARD_2 10 //in ft #define DRIVE_FORWARD_3 40 //in ft #define DRIVE_FORWARD_4 10 //in ft #define TURN_LEFT_1 65 // in diffs #define TURN_LEFT_2 57 // in diffs #define ANGULAR_INCREMENT 5 //in diffs #define LINEAR_INCREMENT 156 //163 * 23 / 24 #define POSITION_INPUT_1 rc_dig_in17 //0 && 0 = LEFT, 1 && 0 or 0 && 1 = CENTER, 1 && 1 = RIGHT #define POSITION_INPUT_2 rc_dig_in18 //0 && 0 = LEFT, 1 && 0 or 0 && 1 = CENTER, 1 && 1 = RIGHT */ Code:
#define LOOPS_IN_A_SECOND 38 #define WAITING_TIME 8 |
|
#4
|
|||||
|
|||||
|
Re: Delay code isn't delaying.
I didn't think the preprocessor cared about comment lines. Are you getting any compiler errors or warnings about trying to redefine a symbol?
|
|
#5
|
|||
|
|||
|
Re: Delay code isn't delaying.
Nope. No errors or warnings what-so-ever, as far as I can see.
|
|
#6
|
|||
|
|||
|
Re: Delay code isn't delaying.
The best thing to do for delays is make a counter that does everything. Here is a few lines that I used for our robot in the Tacoma Regional:
int timer = 0; if(timer < 72) /* 72, if I remember right, is about 2 seconds, this number can be adjusted however you need it to be */ { timer ++; } else { // This is where the remainder of autonomous functions occured } |
|
#7
|
||||
|
||||
|
Re: Delay code isn't delaying.
It cycles 40 times a second right? So you can just make a function that returned i / 40 so you can say if(timer < 2) which would be the actual amount of seconds. I know it's basic math to just multiply by 40, but it makes the code a little more readable for someone that doesn't know that.
|
|
#8
|
|||
|
|||
|
Re: Delay code isn't delaying.
That's pretty much what I have there.
|
|
#9
|
|||
|
|||
|
Re: Delay code isn't delaying.
if that is what you are doing, I don't know what the issue would be. Can you copy and paste your delay code here so I (or anyone else) can help you?
|
|
#10
|
|||
|
|||
|
Re: Delay code isn't delaying.
It's in autonomous.c in the attached archive. Since it's also based on stuff in autonomous.h, I left it in an archive. Would it help if I copy both .c and .h here?
|
|
#11
|
||||
|
||||
|
Re: Delay code isn't delaying.
The only thing I can think of now is changing this:
if(auton_counter < WAITING_TIME * LOOPS_IN_A_SECOND) to this: if(auton_counter < (WAITING_TIME * LOOPS_IN_A_SECOND)) Maybe try printing out WAITING_TIME and LOOPS_IN_A_SECOND and see what it's outputting. |
|
#12
|
||||||
|
||||||
|
Re: Delay code isn't delaying.
What does your debug statement say for the value of counter?
|
|
#13
|
|||
|
|||
|
Re: Delay code isn't delaying.
The code is fairly confusing for me as to what you are trying to do. The way I learned programming makes this very hard to read, no offense. I just can't figure out what is wrong with it.
|
|
#14
|
|||||
|
|||||
|
Re: Delay code isn't delaying.
Quote:
I don't remember who said it, but I agree with the philosophy that says a programmer's job is to write documentation that compiles into a working program. |
|
#15
|
|||
|
|||
|
Re: Delay code isn't delaying.
That's the next thing I was going to check. I put it in there during our last competition in hopes of getting around to test it there, and I haven't been able to yet. I'm hoping to do that early Thursday morning in Atlanta.
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Kevin Watson's gyro code isn't compling | Griffin | Programming | 3 | 15-02-2008 20:34 |
| Delay | jasonpeinko | Programming | 8 | 18-01-2008 15:56 |
| Delay Help! | waiakea2024 | Programming | 7 | 21-02-2007 12:41 |
| Delay | Gal Longin | Programming | 1 | 09-12-2004 10:37 |
| Delaying/Dampening motor response | cadets | Control System | 4 | 05-02-2004 18:27 |