diff --git a/NANOVNA_STM32_F303/board.h b/NANOVNA_STM32_F303/board.h index ddbcbc5..4c3cb8b 100644 --- a/NANOVNA_STM32_F303/board.h +++ b/NANOVNA_STM32_F303/board.h @@ -293,9 +293,9 @@ #define VAL_GPIOB_OSPEEDR (PIN_PUPDR_FLOATING(GPIOB_XN) | \ PIN_PUPDR_FLOATING(GPIOB_YN) | \ PIN_OSPEED_100M(GPIO_LCD_RESET) | \ - PIN_OSPEED_2M(GPIOB_SPI_SCLK) | \ - PIN_OSPEED_2M(GPIOB_SPI_MISO) | \ - PIN_OSPEED_2M(GPIOB_SPI_MOSI) | \ + PIN_OSPEED_100M(GPIOB_SPI_SCLK) | \ + PIN_OSPEED_100M(GPIOB_SPI_MISO) | \ + PIN_OSPEED_100M(GPIOB_SPI_MOSI) | \ PIN_OSPEED_100M(6) | \ PIN_OSPEED_100M(GPIO_SD_CD) | \ PIN_OSPEED_100M(8) | \ diff --git a/main.c b/main.c index a71af43..5547bd6 100644 --- a/main.c +++ b/main.c @@ -1005,8 +1005,6 @@ VNA_SHELL_FUNCTION(cmd_scan) VNA_SHELL_FUNCTION(cmd_hop) { freq_t start, stop, step; - uint32_t old_points = sweep_points; - uint32_t i; if (argc < 2 || argc > 4) { shell_printf("usage: hop {start(Hz)} {stop(Hz)} {step(Hz) | points} [outmask]\r\n"); return; @@ -1020,35 +1018,25 @@ VNA_SHELL_FUNCTION(cmd_hop) } if (argc >= 3) { step = my_atoui(argv[2]); - if (step > POINTS_COUNT) { - int i = 0; - for (freq_t f = start; f<= stop; f += step) - frequencies[i++] = f; - dirty = true; - sweep_points = 1 + (stop-start)/step; - } else { - sweep_points = step; - set_frequencies(start, stop, sweep_points); + if (step <= POINTS_COUNT && step > 0) { + step = (stop - start) / step; } } pause_sweep(); - setting.frequency_step = 0; - sweep(false); // Output data after if set (faster data recive) uint16_t mask = 3; if (argc == 4) { mask = my_atoui(argv[3]); } if (mask) { - for (i = 0; i < sweep_points; i++) { - if (mask & 1) shell_printf("%Q ", frequencies[i]); - if (mask & 2) shell_printf("%f ", value(measured[TRACE_ACTUAL][i])); - if (mask & 4) shell_printf("%f ", value(measured[TRACE_STORED][i])); - if (mask & 8) shell_printf("%f ", value(measured[TRACE_TEMP][i])); + for (freq_t f = start; f <= stop; f += step) { + if (mask & 1) shell_printf("%Q ", f); + float v = PURE_TO_float(perform(false, 0, f, false)); + if (mask & 2) shell_printf("%f ", v); shell_printf("\r\n"); } } - sweep_points = old_points; + resume_sweep(); } #endif