diff --git a/README.md b/README.md index d74eb8d..c47931d 100644 --- a/README.md +++ b/README.md @@ -761,6 +761,7 @@ void loop() { - v2.1.8 - оптимизация, исправлен KEEP_SPEED в GStepper - v2.2.0 - добавлен скоростной профиль GS_FAST_PROFILE для GStepper2, GPlanner, GPlanner2. Поддержка режима "слежения" для GStepper2 - v2.2.1 - небольшая оптимизация SRAM +- v2.3 - fix compiler warnings, поддержка esp32 ## Баги и обратная связь diff --git a/src/FIFO.h b/src/FIFO.h index 46bcc95..61e3ca3 100644 --- a/src/FIFO.h +++ b/src/FIFO.h @@ -8,7 +8,7 @@ template class FIFO { public: FIFO() { - for (int i = 0; i < SIZE; i++) buf[i] = 0; + for (uint16_t i = 0; i < SIZE; i++) buf[i] = 0; } // очистить void clear() { diff --git a/src/GyverPlanner2.h b/src/GyverPlanner2.h index 07aa5d5..1ce5d55 100644 --- a/src/GyverPlanner2.h +++ b/src/GyverPlanner2.h @@ -365,7 +365,7 @@ class GPlanner2 { uint32_t nextS = calcS(0); // поиск максимальной конечной скорости - for (int i = 0; i < bufV.available() - 1; i++) { + for (uint16_t i = 0; i < bufV.available() - 1; i++) { int32_t dn0[_AXLES]; for (int j = 0; j < _AXLES; j++) dn0[j] = bufP[j].get(i + 1) - bufP[j].get(i); // расстояние между точками (катеты) uint32_t S1 = nextS; // "гипотенуза" (на 1 шаге посчитана выше) @@ -391,7 +391,7 @@ class GPlanner2 { } // уменьшаем переходные скорости на траектории - for (int i = 0; i < bufV.available() - 1; i++) { + for (uint16_t i = 0; i < bufV.available() - 1; i++) { uint32_t v0 = bufV.get(i); uint32_t v1 = bufV.get(i + 1); uint32_t maxV = sqrt(2L * a * bufS.get(i) + (uint32_t)v0 * v0); diff --git a/src/GyverStepper.h b/src/GyverStepper.h index 762a415..5bec142 100644 --- a/src/GyverStepper.h +++ b/src/GyverStepper.h @@ -51,6 +51,7 @@ v2.1.8 - оптимизация, исправлен KEEP_SPEED в GStepper v2.2.0 - добавлен скоростной профиль GS_FAST_PROFILE для GStepper2, GPlanner, GPlanner2. Поддержка режима "слежения" для GStepper2 v2.2.1 - небольшая оптимизация SRAM + v2.3 - fix compiler warnings, поддержка esp32 */ /* @@ -374,7 +375,7 @@ class GStepper : public Stepper<_DRV, _TYPE> { #ifdef __AVR__ _smoothPlannerPrd = map(max(abs((int)_speed), abs((int)_accelSpeed)), 1000, 20000, 15000, 1000); #else - // горячий привет тупому компилятору ESP8266 и индусам, которые его настраивали + // горячий привет авторам ядра esp8266 int speed1 = abs(_speed); int speed2 = abs((int)_accelSpeed); int maxSpeed = maxMacro(speed1, speed2); @@ -534,12 +535,12 @@ class GStepper : public Stepper<_DRV, _TYPE> { } } - int _plannerPrd = 15000; + uint16_t _plannerPrd = 15000; #endif // ======================= SPEED PLANNER ======================= float _accelTime = 0; - int _smoothPlannerPrd = 15000; + uint16_t _smoothPlannerPrd = 15000; uint32_t _smoothPlannerTime = 0; uint32_t _plannerTime = 0; diff --git a/src/GyverStepper2.h b/src/GyverStepper2.h index 5023e58..85772fc 100644 --- a/src/GyverStepper2.h +++ b/src/GyverStepper2.h @@ -198,7 +198,7 @@ class GStepper2 : public Stepper<_DRV, _TYPE> { return 1; } - #ifndef ESP8266 + #ifdef __AVR__ void setSpeed(int speed) { setSpeed((int32_t)speed); } @@ -343,7 +343,7 @@ class GStepper2 : public Stepper<_DRV, _TYPE> { } else changeSett = 1; // иначе флаг на изменение } - #ifndef ESP8266 + #ifdef __AVR__ void setMaxSpeed(int speed) { setMaxSpeed((int32_t)speed); }