76 lines
2.3 KiB
C
76 lines
2.3 KiB
C
|
|
|
|||
|
|
#ifndef __DRIVERMOTION_H__
|
|||
|
|
#define __DRIVERMOTION_H__
|
|||
|
|
|
|||
|
|
#include "config.h"
|
|||
|
|
|
|||
|
|
#define DEV_MOTIONS_NUM DRIVERS_NUM // <20>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
s32 movement; // λ<><CEBB><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
u32 startPPS; // <20><><EFBFBD><EFBFBD><EFBFBD>ٶȣ<D9B6>λ<EFBFBD><CEBB>/<2F>룩
|
|||
|
|
u32 runPPS; // <20>˶<EFBFBD><CBB6>ٶȣ<D9B6>λ<EFBFBD><CEBB>/<2F>룩
|
|||
|
|
u32 addPPSS; // <20><>ͣ<EFBFBD><CDA3><EFBFBD>ٶȣ<D9B6>λ<EFBFBD><CEBB>/<2F>룩
|
|||
|
|
u32 brkPPSS; // ɲ<><C9B2><EFBFBD><EFBFBD><EFBFBD>ٶȣ<D9B6>λ<EFBFBD><CEBB>/<2F>룩
|
|||
|
|
|
|||
|
|
u32 funTestTime; // <20><><EFBFBD>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> 0:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD> (<28><>λ:0.1ms)
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|||
|
|
int (*GetNormalStop)(u32,u32); // һ<><D2BB>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>; <20><>Ϊ<EFBFBD><CEAA>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㣬<EFBFBD><E3A3AC><EFBFBD>ٵ<EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD>ٶȽ<D9B6><C8BD>٣<EFBFBD>
|
|||
|
|
int (*GetQuickStop)(u32,u32); // <20><><EFBFBD><EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>; <20><>Ϊ<EFBFBD><CEAA>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㣬<EFBFBD><E3A3AC><EFBFBD>ٵ<EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>ɲ<EFBFBD><C9B2><EFBFBD><EFBFBD><EFBFBD>ٶȽ<D9B6><C8BD>٣<EFBFBD>
|
|||
|
|
u32 condPara1, condPara2; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
int blockRunflag; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>־, =1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ͬ<><CDAC><EFBFBD>˶<EFBFBD> =0,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C>첽<EFBFBD>˶<EFBFBD>
|
|||
|
|
void (*ExecWhenRun)(void); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>еĺ<D0B5><C4BA><EFBFBD>
|
|||
|
|
void (*ExecWhenStart)(void); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱִ<CAB1>еĺ<D0B5><C4BA><EFBFBD>
|
|||
|
|
void (*ExecWhenStop)(void); // <20><><EFBFBD><EFBFBD>ֹͣʱִ<CAB1>еĺ<D0B5><C4BA><EFBFBD>
|
|||
|
|
void (*DelayWhenBlock)(u32); // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Delay<61><79><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>Ϊ<EFBFBD>ٶ<EFBFBD>ģʽʱ<CABD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>ʱ<EFBFBD><CAB1>Ҫ<EFBFBD>˴<EFBFBD><CBB4><EFBFBD>Ϊ<EFBFBD><CEAA>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD>)
|
|||
|
|
}DrvMotionPara;
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
//-------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
//---------------------------------------------------------------
|
|||
|
|
|
|||
|
|
void InitDrvMotions();
|
|||
|
|
void DrvMotionCalcProc();
|
|||
|
|
|
|||
|
|
//-------------------------------
|
|||
|
|
|
|||
|
|
int DrvMotionStart(int driverIdx, DrvMotionPara * pPara); // <20><><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD>ƣ<EFBFBD>ֹͣ״̬ʱ<CCAC><CAB1><EFBFBD>ã<EFBFBD>
|
|||
|
|
void DrvMotionStop(int driverIdx); // ֹͣ<CDA3>˶<EFBFBD><CBB6><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>ʱ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD>
|
|||
|
|
void DrvMotionBreak(int driverIdx); // ֹͣ<CDA3>˶<EFBFBD><CBB6><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>ʱ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD>
|
|||
|
|
int DrvMotionRun(int driverIdx); // <20><><EFBFBD>к<EFBFBD><D0BA><EFBFBD>
|
|||
|
|
int GetDrvMotionState(int driverIdx); // <20>õ<EFBFBD><C3B5>˶<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>ʱ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD>
|
|||
|
|
s32 GetDrvMotionRealPos(int driverIdx); // <20>õ<EFBFBD><C3B5><EFBFBD>ǰ<EFBFBD>˶<EFBFBD>λ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>ʱ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD>
|
|||
|
|
void SetDrvMotionRealPos(int driverIdx, s32 pos); // <20><><EFBFBD>õ<EFBFBD>ǰ<EFBFBD>˶<EFBFBD>λ<EFBFBD>ã<EFBFBD>ֹͣ״̬ʱ<CCAC><CAB1><EFBFBD>ã<EFBFBD>
|
|||
|
|
|
|||
|
|
//-------------------------------
|
|||
|
|
|
|||
|
|
// <20>˶<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
|
|||
|
|
#define DRV_MOTION_ERR -1 // <20>쳣
|
|||
|
|
#define DRV_MOTION_STOP 0 // ֹͣ
|
|||
|
|
#define DRV_MOTION_ADD 1 // <20><><EFBFBD><EFBFBD>
|
|||
|
|
#define DRV_MOTION_RUN 2 // <20><><EFBFBD><EFBFBD>
|
|||
|
|
#define DRV_MOTION_DEC 3 // <20><><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
|
#define DRV_MOTION_NSTOP 4 // ͣ<><CDA3>(<28><><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3>)
|
|||
|
|
#define DRV_MOTION_ESTOP 5 // ɲ<><C9B2>(<28><><EFBFBD><EFBFBD>ɲ<EFBFBD><C9B2>)
|
|||
|
|
#define DRV_MOTION_STOPING 6 // ֹͣ<CDA3><D6B9>
|
|||
|
|
|
|||
|
|
|
|||
|
|
//-------------------------------
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
#endif
|
|||
|
|
|