|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
|||
|
|||
|
Need help with ramping in VEX EasyC
We're trying a "For" loop and are having problems having both wheels to begin ramping. Can we insert both motors in the same "For" loop or do we have to use two "For" loops to have both motors ramp. After writing the program and trying to compile, we get an error[yy] message. This is our "For" loop statement below, and the line we receive our error in. Is this close or are we way off? Our goal is to use incrementing ramping to have the robot move in a straight line. Are we using the correct loop for using both wheels?
for ( step1 = 0 && step2 = 255 ; step1 < 127 && step2 > 127 ; step1 += 5 && step2 += 5 ) Team1611 South Effingham High School Georgia |
|
#2
|
|||
|
|||
|
Re: Need help with ramping in VEX EasyC
Try this
Code:
for ( step1 = 0, step2 = 255 ; step1 < 127 && step2 > 127 ; step1 += 5, step2 += 5 ) |
|
#3
|
|||
|
|||
|
Re: Need help with ramping in VEX EasyC
The last example will solve the compile problem, but now I think you need to fix your logic.
for ( step1 = 0, step2 = 255 ; step1 < 127 && step2 > 127 ; step1 += 5, step2 += 5 ) If you want the motors to ramp from stopped to maximum speed in steps of 5, the statement would need to change to: for ( step1 = 127, step2 = 127 ; step1 < 255 && step2 > 0 ; step1 += 5, step2 -= 5 ) You also need to consider that the system (the robot and motors) will not respond instantaneously to changes in pwm values. There needs to be some kind of delay between each new set values that are sent to the motors. If step1 and step2 are unsigned char variables, there is also an issue with the increment/decrement by 5. The variables will wrap when the increment takes the value beyond 255 or the decrement takes the value beyond 0. It will take three passes before the for loop will end. Run the example below to see the problem: #include "Main.h" void main ( void ) { unsigned char step1 = 127; unsigned char step2 = 127; PrintToScreen ( "Starting\n" ) ; for ( step1 = 127, step2 = 127 ; step1 < 255 && step2 > 0 ; step1 += 5, step2 -= 5 ) { PrintToScreen ( "Value of step1 is: %d\n" , (int)step1 ) ; PrintToScreen ( "Value of step2 is: %d\n" , (int)step2 ) ; } PrintToScreen ( "Finished\n" ) ; } To address this problem: Change increment/decrement to 1 or use signed short instead of unsigned char and make sure that the value sent to the motors is within the range of 0 to 255. Last edited by charrisTTI : 03-11-2006 at 12:15. |
|
#4
|
|||
|
|||
|
Thank you for your help, it worked great.
Team 1611 Quote:
|
|
#5
|
|||
|
|||
|
Re: Need help with ramping in VEX EasyC
Quote:
See the addtional information in my edit of the original post. I added the information earlier, but the update was lost. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Help needed with coding simultaneous movement (EasyC/VEX) | bodaciousllama | Programming | 7 | 14-08-2006 17:35 |
| EasyC-Vex Rx/motor frustrations- please help! | Steve0100 | Programming | 10 | 08-07-2006 02:18 |
| Speed Ramping with Deadzone | Dan894 | Programming | 11 | 20-01-2006 14:04 |
| Kickoff easyC workshop integrated into EasyC help file | Dan Larochelle | Programming | 0 | 11-01-2006 06:12 |
| hey need some help with writing a code please help me here | magical hands | Programming | 9 | 01-01-2004 21:46 |