XYZ calibration - diagonal find_point_center
This commit is contained in:
parent
92997204a1
commit
869a99d8ad
@ -471,6 +471,7 @@ int16_t xyzcal_find_pattern_12x12_in_32x32(uint8_t* pixels, uint16_t* pattern, u
|
||||
}
|
||||
|
||||
#define MAX_DIAMETR 600
|
||||
#define XYZCAL_FIND_CENTER_DIAGONAL
|
||||
|
||||
int8_t xyzcal_find_point_center2(uint16_t delay_us)
|
||||
{
|
||||
@ -499,6 +500,37 @@ int8_t xyzcal_find_point_center2(uint16_t delay_us)
|
||||
// xyzcal_lineXYZ_to(x0, y0, z0 - 100, 500, 1);
|
||||
// z0 = _Z - 10;
|
||||
|
||||
int8_t ret = 1;
|
||||
|
||||
#ifdef XYZCAL_FIND_CENTER_DIAGONAL
|
||||
int32_t xc = 0;
|
||||
int32_t yc = 0;
|
||||
int16_t ad = 45;
|
||||
for (; ad < 360; ad += 90)
|
||||
{
|
||||
float ar = (float)ad * _PI / 180;
|
||||
int16_t x = x0 + MAX_DIAMETR * cos(ar);
|
||||
int16_t y = y0 + MAX_DIAMETR * sin(ar);
|
||||
if (!xyzcal_lineXYZ_to(x, y, z0, delay_us, -1))
|
||||
{
|
||||
printf_P(PSTR("ERROR ad=%d\n"), ad);
|
||||
ret = 0;
|
||||
break;
|
||||
}
|
||||
xc += _X;
|
||||
yc += _Y;
|
||||
xyzcal_lineXYZ_to(x0, y0, z0, delay_us, 0);
|
||||
}
|
||||
if (ret)
|
||||
{
|
||||
printf_P(PSTR("OK\n"), ad);
|
||||
x0 = xc / 4;
|
||||
y0 = yc / 4;
|
||||
printf_P(PSTR(" x0=%d\n"), x0);
|
||||
printf_P(PSTR(" y0=%d\n"), y0);
|
||||
}
|
||||
|
||||
#else //XYZCAL_FIND_CENTER_DIAGONAL
|
||||
xyzcal_lineXYZ_to(x0 - MAX_DIAMETR, y0, z0, delay_us, -1);
|
||||
int16_t dx1 = x0 - _X;
|
||||
if (dx1 >= MAX_DIAMETR)
|
||||
@ -541,9 +573,11 @@ int8_t xyzcal_find_point_center2(uint16_t delay_us)
|
||||
printf_P(PSTR(" x0=%d\n"), x0);
|
||||
printf_P(PSTR(" y0=%d\n"), y0);
|
||||
|
||||
#endif //XYZCAL_FIND_CENTER_DIAGONAL
|
||||
|
||||
xyzcal_lineXYZ_to(x0, y0, z0, delay_us, 0);
|
||||
|
||||
return 1;
|
||||
return ret;
|
||||
}
|
||||
|
||||
#ifdef XYZCAL_FIND_POINT_CENTER
|
||||
|
Loading…
Reference in New Issue
Block a user