axis_motion_config.h 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. //===================================修改记录=================================//
  2. //2020.05.12 17:28 LXZ
  3. // 1、增加获取回零信号管脚的接口
  4. // 2、增加修改硬件频率的接口
  5. //2020.05.18 15:14 LXZ
  6. // 1、增加设置编码器回零的接口
  7. //============================================================================//
  8. #ifndef __AXIS_MOTION_CONFIG_H__
  9. #define __AXIS_MOTION_CONFIG_H__
  10. #include "board.h"
  11. #define HW_PWM_CLK 6000000
  12. #define AXIS_LOCATION_SMOOTH 20 //定位接口平滑度
  13. #define AXIS_USING_FLOAT //使用浮点运算功能
  14. //#define AXIS_USING_DEBUG //使用调试
  15. #define AXIS_IGNORE_REPEAT_STEP //去除重复步
  16. #define AXIS_USING_ACC_TABLE_ONLY //使用加速表同时当减速表来减少内存,使能该选项将会减少内存占用,
  17. //但是减时间设置将无效化
  18. #define AXIS_MAX_ACCDEC_STEP 1 //加减速表的缓冲大小
  19. #define AXIS_PP_TASK_NUMBER 5 //任务缓冲个数
  20. #define AXIS_CALC_ROUND(reg) 0
  21. //任务数量必须大于1,不然就没有作用
  22. #if defined(AXIS_PP_TASK_NUMBER) && (AXIS_PP_TASK_NUMBER < 1)
  23. #error "axis tasks data buffer number must bigger 1!"
  24. #endif
  25. #define AXIS_ACC_REG_TABLE(axis) axis->acc_reg_table
  26. #define AXIS_ACC_NUMBER_TABLE(axis) axis->acc_number_table
  27. #ifndef AXIS_USING_ACC_TABLE_ONLY
  28. #define AXIS_DEC_REG_TABLE(axis) axis->dec_reg_table
  29. #define AXIS_DEC_NUMBER_TABLE(axis) axis->dec_number_table
  30. #else
  31. #define AXIS_DEC_REG_TABLE(axis) axis->acc_reg_table
  32. #define AXIS_DEC_NUMBER_TABLE(axis) axis->acc_number_table
  33. #endif
  34. #define AXIS_ON(axis) HW_PWM_ON(axis->axis_no)
  35. #define AXIS_OFF(axis) HW_PWM_OFF(axis->axis_no)
  36. #define AXIS_IS_ON(aixs) HW_PWM_IS_ON(axis->axis_no)
  37. #define AXIS_UPDATE_PERION(axis,period) HW_PWM_UPDATE_PERIOD(axis->axis_no,period)
  38. #define AXIS_SET_PERION(axis,period) HW_PWM_SET_PERIOD(axis->axis_no,period)
  39. #define AXIS_SET_DIR(axis,dir) HW_PWM_SET_DIR(axis->axis_no,dir)
  40. #define AXIS_SET_EN(aixs, sta) hw_pwm_set_enable(axis->axis_no,sta)
  41. #define AXIS_GET_HOME_SGN(axis) ((*(axis->home_sgn_register) & axis->home_sgn_mask) == axis->home_sgn_level)
  42. #define AXIS_GET_HOME_ENCODER_SGN(axis) ((*(axis->home_encoder_sgn_register) & axis->home_encoder_sgn_mask) == axis->home_encoder_sgn_level)
  43. #define AXIS_SET_CLOCK(axis,clock) hw_pwm_set_clock(axis->axis_no,clock)
  44. #endif