Hi Andrew,
I think I see the problem. This code in the callback that always executes (notice the comment by K2CNC):
Code:
case 2:
//* // Comment out for Servo Tunning in KMotion Step Response
if (HomingRunning == 0 && (persist.UserData[SETTINGS_PERSIST] & 0x40000000) == 0)
{
if ((!chan[PortArray[0]].Enable) |
(!chan[PortArray[1]].Enable) |
(!chan[PortArray[2]].Enable) |
(!chan[PortArray[3]].Enable))
{
if (ReadBit(EN_DRV))
{
if (!chan[PortArray[0]].Enable)
SetBit(1040);
if (!chan[PortArray[1]].Enable)
SetBit(1041);
if (!chan[PortArray[2]].Enable)
SetBit(1042);
if (!chan[PortArray[3]].Enable)
SetBit(1043);
}
ClearBit(EN_DRV);
ClearBit(FAN);
}
}
it watches if any axis is ever disabled and if so disables the drives. The Step Response Move button disables the axis momentarily to download the screen settings.
Commenting out and re-flashing might be risky, It looks like setting bit 30 in persist Variable 0 will disable that functionality.
Try running this code in an unused thread:
Code:
#include "KMotionDef.h"
#define SETTINGS_PERSIST 0
main()
{
persist.UserData[SETTINGS_PERSIST] |= 0x40000000;
}
Then see if the Step Response Move will work.
HTH
Regards