|
Yes, I can make you a map of the variables within the Controller. You need to understand there are quite a few angles which are visible as PEEKs.
The software has a move controller which maintains two angles:
Desired angle = where the servo should move to
Current angle = where the move controller thinks the servo is
It also has the speed, which determines how fast the Current is updated to achieve the desired.
A move is complete when Desired = Current, there is also a bit flag for each servo to show this.
The current angle is then modified, by adding the zero position, the Gyro inputs, and the direction is set. This then gives the servo output angle, which is sent to the servo. This can also be PEEKed
When you perform a MOTORIN, you are reading the actual servo position from the servo itself. This may differ from the servo output angle, depending on time and servo load. This value is not saved
When you perform a GETMOTORSET, the controller does a MOTORIN type command to all servos and writes the values returned to both the current and desired positions(asuming you selected that option)
MOTORIN is a pretty disruptive instruction to the C3024 code, and hence why GETMOTORSET is a problem.
I will map out the memory locations for you, and you can PEEK them. The POKE instruction in the standard C3024 code is broken for variables, so you will need my fixed version of the C3024 flash code if you want to POKE them
|