i have programed all motor ports to simply rotate in one direction and no motors move except for the motor in motor port 5.
i am programing with robotc and everything is up to date.
i also tried the same code with robotc programmed into a pic and only motor port 8 worked. these are the last on the breaker, does this have anything to do with it?
i have tried it with easyc programming and the cortex now works, what is the problem with robot c???
Have you seen the “how to ask smart questions” websites?
Have you seen all the previous official support threads for Cortex/EasyC/RobotC? The first thing they always ask is
What version of everything are you using?
“Everything is up to date” isn’t very helpful, since you could be wrong about what you think is up to date.
Exact versions for every component are helpful, RobotC v2.3, Firmware X, etc particularly if someone remembers “hey, I had that trouble on vX.y also, but vX.y+1 fixed it”.
RobotC didn’t work,
EasyC did work (maybe you fixed something)
did you try RobotC again?
Including a zip file of your program is helpful also.
It is possible for motor ports to be burned out in only one direction,
and it is possible for various versions of various compilers (EasyC and RobotC) to have different ideas of what direction is “forward”, so it is good to check that motors can run in both directions.
For someone with a shorter posting history than you, I would ask if you checked that moving the motors among ports shows that the motors are all good, and the problem follows the motors ports, not the motors. But I won’t.
i apologize for the poor posting style used before, usually my posts are more in depth and thought through, but i was on edge over this error and the overall cortex failure.
to add on to what i said before,
my robot c is version 2.30(8.30)
robot c firmware is version vex_cortex_0830.hex
firmware is version 2.6, and joystick is version 2.3.
more information about my cortex issue is that the motor port which is last on the breaker and is programmed to work, will work. if i change it so motor port 5 and 10 are not programmed then ports 4 and 9 will work and the rest will not.
Wow,That is either an unusual type of failure,
or a demonstration of the ability of a human mind to find patterns.
Can you zip up your code for motors 5,10 working and post it?
and also separately the motor 4,9 code ?
Audrey? from Austin? at UTDallas contest today also had to revert to EasyC, since none of her mentors could get RobotC to move from Autonomous to DriverControlled (on a PIC with Crystals and/or Vexnet upgrade). I’ll have to dig up and upgrade my RobotC so I can be a more useful mentor.
at this point, i know more about programing vex micro controllers then my teacher at my school.
when i wanted to confirm my theory about the pattern i just disabled motors 5 and 10 then motors 4, 5, 9, and 10, and so on.
i have recently got all the motor ports to work at the same time but only by updating the master firmware through easy c.
cortex–motortest-all motors full forwards except motors 5 and 10.c (875 Bytes)
cortex–motortest-all motors full forwards.c (1.01 KB)
More likely the problem is that you have named all your motors the same name “n”, and there is no error checking to tell you not to do that. Did you see any documentation that has an example of naming multiple motors to the same name to get them to run in parallel?
Try naming them all individually to m1, m2, …m10, and setting them all individually as well;
#pragma config(Motor, port1, m1, tmotorNormal, openLoop)
#pragma config(Motor, port2, m2, tmotorNormal, openLoop)
#pragma config(Motor, port3, m3, tmotorNormal, openLoop)
#pragma config(Motor, port4, m4, tmotorNormal, openLoop)
#pragma config(Motor, port5, m5, tmotorNormal, openLoop)
#pragma config(Motor, port6, m6, tmotorNormal, openLoop)
#pragma config(Motor, port7, m7, tmotorNormal, openLoop)
#pragma config(Motor, port8, m8, tmotorNormal, openLoop)
#pragma config(Motor, port9, m9, tmotorNormal, openLoop)
#pragma config(Motor, port10, m10, tmotorNormal, openLoop)
task main
{
while (1==1) {
motor[m1] = 90;
motor[m2] = 90;
motor[m3] = 90;
motor[m4] = 90;
motor[m5] = 90;
motor[m6] = 90;
motor[m7] = 90;
motor[m8] = 90;
motor[m9] = 90;
motor[m10] = 90;
} // wend
} // main
i did try doing this before and it had the same result. so i left it all as the same name just for ease of programming.
as for naming multiple motors as the same, it has worked before. i had all my motors for my arm as the name “arm” and it worked just as well as when i had it as “arm1, arm2, arm3, and arm4”
i do not believe that running the motors in parallel is an issue.
Since the EasyC firmware upgrade, RobotC runs all the motors now, so no point in continuing debug?
If you can post your current version numbers of everything that is currently working for you, (RobotC, Joystick firmware, Cortex Firmware, RobotC Cortex Firmware?) it may help other future users in the same situation.
i agree, now it works with:
cortex firmware v2.7
cortex robot c firmware vex_cortex_0830.hex
joystick firmware v 2.3
robot c version 8.3