 void relative_steps(xy_point * p) {
 	int32_t steps, err, e;
 	xy_point delta = {abs(p->x), abs(p->y)};
-	xy_point step = {(p->x > 0 ? 1 : (p->x < 0 ? -1 : 0)), (p->y > 0 ? 1 : (p->y < 0 ? -1 : 0)};
+	xy_point step = {(p->x > 0 ? 1 : (p->x < 0 ? -1 : 0)), (p->y > 0 ? 1 : (p->y < 0 ? -1 : 0))};
 
 	steps = max(delta.x, delta.y);
 	err = (delta.x > delta.y ? delta.x : -delta.y) / 2;

/* turn laser off and put projector in home position */
void go_home() {
	xy_point p = {0, 0};
	set_laser(0);
	absolute_steps(&p);
}


/* turn laser on or off (pull mosfet gate down to turn the laser on) */
void set_laser(bool is_on) {
	if (is_on)
		PORTB |= LASER_MASK;
	else
		PORTB &= ~LASER_MASK;
}

/* go to the given axes position from current motors position */
