|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
||||
|
||||
|
That was all there was in the compile box and I posted the whole .c file; is there a different file that you want to see???
![]() |
|
#2
|
|||||
|
|||||
|
Re: What is wrong with this code???? It won't Compile and I don't know why? Please Help
Quote:
2- Is this a file you wrote/modified? 3- Is there a Navigate.h? that might be what he is talking about. 4- Did you write this code? |
|
#3
|
|||||
|
|||||
|
Re: What is wrong with this code???? It won't Compile and I don't know why? Please Help
Hi,
He'd like you to post your Navigate.h header file, to look at how LOST_TARGET_TIMEOUT is defined...if that is where it is defined. You could also do a search, through the folder that you have your code in, to see if it turns up anywhere. If not, then the you've found your error Eric Schreffler |
|
#4
|
|||||
|
|||||
|
Re: What is wrong with this code???? It won't Compile and I don't know why? Please Help
Or, in MPLAB, Project>Find in Project files... and type in "LOST_TARGET_TIMEOUT" (w/o quotes). in the Output window, see where it comes up.
|
|
#5
|
|||||
|
|||||
|
Re: What is wrong with this code???? It won't Compile and I don't know why? Please Help
Dave's right, the compiler is complaining about line 367:
Code:
if (drive_timer > LOST_TARGET_TIMEOUT) If that doesn't help, then show us the section of the header file where LOST_TARGET_TIMEOUT is defined (probably in navigate.h). (Oh, and next time you need to post programs here, surround it with [CODE] and [/CODE] so the formatting is preserved.) |
|
#6
|
|||
|
|||
|
Re: What is wrong with this code???? It won't Compile and I don't know why? Please He
Quote:
|
|
#7
|
|||||
|
|||||
|
Re: What is wrong with this code???? It won't Compile and I don't know why? Please He
Quote:
Code:
case DR_BOTH_CENTER:
{
Navigator_State = AT_TARGET; // Both servos are within the target threshold
printf("AT_TARGET\n");
break;
}
}
}
else
{
// We are not locked on - Stop
// give the trackers a chance to catch up
left_drive_set = LSTOP;
right_drive_set = RSTOP;
drive_timer++ ;
if (drive_timer > LOST_TARGET_TIMEOUT)
{
Navigator_State = TURN_TO_TARGET;
printf("TURN_TO_TARGET\n"); // Done driving to center
left_servo_set = 127;
right_servo_set = 127;
}
}
break;
}
There is also a case statement commented out near the top of the big switch. That can't be doing what you want, can it? If you want to "skip" that state, as the comments suggest, I think you need to initialize your state variable to DRIVE_TO_CENTER instead of WAIT_TO_DRIVE in line 37. |
|
#8
|
||||
|
||||
|
Re: What is wrong with this code???? It won't Compile and I don't know why? Please He
Quote:
357 matches to 353 (case DR_BOTH_CENTER) 358 matches to 258(switch drive_state) 359 matches to 207(if Tracker_Data...) I think that you're onto something with that commented case at line 131. That's definately not right Last edited by Dave Scheck : 24-03-2004 at 12:40. |
|
#9
|
|||||
|
|||||
|
Re: What is wrong with this code???? It won't Compile and I don't know why? Please He
Quote:
As to the commented out case label, THAT does look strange, but I highly doubt that would cause the compile error in question. I don't know what the compiler will do with a chunk of code inside a switch statement without a case label. My guess is that it will simply be unreachable. |
|
#10
|
||||||
|
||||||
|
Re: What is wrong with this code???? It won't Compile and I don't know why? Please He
Quote:
|
|
#11
|
||||
|
||||
|
Re: What is wrong with this code???? It won't Compile and I don't know why? Please He
indent...indent...indent
|
|
#12
|
|||||
|
|||||
|
Re: What is wrong with this code???? It won't Compile and I don't know why? Please He
Quote:
If the trouble is with an unprintable character in the source code, the problem character probably wouldn't have survived being pasted here. But I believe that the definition of LOST_TARGET_TIMEOUT in navigate.h is a likely culprit and should be investigated. |
|
#13
|
|||||
|
|||||
|
Re: What is wrong with this code???? It won't Compile and I don't know why? Please He
Quote:
Last edited by Greg Ross : 24-03-2004 at 15:55. |
|
#14
|
|||||
|
|||||
|
Re: What is wrong with this code???? It won't Compile and I don't know why? Please He
Quote:
I'm not anywhere near the computer we use to program the robot -- in fact, it's halfway to Chicago at the moment. I interpreted your mention of "the editor" as referring to viewing the HTML source of the page, where at least a little of the c file's formatting seems to be visible. |
|
#15
|
||||
|
||||
|
well here is the navigate.h file:
Code:
/******************************************************************************* * * TITLE: navigate.h * * VERSION: 1.0 * * DATE: 08-Jan-2004 * * AUTHOR: Richard D. Petras * * COMMENTS: * ******************************************************************************** * * CHANGE LOG: * * DATE REV DESCRIPTION * ----------- --- ---------------------------------------------------------- * 03-Dec-2003 0.1 * 08-Jan-2004 1.0 RDP The version used at the 2004 kickoff * *******************************************************************************/ #ifndef _navigate_h #define _navigate_h #include "tracker.h" // Navigator state machine values // These values will be stored in a global variable called // Navigator_State. As each state transition is detected, // the state will change to describe how the vehicle should // operate. #define WAIT_TO_DRIVE 0 #define DRIVE_TO_CENTER 1 #define TURN_TO_TARGET 2 #define DRIVE_TO_TARGET 3 #define PASSED_TARGET 4 #define AT_TARGET 5 #define OVER_CURRENT 6 // Drive state // These values are stored in the drive_state variable. They tell // us where the beacon is with respect to each tracker on the robot. #define DR_UNDEFINED 0 #define DR_BOTH_LEFT 1 #define DR_BOTH_RIGHT 2 #define DR_BOTH_STRAIGHT 3 #define DR_BOTH_CENTER 4 #define DR_LEFT_STRAIGHT 5 #define DR_RIGHT_STRAIGHT 6 #define DR_REFLECTION 7 // Some values for each individual tracker #define DR_LEFT 0 #define DR_CENTER 1 #define DR_RIGHT 2 // Which pwms are our tracker servoes and drive motors? It // is nice to only have to change this in one place. #define left_servo pwm10 #define right_servo pwm11 #define left_drive pwm14 #define right_drive pwm15 // Simplify the big structure for beacon quality // from the tracker code. #define LL Sensor_Stats[0].Beacon_Quality[Tracker_Data[left].Beacon_Type] #define LR Sensor_Stats[1].Beacon_Quality[Tracker_Data[left].Beacon_Type] #define RL Sensor_Stats[2].Beacon_Quality[Tracker_Data[right].Beacon_Type] #define RR Sensor_Stats[3].Beacon_Quality[Tracker_Data[right].Beacon_Type] // The rest of these defines are tweekable parameters to fit // the characteristics of different drive trains. You might // want to divide these into a separate set of values for the // left and right side drives if your motor characteristics // are sufficiently different. This would require changing // navigator.c, but the places to make the changes should be // obvious. :-) // Stop values #define LSTOP 127 #define RSTOP 127 // Fast backward #define FBWD (LSTOP - 90) // Slow Backward #define SBWD (LSTOP - 55) // Very Slow Backward #define VSBWD (LSTOP - 10) // Very Slow Forward #define VSFWD (LSTOP + 10) // Slow Forward #define SFWD (LSTOP + 55) // Fast Forward #define FFWD (LSTOP + 90) // Note: All the logic assumes the servo max points right // Its not too hard to change the code to accomidate the other // direction, in fact the code started out that way... // These values are the servo settings (assuming 127 is straight // ahead) that tells you that the beacon is between the trackers // and about 1/2 meter ahead. The exact values will depend on the // baseline of your trackers. #define LEFT_GOAL 135 #define RIGHT_GOAL 120 // These values tell you when the target is far to the left of the // left servo, or far to the right of the right servo. We switch // navigator states at this point #define LEFT_PASS 60 #define RIGHT_PASS 195 // Adjust these for your drive train // This is the gain that is multiplied by your pointing error. // It can be used as part of a feedback loop to steer toward the // goal. Note: the error calculation is included in the code // as an example, but was not used in the actual kickoff demo. // (we wanted to drive straight until we passed the goal) #define DRIVE_GAIN 2 // This is a timer for the short drive away from the wall before // we startt to turn in place toward the beacon. #define DRIVE_TO_CENTER_TIME 5 // I bet you didn't know we were using the current sensors in the // kickoff demo. If the current sensor reading got above this // value, we might be up against the wall. In that case we might // want to stop driving for a short time to allow the robot to level // out. #define MAX_CURRENT 700 // If we haven't seen the target with any of the trackers for // a while, just start searching again by turning in place. //#define LOST_TARGET_TIMEOUT 100 // Declaration for the Navigate function void Navigate(void); #endif // _navigate_h |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| What is your most prefered programming language? | Hailfire | Programming | 156 | 19-01-2005 21:42 |
| Printf warning during compile? | actorindp | Programming | 4 | 20-02-2004 17:02 |
| How to measure execution time? And code size? | gnormhurst | Programming | 17 | 17-02-2004 08:06 |
| Can't Compile the Default Code | pressurex1 | Programming | 4 | 25-01-2004 20:26 |
| Problem with FRC Default code | AsimC | Programming | 2 | 11-01-2004 19:22 |