motor.h 883 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. /*
  2. * Copyright (c) 2019, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2019-08-26 sogwms The first version
  9. */
  10. #ifndef __MOTOR_H__
  11. #define __MOTOR_H__
  12. #include <rtthread.h>
  13. #include <rtdevice.h>
  14. // 20KHz
  15. #define MOTOR_PWM_PERIOD 50000
  16. typedef struct motor *motor_t;
  17. struct motor
  18. {
  19. rt_err_t (*enable)(void *mot);
  20. rt_err_t (*disable)(void *mot);
  21. rt_err_t (*reset)(void *mot);
  22. rt_err_t (*set_speed)(void *mot, rt_int16_t thousands);
  23. };
  24. motor_t motor_create(rt_size_t size);
  25. rt_err_t motor_destroy(motor_t mot);
  26. rt_err_t motor_reset(motor_t mot);
  27. rt_err_t motor_enable(motor_t mot);
  28. rt_err_t motor_disable(motor_t mot);
  29. rt_err_t motor_run(motor_t motor, rt_int16_t thousands);
  30. rt_err_t motor_stop(motor_t motor);
  31. #endif