328 lines
11 KiB
C
328 lines
11 KiB
C
|
|
|
|||
|
|
#ifndef __MOTOS_H__
|
|||
|
|
#define __MOTOS_H__
|
|||
|
|
|
|||
|
|
//-------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
#include "embfpga.h"
|
|||
|
|
|
|||
|
|
//-------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
#define AXIS_NUM 6 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>
|
|||
|
|
|
|||
|
|
//-------------------------------------------------------------------------------
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ýṹ
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
u16 axisConfig; // ʵ<><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
u16 poutType; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ(CW/CCW<43><57>PULSE/DIR)
|
|||
|
|
u16 spdSource; // ʵ<><CAB5><EFBFBD>ٶȿ<D9B6><C8BF><EFBFBD>(<28><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
|
u16 datSource; // ʵ<><CAB5><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD>ȡ(Ӳ<><D3B2><EFBFBD>岹<EFBFBD><E5B2B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>涯<EFBFBD><E6B6AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3>)
|
|||
|
|
}AxisConfig;
|
|||
|
|
|
|||
|
|
|
|||
|
|
#ifdef _IN_MOTOS_C
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
#endif
|
|||
|
|
//-------------------------------------------------------------------------------
|
|||
|
|
//---------------------------------------------------------------
|
|||
|
|
|
|||
|
|
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
int enFlag;
|
|||
|
|
s32 motosPos[AXIS_NUM];
|
|||
|
|
|
|||
|
|
}MotosPara;
|
|||
|
|
|
|||
|
|
#ifdef _IN_MOVECTRL_C
|
|||
|
|
|
|||
|
|
MotosPara g_motosPara;
|
|||
|
|
|
|||
|
|
#else
|
|||
|
|
|
|||
|
|
extern MotosPara g_motosPara;
|
|||
|
|
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
//---------------------------------------------------------------
|
|||
|
|
// ʵ<><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
/*
|
|||
|
|
---------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
| b0 | b1 | b2 | b3 | b4 | b5 | b6 | b7 |
|
|||
|
|
---------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
| <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | A<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | B<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŷ<EFBFBD>ON | <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽѡ<EFBFBD><EFBFBD> | | |
|
|||
|
|
---------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
---------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
| b8 | b9 | b10 | b11 | b12 | b13 | b14 | b15 |
|
|||
|
|
---------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
| | | | | | | | <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |
|
|||
|
|
---------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD> ij<><C4B3>λΪ1<CEAA><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ź<EFBFBD>
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
#define POUT_EN 0x0001 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define POA_EN 0x0002 // A<><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define POB_EN 0x0004 // B<><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define SON_EN 0x0008 // <20>ŷ<EFBFBD>ON<4F><4E><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
#define ALM_EN 0x0010 // <20><><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define ALM_LEVH 0x0020 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽΪ<C6BD><CEAA>
|
|||
|
|
|
|||
|
|
#define CONFIG_EN 0x8000 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
#define DEFAULT_CFG (CONFIG_EN|SON_EN|ALM_LEVH) // Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
#define IO_CTRL_CFG (CONFIG_EN|ALM_EN|ALM_LEVH) // IO<49><4F><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
// <20>ޱ<EFBFBD><DEB1><EFBFBD>
|
|||
|
|
#define MOTOEN_CFG_NALM (CONFIG_EN|POUT_EN|SON_EN|ALM_LEVH) // ͨ<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define MOTOENA_CFG_NALM (CONFIG_EN|POUT_EN|POA_EN|SON_EN|ALM_LEVH) // ͨ<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define MOTOENB_CFG_NALM (CONFIG_EN|POUT_EN|POB_EN|SON_EN|ALM_LEVH) // ͨ<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define MOTOENAB_CFG_NALM (CONFIG_EN|POUT_EN|POA_EN|POB_EN|SON_EN|ALM_LEVH) // ͨ<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
// <20>б<EFBFBD><D0B1><EFBFBD>
|
|||
|
|
#define MOTOEN_CFG (CONFIG_EN|POUT_EN|SON_EN|ALM_EN|ALM_LEVH) // ͨ<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define MOTOENA_CFG (CONFIG_EN|POUT_EN|POA_EN|SON_EN|ALM_EN|ALM_LEVH) // ͨ<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define MOTOENB_CFG (CONFIG_EN|POUT_EN|POB_EN|SON_EN|ALM_EN|ALM_LEVH) // ͨ<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define MOTOENAB_CFG (CONFIG_EN|POUT_EN|POA_EN|POB_EN|SON_EN|ALM_EN|ALM_LEVH) // ͨ<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
// <20>б<EFBFBD><D0B1><EFBFBD>(<28>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>)
|
|||
|
|
#define MOTOEN_CFG_LALM (CONFIG_EN|POUT_EN|SON_EN|ALM_EN) // ͨ<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define MOTOENA_CFG_LALM (CONFIG_EN|POUT_EN|POA_EN|SON_EN|ALM_EN) // ͨ<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define MOTOENB_CFG_LALM (CONFIG_EN|POUT_EN|POB_EN|SON_EN|ALM_EN) // ͨ<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define MOTOENAB_CFG_LALM (CONFIG_EN|POUT_EN|POA_EN|POB_EN|SON_EN|ALM_EN) // ͨ<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ޱ<EFBFBD><DEB1><EFBFBD>
|
|||
|
|
#define MOTO3EN_CFG_NALM (CONFIG_EN|POUT_EN|ALM_LEVH) // ͨ<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define MOTO3ENA_CFG_NALM (CONFIG_EN|POUT_EN|POB_EN|ALM_LEVH) // ͨ<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define MOTO3ENB_CFG_NALM (CONFIG_EN|POUT_EN|POA_EN|ALM_LEVH) // ͨ<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define MOTO3ENC_CFG_NALM (CONFIG_EN|POUT_EN|POA_EN|POB_EN|SON_EN|ALM_LEVH) // ͨ<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define MOTO3ENABC_CFG_NALM (CONFIG_EN|POUT_EN|SON_EN|ALM_LEVH) // ͨ<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>б<EFBFBD><D0B1><EFBFBD>
|
|||
|
|
#define MOTO3EN_CFG (CONFIG_EN|POUT_EN|ALM_EN|ALM_LEVH) // ͨ<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define MOTO3ENA_CFG (CONFIG_EN|POUT_EN|POB_EN|ALM_EN|ALM_LEVH) // ͨ<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define MOTO3ENB_CFG (CONFIG_EN|POUT_EN|POA_EN|ALM_EN|ALM_LEVH) // ͨ<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define MOTO3ENC_CFG (CONFIG_EN|POUT_EN|POA_EN|POB_EN|SON_EN|ALM_EN|ALM_LEVH) // ͨ<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define MOTO3ENABC_CFG (CONFIG_EN|POUT_EN|SON_EN|ALM_EN|ALM_LEVH) // ͨ<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
|
|||
|
|
//---------------------------------------------------------------
|
|||
|
|
|
|||
|
|
#define POUTA_EN MOUT_SEL_HIGH // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD>Ϊ<EFBFBD>ߵ<EFBFBD>ƽ
|
|||
|
|
#define POUTA_DIS MOUT_SEL_LOW // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD><41>ֹΪ<D6B9>͵<EFBFBD>ƽ
|
|||
|
|
#define POUTB_EN MOUT_EN_HIGH // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B<EFBFBD><42><EFBFBD><EFBFBD>Ϊ<EFBFBD>ߵ<EFBFBD>ƽ
|
|||
|
|
#define POUTB_DIS MOUT_EN_LOW // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B<EFBFBD><42>ֹΪ<D6B9>͵<EFBFBD>ƽ
|
|||
|
|
#define SERVO_OFF MOUT_SON_HIGH // <20>ŷ<EFBFBD>OFFΪ<46>ߵ<EFBFBD>ƽ
|
|||
|
|
#define SERVO_ON MOUT_SON_LOW // <20>ŷ<EFBFBD>ONΪ<4E>͵<EFBFBD>ƽ
|
|||
|
|
|
|||
|
|
//---------------------------------------------------------------
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ýṹ
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
int newConfig; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD>־<EFBFBD><D6BE>= 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>ã<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; != 0<><30><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>д<EFBFBD>룬ͬʱˢ<CAB1>¼<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
AxisConfig axisConfig[AXIS_NUM];
|
|||
|
|
|
|||
|
|
}MotosConfig;
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD>λ<EFBFBD>ýṹ
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
s32 movement[AXIS_NUM]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD>λp
|
|||
|
|
u32 extraRepeat; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>movement<6E><74><EFBFBD>˶<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>죩
|
|||
|
|
u32 interLong; // <20>岹<EFBFBD><E5B2B9><EFBFBD><EFBFBD>λ<EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڻ<EFBFBD><DABB><EFBFBD><EFBFBD><EFBFBD>movement<6E><74><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
u32 pulsePerSegment; // ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
}MovementCtrl;
|
|||
|
|
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ٶȽṹ
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
u32 startPPS; // <20><><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
|
|||
|
|
u32 stopPPS; // ֹͣ<CDA3>ٶ<EFBFBD>
|
|||
|
|
u32 runPPS; // <20>˶<EFBFBD><CBB6>ٶ<EFBFBD>
|
|||
|
|
u32 slowPPS; // <20><><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
|
|||
|
|
u32 addPPSG; // <20><><EFBFBD>ټ<EFBFBD><D9BC>ٶ<EFBFBD>
|
|||
|
|
u32 decPPSG; // <20><><EFBFBD>ټ<EFBFBD><D9BC>ٶ<EFBFBD>
|
|||
|
|
u32 brkPPSG; // ɲ<><C9B2><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
|
|||
|
|
}SpeedCtrl;
|
|||
|
|
|
|||
|
|
//---------------------------------------------------------------
|
|||
|
|
// ֱ<>߲岹<DFB2>˶<EFBFBD><CBB6><EFBFBD><EFBFBD>ƽṹ
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
u32 vAxisId; // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
|
|||
|
|
|
|||
|
|
MotosConfig motosConfig; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
MovementCtrl mvmtPara; // λ<>ƿ<EFBFBD><C6BF>Ʋ<EFBFBD><C6B2><EFBFBD>
|
|||
|
|
|
|||
|
|
SpeedCtrl spdPara; // <20>ٶȿ<D9B6><C8BF>Ʋ<EFBFBD><C6B2><EFBFBD>
|
|||
|
|
|
|||
|
|
int stopMode; // ֹͣ<CDA3>˶<EFBFBD><CBB6><EFBFBD>ʽ
|
|||
|
|
// 0<><30><EFBFBD><EFBFBD><EFBFBD>ٵ<EFBFBD>ֹͣ<CDA3>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD><EFBFBD>ֹͣ<CDA3><D6B9>
|
|||
|
|
// 1<><31><EFBFBD><EFBFBD><EFBFBD>٣<EFBFBD><D9A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>ʱֹͣ<CDA3><D6B9>
|
|||
|
|
|
|||
|
|
int errInfo; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
|
|||
|
|
// <20>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void (*Delay)(u32); // <20><>ʱ<EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
void (*RefreshPosition)(u32, s32*); // <20><><EFBFBD><EFBFBD>ˢ<EFBFBD>»ص<C2BB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
u32 refPosPara; // <20><><EFBFBD><EFBFBD>ˢ<EFBFBD>²<EFBFBD><C2B2><EFBFBD>
|
|||
|
|
|
|||
|
|
int (*WorkBeforeRun)(u32, u32); // <20><><EFBFBD><EFBFBD>ǰ<C7B0><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int (*WorkAfterRun)(u32, u32); // <20><><EFBFBD>к<EFBFBD><EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
u32 workPara1, workPara2; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
int (*GetSlowDown)(u32,u32); // <20><><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⽵<EFBFBD><E2BDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; <20><>Ϊ<EFBFBD><CEAA>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㣬<EFBFBD>ٶȽ<D9B6><C8BD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD>ٶȻָ<C8BB>
|
|||
|
|
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>ټ<EFBFBD><D9BC>ٶȣ<D9B6>
|
|||
|
|
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>
|
|||
|
|
int (*GetEmergencyStop)(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>⼱ͣ<E2BCB1><CDA3><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>壨<EFBFBD><E5A3A8><EFBFBD>轵<EFBFBD>٣<EFBFBD>
|
|||
|
|
u32 condPara1, condPara2; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
}InterMoveCtrl;
|
|||
|
|
|
|||
|
|
// <20>֧<EEB3A4>ֲ岹<D6B2><E5B2B9><EFBFBD><EFBFBD>
|
|||
|
|
#define MAX_INTER_SIZE S32_MAX
|
|||
|
|
|
|||
|
|
#define STOP_MODE_SPD 0 // <20>ٶȵ<D9B6><C8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD>ֹͣ
|
|||
|
|
#define STOP_MODE_TAB 1 // <20>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɺ<EFBFBD>ֹͣ
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
#define TOSLOWMUTI 5
|
|||
|
|
//------------------------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
#define SUPPORT_SEGMENT 15 // ֧<><D6A7>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>16<31><36>
|
|||
|
|
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
u32 interLong; // <20>岹<EFBFBD><E5B2B9><EFBFBD><EFBFBD>λ<EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڻ<EFBFBD><DABB><EFBFBD><EFBFBD><EFBFBD>movement<6E><74><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
|
|||
|
|
u16 sineOut[AXIS_NUM]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־. 0, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 1, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
u16 segmnetNum[AXIS_NUM]; // <20><>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>0--100
|
|||
|
|
u32 startEsc[AXIS_NUM]; // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
u32 vppSegment[AXIS_NUM]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧÿ<D3A6><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
u16 movement[AXIS_NUM][SUPPORT_SEGMENT+1]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
}MovementDat;
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD>ṹ
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
// λ<>ƿ<EFBFBD><C6BF>Ʋ<EFBFBD><C6B2><EFBFBD>
|
|||
|
|
s32 fillCount; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4>FPGA<47>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
s32 execCount; // ִ<>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD><C9B5><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>idx<64><78>
|
|||
|
|
s32 fillLimit; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>ɲ<EFBFBD><C9B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD>
|
|||
|
|
int bufsta; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|||
|
|
|
|||
|
|
u32 lastEndPPS; // <20>϶ν<CFB6><CEBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ٶȣ<D9B6>Ҳ<EFBFBD><D2B2><EFBFBD>DZ<EFBFBD><C7B1>Σ<EFBFBD><CEA3><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>жΣ<D0B6><CEA3><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD>ٶȣ<D9B6>ÿ<EFBFBD>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ã<EFBFBD>
|
|||
|
|
u32 lastrunPPS; // <20>϶ε<CFB6><CEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
|
|||
|
|
|
|||
|
|
int runstat; // <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>= 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC> = 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹͣ״̬<D7B4><CCAC> = 2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɲ<EFBFBD><C9B2>״̬
|
|||
|
|
int errInfo; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
int waitNoData; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>־, = 0<><30><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>= 1<><31><EFBFBD>ȴ<EFBFBD>
|
|||
|
|
int emptyCount;
|
|||
|
|
int dataBegIndex; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ
|
|||
|
|
int exeingIdx; // <20><><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//------------
|
|||
|
|
u32 mvmtStatus; // <20>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>0<EFBFBD><30><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>1<EFBFBD><31><EFBFBD><EFBFBD>Ч
|
|||
|
|
|
|||
|
|
MovementDat mvmtdat; // λ<><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
// <20>ٶȿ<D9B6><C8BF>Ʋ<EFBFBD><C6B2><EFBFBD>
|
|||
|
|
u32 lowPPS; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
|
|||
|
|
u32 runPPS; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>ٶ<EFBFBD>
|
|||
|
|
u32 calcGap; // <20><><EFBFBD>μ<EFBFBD><CEBC>ٶ<EFBFBD>
|
|||
|
|
|
|||
|
|
}MoveSwapData;
|
|||
|
|
|
|||
|
|
#define CRST_NORMAL 0 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|||
|
|
#define CRST_NSTOP 1 // ֹͣ״̬
|
|||
|
|
#define CRST_QSTOP 2 // ֹͣ״̬
|
|||
|
|
#define CRST_BREAK 3 // ɲ<><C9B2>״̬
|
|||
|
|
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>߲岹<DFB2>˶<EFBFBD><CBB6><EFBFBD><EFBFBD>ƽṹ
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
u32 vAxisId; // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
|
|||
|
|
|
|||
|
|
MotosConfig motosConfig; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
MoveSwapData mvData; // λ<>ƺ<EFBFBD><C6BA>ٶ<EFBFBD>ˢ<EFBFBD>½ṹ
|
|||
|
|
|
|||
|
|
s32 dataBegIndex;
|
|||
|
|
|
|||
|
|
// ͣ<><CDA3><EFBFBD>ٶȿ<D9B6><C8BF>Ʋ<EFBFBD><C6B2><EFBFBD>
|
|||
|
|
u32 stopPPS; // ͣ<><CDA3><EFBFBD>ٶ<EFBFBD>
|
|||
|
|
u32 nstopPPSG; // <20><>ֹͨͣ<CDA3><D6B9><EFBFBD>ٶ<EFBFBD>
|
|||
|
|
u32 qstopPPSG; // <20><><EFBFBD><EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD>ٶ<EFBFBD>
|
|||
|
|
|
|||
|
|
// <20>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void (*Delay)(u32); // <20><>ʱ<EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>亯<EFBFBD><E4BAAF>
|
|||
|
|
int (*RefreshData)(u32, u32); // <20><><EFBFBD><EFBFBD>ˢ<EFBFBD>º<EFBFBD><C2BA><EFBFBD>
|
|||
|
|
u32 refDatPara;
|
|||
|
|
|
|||
|
|
void (*RefreshPosition)(u32, s32*); // <20><><EFBFBD><EFBFBD>ˢ<EFBFBD>»ص<C2BB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
u32 refPosPara; // <20><><EFBFBD><EFBFBD>ˢ<EFBFBD>²<EFBFBD><C2B2><EFBFBD>
|
|||
|
|
|
|||
|
|
int (*WorkBeforeRun)(u32, u32); // <20><><EFBFBD><EFBFBD>ǰ<C7B0><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int (*WorkAfterRun)(u32, u32); // <20><><EFBFBD><EFBFBD>ǰ<C7B0><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
u32 workPara1, workPara2; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
int (*GetSlowDown)(u32,u32); // <20><><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⽵<EFBFBD><E2BDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; <20><>Ϊ<EFBFBD><CEAA>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㣬<EFBFBD>ٶȽ<D9B6><C8BD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD>ٶȻָ<C8BB>
|
|||
|
|
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>ټ<EFBFBD><D9BC>ٶȣ<D9B6>
|
|||
|
|
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>
|
|||
|
|
int (*GetEmergencyStop)(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>⼱ͣ<E2BCB1><CDA3><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>壨<EFBFBD><E5A3A8><EFBFBD>轵<EFBFBD>٣<EFBFBD>
|
|||
|
|
u32 condPara1, condPara2; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
}ContinuousInterMoveCtrl;
|
|||
|
|
|
|||
|
|
//------------------------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
|
|||
|
|
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void InitMotos(void);
|
|||
|
|
|
|||
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
|||
|
|
int GetMotosCounter(s32 * position);
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>λ<EFBFBD><CEBB>
|
|||
|
|
void SetMotosCounter(s32 * position);
|
|||
|
|
|
|||
|
|
// ˢ<>µ<EFBFBD><C2B5><EFBFBD>λ<EFBFBD><CEBB>
|
|||
|
|
void RefreshMotosPos(s32 * poslist);
|
|||
|
|
|
|||
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
s32 GetMotoCounter(int axisIdx);
|
|||
|
|
void SetMotoCounter(int axisIdx, s32 pos);
|
|||
|
|
|
|||
|
|
void MotoServoCtrl(int axisIdx, int onoff);
|
|||
|
|
|
|||
|
|
void SetMotosConfig(MotosConfig * pConfig); // <20><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>岹<EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>6<EFBFBD><36>ͬ<EFBFBD><CDAC>
|
|||
|
|
int InterpolationMotion(InterMoveCtrl * pCtrl);
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>߲岹<DFB2>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>6<EFBFBD><36>ͬ<EFBFBD><CDAC>
|
|||
|
|
int ContinuousInterpolation(ContinuousInterMoveCtrl * pCtrl);
|
|||
|
|
|
|||
|
|
u32 CalcDisplacement(u32 pps1, u32 pps2, u32 calcTime); // <20><><EFBFBD><EFBFBD><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>λ<EFBFBD><CEBB>
|
|||
|
|
u32 CalcGapTime(u32 disp, u32 pps1, u32 pps2); // <20><><EFBFBD><EFBFBD>ijλ<C4B3><CEBB><EFBFBD><EFBFBD><EFBFBD>ٶȱ仯<C8B1><E4BBAF>Ҫ<EFBFBD><D2AA>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
u32 CalcEndSpd(u32 disp, u32 pps1, s32 addgap);
|
|||
|
|
|
|||
|
|
|
|||
|
|
#endif
|