From cdd7ea30f409fba8c65a230f2e9a37a7d6d1947d Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 11 Aug 2021 11:28:09 +0300 Subject: [PATCH] Fix LUT loop --- Firmware/tmc2130.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Firmware/tmc2130.cpp b/Firmware/tmc2130.cpp index 8f29cd480..1a77d7791 100755 --- a/Firmware/tmc2130.cpp +++ b/Firmware/tmc2130.cpp @@ -909,11 +909,11 @@ void tmc2130_set_wave(uint8_t axis, uint8_t amp, uint8_t fac1000) uint8_t x[3] = {255,255,255}; //X segment bounds (MSLUTSEL) uint8_t s = 0; //current segment int8_t b; //encoded bit value - int8_t dA; //delta value - uint8_t i; //microstep index + int8_t dA; //delta value + uint8_t i = 0; //microstep index uint32_t reg = 0; //tmc2130 register tmc2130_wr_MSLUTSTART(axis, 0, amp); - for (i = 0; i < 256; i++) + do { if ((i & 0x1f) == 0) reg = 0; @@ -965,7 +965,7 @@ void tmc2130_set_wave(uint8_t axis, uint8_t amp, uint8_t fac1000) else reg >>= 1; // printf("%3d\t%3d\t%2d\t%2d\t%2d\t%2d %08x\n", i, vA, dA, b, w[s], s, reg); - } + } while (i++ != 255); tmc2130_wr_MSLUTSEL(axis, x[0], x[1], x[2], w[0], w[1], w[2], w[3]); }