63 lines
1.3 KiB
C
63 lines
1.3 KiB
C
|
|
|
|
#ifndef __DRIVERSCTRL_H__
|
|
#define __DRIVERSCTRL_H__
|
|
|
|
#include "config.h"
|
|
|
|
#ifndef DRIVERS_NUM
|
|
#define DRIVERS_NUM 0
|
|
#endif
|
|
|
|
// 最多支持4路电机
|
|
#if (DRIVERS_NUM > 4)
|
|
#undef DRIVERS_NUM
|
|
#define DRIVERS_NUM 4
|
|
#endif
|
|
|
|
|
|
#define DRIVER1_IDX 0
|
|
#define DRIVER2_IDX 1
|
|
#define DRIVER3_IDX 2
|
|
#define DRIVER4_IDX 3
|
|
//--------------------------------------------
|
|
// 错误代码定义
|
|
#define DR_ERR_POS 0x01 // 位置误差过大
|
|
|
|
// 状态定义
|
|
#define DR_ERR_ZERO 0x101 // 电机找零
|
|
#define DR_STA_DIS 0x102 // 电机失能
|
|
|
|
//--------------------------------------------
|
|
|
|
void InitDriversCtrl(void);
|
|
|
|
void DriversCtrlIntProc(void);
|
|
|
|
void CPURateIntProc(int section);
|
|
|
|
u32 GetDrvErrorCode(int driverIdx);
|
|
void CleanDrvErrorCode(int driverIdx);
|
|
void SetDrvErrorCode(int driverIdx, int code);
|
|
|
|
void DriverRunTask(void);
|
|
|
|
void SetOpenRunCircle(int driverIdx, int circle);
|
|
void SetOpenLockCircle(int driverIdx, int circle);
|
|
void SetOpenMaxOffset(int driverIdx, int maxofst);
|
|
s32 GetClosePositionFromEcd(int driverIdx);
|
|
void SetCloseCircle(int driverIdx, int circle);
|
|
|
|
void ResetDriverPos(int driverIdx, s32 pos);
|
|
|
|
void SetDriverTargetPos(int driverIdx, s32 tpos);
|
|
void SetDriverOffset(int driverIdx, s32 ofst);
|
|
|
|
void SetDriverCtrlMode(int driverIdx, int mode);
|
|
|
|
void SetEnableCtrl(int driverIdx, int enbit);
|
|
|
|
//--------------------------------------------
|
|
|
|
#endif
|