GyverDrink icon indicating copy to clipboard operation
GyverDrink copied to clipboard

Update ServoSmooth.cpp

Open DoomsdayGS opened this issue 5 years ago • 1 comments

  1. Если вызывается поворот на угол или длительностью равным текущей позиции сервы, то ServoSmooth::tick() не когда не вернет true потому как его не вернет ServoSmooth::tickManual(). Что бы вернулось true (или "серва приехала") нужно _servoState иметь true, а оно выставляется только в случае если не выполняется условие abs(_servoTargetPos - (int)_newPos) < SS_DEADZONE, а если _servoTargetPos = _newPos, то условие выполняется, и значение true не когда не будет достигнуто.
  2. boolean должен возвращать true или false. Если не выполняется millis() - _prevServoTime >= SS_SERVO_PERIOD, то функция ничего не возвращает (вернее ахинею возвращает). И ServoSmooth::tickManual() тоже boolean, потому её не обязательно проверять.

DoomsdayGS avatar Feb 03 '20 13:02 DoomsdayGS

Спасибо! Решил задачу более красиво, работает корректно

AlexGyver avatar Feb 03 '20 15:02 AlexGyver