Add more restarts
This commit is contained in:
parent
25d138d198
commit
979525f028
|
|
@ -475,12 +475,6 @@ bool more_zeros(uint8_t* pixels, int16_t &min_z){
|
|||
return false;
|
||||
}
|
||||
|
||||
enum {
|
||||
RESTART_INIT,
|
||||
DO_RESTART,
|
||||
WAS_RESTARTED
|
||||
};
|
||||
|
||||
void xyzcal_scan_pixels_32x32_Zhop(int16_t cx, int16_t cy, int16_t min_z, int16_t max_z, uint16_t delay_us, uint8_t* pixels){
|
||||
if (!pixels)
|
||||
return;
|
||||
|
|
@ -491,13 +485,10 @@ void xyzcal_scan_pixels_32x32_Zhop(int16_t cx, int16_t cy, int16_t min_z, int16_
|
|||
xyzcal_lineXYZ_to(cx - 1024, cy - 1024, min_z, delay_us, 0);
|
||||
int16_t start_z;
|
||||
uint16_t steps_to_go;
|
||||
/// restart if needed but just once
|
||||
/// 0 = init, 1 = do restart, 2 = restart was done, don't restart any more
|
||||
uint8_t restart = RESTART_INIT;
|
||||
/// available restarts (if needed)
|
||||
uint8_t restarts = 2;
|
||||
|
||||
do {
|
||||
if (restart == DO_RESTART)
|
||||
restart = WAS_RESTARTED;
|
||||
for (uint8_t r = 0; r < 32; r++){ ///< Y axis
|
||||
xyzcal_lineXYZ_to(_X, cy - 1024 + r * 64, z, delay_us, 0);
|
||||
for (int8_t d = 0; d < 2; ++d){ ///< direction
|
||||
|
|
@ -598,16 +589,16 @@ void xyzcal_scan_pixels_32x32_Zhop(int16_t cx, int16_t cy, int16_t min_z, int16_
|
|||
count_position[2] = z;
|
||||
}
|
||||
}
|
||||
/// do this in the first row only
|
||||
if (r == 0 && restart == RESTART_INIT){
|
||||
if (!more_zeros(pixels, min_z))
|
||||
restart = DO_RESTART;
|
||||
/// do the min_z addjusting in the first row only
|
||||
if (r == 0 && restarts){
|
||||
if (more_zeros(pixels, min_z))
|
||||
restarts = 0;
|
||||
}
|
||||
if (restart == DO_RESTART)
|
||||
if (restarts)
|
||||
break;
|
||||
// DBG(_n("\n\n"));
|
||||
}
|
||||
} while (restart == DO_RESTART);
|
||||
} while (restarts--);
|
||||
}
|
||||
|
||||
/// Returns rate of match
|
||||
|
|
|
|||
Loading…
Reference in New Issue