Browse Source

update

master
zhaohe 2 years ago
parent
commit
6cea5addaf
  1. 11
      components/mini_servo_motor/feite_servo_motor.cpp
  2. 6
      components/mini_servo_motor/feite_servo_motor.hpp

11
components/mini_servo_motor/feite_servo_motor.cpp

@ -74,6 +74,17 @@ bool FeiTeServoMotor::getTorqueSwitch(uint8_t id, bool& on) {
bool FeiTeServoMotor::getNowPos(uint8_t id, int16_t& pos) { return read_s16(id, kRegServoCurrentPos, 15, pos); }
bool FeiTeServoMotor::setTargetPos(uint8_t id, int16_t pos) { return write_s16(id, kRegServoTargetPos, 15, pos); }
bool FeiTeServoMotor::triggerAysncWrite(uint8_t id) {
cmd_header_t* cmd_header = (cmd_header_t*)m_txbuf;
cmd_header->header = 0xffff;
cmd_header->id = id;
cmd_header->len = 2;
cmd_header->cmd = 5;
cmd_header->data[0] = checksum((uint8_t*)cmd_header, sizeof(cmd_header_t) + 1);
HAL_UART_Transmit(m_uart, m_txbuf, sizeof(cmd_header_t) + 1, 1000);
return true;
}
bool FeiTeServoMotor::reCalibration(int id, int16_t pos) {
if (pos < 0 || pos > 4095) {
ZLOGE(TAG, "reCalibration pos:%d out of range", pos);

6
components/mini_servo_motor/feite_servo_motor.hpp

@ -131,14 +131,16 @@ class FeiTeServoMotor {
bool getServoCalibration(uint8_t, int16_t& poscalibration);
bool reCalibration(int id, int16_t pos);
bool triggerAysncWrite(uint8_t id);
public:
bool write_u8(uint8_t id, feite::reg_add_e add, uint8_t regval);
bool write_u16(uint8_t id, feite::reg_add_e add, uint16_t regval);
bool write_s16(uint8_t id, feite::reg_add_e add, uint8_t signbitoff, int16_t regval);
bool async_write_u8(uint8_t id, feite::reg_add_e add, uint8_t regval);
bool async_write_u16(uint8_t id, feite::reg_add_e add, uint16_t regval);
bool async_write_s16(uint8_t id, feite::reg_add_e add, uint8_t signbitoff,int16_t regval);
bool async_write_s16(uint8_t id, feite::reg_add_e add, uint8_t signbitoff, int16_t regval);
bool read_u8(uint8_t id, feite::reg_add_e add, uint8_t& regval);
bool read_u16(uint8_t id, feite::reg_add_e add, uint16_t& regval);

Loading…
Cancel
Save