NXC Version 1.2.1 r5
Rotate motor with PID factors.
Run the specified outputs forward for the specified number of degrees. Specify proportional, integral, and derivative factors.
The motor API functions are thread-safe and blocking on the motor resource(s) requested. If you call RotateMotor(OUT_AB, 75, 3600) then no other thread will be able to control motors A and B until the already executing RotateMotor function finishes. But now you can safely call RotateMotor(OUT_A, 75, 3600) on one thread and RotateMotor(OUT_B, 75, 720) on another simultaneously executing thread without having program errors or erratic motor behavior.
Since the functions do not know at compile time which port is being utilized when you use a variable as the port parameter, the RotateMotor functions acquire all three motor port resources for the duration of their operation in that case. So you can safely call RotateMotor using a variable for the port parameter on two simultaneously executing threads but one of the two calls will be blocked until the first one has completed executing.
|outputs||Desired output ports. Can be a constant or a variable, see Output port constants. If you use a variable and want to control multiple outputs in a single call you need to use a byte array rather than a byte and store the output port values in the byte array before passing it into this function.|
|pwr||Output power, 0 to 100. Can be negative to reverse direction.|
|angle||Angle limit, in degree. Can be negative to reverse direction.|
|p||Proportional factor used by the firmware's PID motor control algorithm. See PID constants.|
|i||Integral factor used by the firmware's PID motor control algorithm. See PID constants.|
|d||Derivative factor used by the firmware's PID motor control algorithm. See PID constants.|