Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 
 
 
 

57 rindas
1.4 KiB

  1. #ifndef PLSR_POSITION_H
  2. #define PLSR_POSITION_H
  3. #include "plsr_types.h"
  4. #include <stdint.h>
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8. typedef struct
  9. {
  10. uint32_t pulsesPerRevolution;
  11. uint32_t movementPerRevolution;
  12. uint8_t unitCode;
  13. } PLSR_EQUIVALENT_CONFIG;
  14. uint8_t PlsrPositionUnitCodeIsValid(uint8_t unitCode);
  15. uint8_t PlsrPositionUsesEquivalent(const PLSR_EQUIVALENT_CONFIG *config);
  16. PLSR_RESULT PlsrPositionValidateEquivalent(
  17. const PLSR_EQUIVALENT_CONFIG *config);
  18. /* 带余数的相对距离换算。remainder/newRemainder 的分母恒为
  19. * movementPerRevolution,允许负值以保证正反向运动可相互抵消。 */
  20. PLSR_RESULT PlsrPositionUnitsToPulses(
  21. const PLSR_EQUIVALENT_CONFIG *config,
  22. int32_t units,
  23. int64_t remainder,
  24. int64_t *pulses,
  25. int64_t *newRemainder);
  26. PLSR_RESULT PlsrPositionAbsoluteUnitsToPulses(
  27. const PLSR_EQUIVALENT_CONFIG *config,
  28. int32_t units,
  29. int64_t *pulses);
  30. PLSR_RESULT PlsrPositionPulsesToUnits(
  31. const PLSR_EQUIVALENT_CONFIG *config,
  32. int64_t pulses,
  33. int64_t *units);
  34. PLSR_RESULT PlsrPositionSpeedToPulseFrequency(
  35. const PLSR_EQUIVALENT_CONFIG *config,
  36. uint32_t speed,
  37. uint32_t *frequencyHz);
  38. PLSR_RESULT PlsrPositionPulseFrequencyToSpeed(
  39. const PLSR_EQUIVALENT_CONFIG *config,
  40. uint32_t frequencyHz,
  41. uint32_t *speed);
  42. #ifdef __cplusplus
  43. }
  44. #endif
  45. #endif /* PLSR_POSITION_H */