SD speed test (DEBUG)

homeaxis - fix set_destination_to_current
This commit is contained in:
Robert Pelnar 2018-02-20 18:50:20 +01:00
parent d91dbc73c9
commit e2e48bfd71
2 changed files with 56 additions and 0 deletions

View file

@ -1140,6 +1140,51 @@ void setup()
// Force SD card update. Otherwise the SD card update is done from loop() on card.checkautostart(false),
// but this times out if a blocking dialog is shown in setup().
card.initsd();
#ifdef DEBUG_SD_SPEED_TEST
if (card.cardOK)
{
uint8_t* buff = (uint8_t*)block_buffer;
uint32_t block = 0;
uint32_t sumr = 0;
uint32_t sumw = 0;
for (int i = 0; i < 1024; i++)
{
uint32_t u = micros();
bool res = card.card.readBlock(i, buff);
u = micros() - u;
if (res)
{
printf_P(PSTR("readBlock %4d 512 bytes %lu us\n"), i, u);
sumr += u;
u = micros();
res = card.card.writeBlock(i, buff);
u = micros() - u;
if (res)
{
printf_P(PSTR("writeBlock %4d 512 bytes %lu us\n"), i, u);
sumw += u;
}
else
{
printf_P(PSTR("writeBlock %4d error\n"), i);
break;
}
}
else
{
printf_P(PSTR("readBlock %4d error\n"), i);
break;
}
}
uint32_t avg_rspeed = (1024 * 1000000) / (sumr / 512);
uint32_t avg_wspeed = (1024 * 1000000) / (sumw / 512);
printf_P(PSTR("avg read speed %lu bytes/s\n"), avg_rspeed);
printf_P(PSTR("avg write speed %lu bytes/s\n"), avg_wspeed);
}
else
printf_P(PSTR("Card NG!\n"));
#endif DEBUG_SD_SPEED_TEST
if (eeprom_read_byte((uint8_t*)EEPROM_POWER_COUNT) == 0xff) eeprom_write_byte((uint8_t*)EEPROM_POWER_COUNT, 0);
if (eeprom_read_byte((uint8_t*)EEPROM_CRASH_COUNT_X) == 0xff) eeprom_write_byte((uint8_t*)EEPROM_CRASH_COUNT_X, 0);
if (eeprom_read_byte((uint8_t*)EEPROM_CRASH_COUNT_Y) == 0xff) eeprom_write_byte((uint8_t*)EEPROM_CRASH_COUNT_Y, 0);
@ -1845,6 +1890,7 @@ void homeaxis(int axis, uint8_t cnt, uint8_t* pstep)
// for the stall guard to work.
current_position[axis] = 0;
plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
set_destination_to_current();
// destination[axis] = 11.f;
destination[axis] = 3.f;
plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder);
@ -6527,6 +6573,11 @@ void get_coordinates()
if (next_feedrate > MAX_SILENT_FEEDRATE) next_feedrate = MAX_SILENT_FEEDRATE;
#endif //MAX_SILENT_FEEDRATE
if(next_feedrate > 0.0) feedrate = next_feedrate;
if (!seen[0] && !seen[1] && !seen[2] && seen[3])
{
// float e_max_speed =
// printf_P(PSTR("E MOVE speed %7.3f\n"), feedrate / 60)
}
}
}

View file

@ -131,7 +131,12 @@ private:
#endif // SDCARD_SORT_ALPHA
#ifdef DEBUG_SD_SPEED_TEST
public:
#endif DEBUG_SD_SPEED_TEST
Sd2Card card;
private:
SdVolume volume;
SdFile file;
#define SD_PROCEDURE_DEPTH 1