Skip to content

newMoveToDegree Int overflow in toStep variable #17

@drp0

Description

@drp0

int toStep = deg * totalSteps / 360 does not create correct value
Solved using:

void CheapStepper::newMoveToDegree (bool clockwise, int deg){

	// keep to 0-359 range
	if (deg >= 360) deg %= 360;
	else if (deg < 0) {
		deg %= 360; // returns negative if deg not multiple of 360
		if (deg < 0) deg += 360; // shift into 0-359 range
	}
	float f = totalSteps / 360.0; // drp
	int toStep = 0.5 + deg * f;
	newMoveTo (clockwise, toStep);
}

David

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions