📄 pmdtypes.h
字号:
#ifndef PMD_CommonTypes
#define PMD_CommonTypes
// PMDtypes.h -- common type declarations
//
// Performance Motion Devices, Inc.
//
// Global definitions
#define DK_MEMORY_BASE 0
#define DK_TOTAL_MEMORY 0x2000 - DK_MEMORY_BASE // 0x2000 = 8k dwords = 16k words (CY7C09269)
#define PMD_MAX_AXES 4
#define DEVICE_TYPE_RCM 0
#define DEVICE_TYPE_M3 1
#define PMDnull 0
// common types
typedef long PMDint32;
typedef unsigned long PMDuint32;
typedef long PMDlong32;
typedef unsigned short PMDuint16;
typedef short PMDint16;
typedef unsigned char PMDuint8;
typedef PMDuint16 PMDresult;
#ifdef _LINUX
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
#ifndef INVALID_HANDLE_VALUE
#define INVALID_HANDLE_VALUE -1
#endif
typedef int BOOL;
typedef int HANDLE;
typedef PMDuint32 DWORD;
#endif
enum {nibbleMask=0x0F, byteMask=0xFF};
enum {
PMDAxis1=0,
PMDAxis2,
PMDAxis3,
PMDAxis4
};
typedef PMDuint16 PMDAxis;
typedef enum {
PMDNoAxisMask=0x00,
PMDAxis1Mask=0x01,
PMDAxis2Mask=0x02,
PMDAxis3Mask=0x04,
PMDAxis4Mask=0x08
} PMDAxisMask;
enum {
PMDDisable=0,
PMDEnable=1
}; // generic enable switch
// Profile Generation
typedef enum {
PMDTrapezoidalProfile=0,
PMDVelocityContouringProfile=1,
PMDSCurveProfile=2,
PMDElectronicGearProfile=3,
PMDExternalProfile=4
} PMDProfileMode;
typedef enum {
PMDPositionSourceActual=0,
PMDPositionSourceCommanded=1
} PMDPositionSource;
typedef enum {
PMDNoStopMode=0,
PMDAbruptStopMode=1,
PMDSmoothStopMode=2
} PMDStopMode;
// Servo Filter
typedef enum {
PMDLimitDisabled=0,
PMDLimitEnabled=1
} PMDLimitMode;
typedef enum {
PMDAutoStopDisabled=0,
PMDAutoStopEnabled=1
} PMDAutoStopMode;
typedef enum {
PMDMotionCompleteCommandedPosition=0,
PMDMotionCompleteActualPosition=1
} PMDMotionCompleteMode;
typedef enum {
PMDBiQuadFilter1=0,
PMDBiQuadFilter2=1
} PMDBiQuadFilterNumber;
typedef enum {
PMDBiQuadFilterEnable=0,
PMDBiQuadFilterCoefficientB0=1,
PMDBiQuadFilterCoefficientB1=2,
PMDBiQuadFilterCoefficientB2=3,
PMDBiQuadFilterCoefficientA1=4,
PMDBiQuadFilterCoefficientA2=5,
PMDBiQuadFilterCoefficientK=6
} PMDBiQuadFilterCoefficient;
// Parameter Update & Breakpoints
typedef enum {
PMDBreakpoint1=0,
PMDBreakpoint2=1
} PMDBreakpoint;
typedef enum {
PMDBreakpointDisable=0,
PMDBreakpointGreaterOrEqualCommandedPosition=1,
PMDBreakpointLessOrEqualCommandedPosition=2,
PMDBreakpointGreaterOrEqualActualPosition=3,
PMDBreakpointLessOrEqualActualPosition=4,
PMDBreakpointCommandedPositionCrossed=5,
PMDBreakpointActualPositionCrossed=6,
PMDBreakpointTime=7,
PMDBreakpointEventStatus=8,
PMDBreakpointActivityStatus=9,
PMDBreakpointSignalStatus=10
} PMDBreakpointTrigger;
typedef enum {
PMDBreakpointNoAction=0,
PMDBreakpointActionUpdate=1,
PMDBreakpointActionAbruptStop=2,
PMDBreakpointActionSmoothStop=3,
PMDBreakpointActionMotorOff=4
} PMDBreakpointAction;
// Status Register Control
enum {
PMDActivityPhasingInitializedMask=0x0001,
PMDActivityAtMaximumVelocityMask=0x0002,
PMDActivityTrackingMask=0x0004,
PMDActivityProfileModeMask=0x0038,
PMDActivityAxisSettledMask=0x0080,
PMDActivityMotorOnMask=0x0100,
PMDActivityPositionCaptureMask=0x0200,
PMDActivityInMotionMask=0x0400,
PMDActivityInPositiveLimitMask=0x0800,
PMDActivityInNegativeLimitMask=0x1000,
PMDActivityProfileSegmentMask=0xE000,
PMDActivityStatusMask=0x1FBF
};
enum {
PMDEventMotionCompleteMask=0x0001,
PMDEventWrapAroundMask=0x0002,
PMDEventBreakpoint1Mask=0x0004,
PMDEventCaptureReceivedMask=0x0008,
PMDEventMotionErrorMask=0x0010,
PMDEventInPositiveLimitMask=0x0020,
PMDEventInNegativeLimitMask=0x0040,
PMDEventInstructionErrorMask=0x0080,
PMDEventCommutationErrorMask=0x0800,
PMDEventBreakpoint2Mask=0x4000,
PMDEventStatusMask=0x48FF
};
enum {
PMDSignalEncoderAMask=0x0001,
PMDSignalEncoderBMask=0x0002,
PMDSignalEncoderIndexMask=0x0004,
PMDSignalEncoderHomeMask=0x0008,
PMDSignalPositiveLimitMask=0x0010,
PMDSignalNegativeLimitMask=0x0020,
PMDSignalAxisInMask=0x0040,
PMDSignalHallAMask=0x0080,
PMDSignalHallBMask=0x0100,
PMDSignalHallCMask=0x0200,
PMDSignalAxisOutMask=0x0400,
PMDSignalStepOutputInvertMask=0x0800,
PMDSignalMotorOutputInvertMask=0x1000,
PMDSignalMask=0x07FF
};
// Encoder
typedef enum {
PMDCaptureSourceIndex=0,
PMDCaptureSourceHome=1
} PMDCaptureSource;
typedef enum {
PMDEncoderSourceIncremental=0,
PMDEncoderSourceParallel=1,
PMDEncoderSourceNone=2,
PMDEncoderSourceLoopback=3
} PMDEncoderSource;
// Motor
typedef enum {
PMDMotorOutputBiPolarDAC=0,
PMDMotorOutputPWMSignMagnitude=1,
PMDMotorOutputPWM5050Magnitude=2,
PMDMotorOutputSPIDAC=3,
PMDMotorOutputUniPolarDAC=4
} PMDMotorOutputMode;
typedef enum {
PMDMotorOff=0,
PMDMotorOn=1
} PMDMotorMode;
// Commutation
typedef enum {
PMDCommutationModeSinusoidal=0,
PMDCommutationModeHallBased=1,
PMDCommutationModeMicrostepping=2
} PMDCommutationMode;
typedef enum {
PMDPhaseInitAlgorithmic=0,
PMDPhaseInitHallBased=1
} PMDPhaseInitializeMode;
typedef enum {
PMDPhaseCorrectionDisabled=0,
PMDPhaseCorrectionEnabled=1
} PMDPhaseCorrectionMode;
typedef enum {
PMDPhasePrescaleOff=0,
PMDPhasePrescale64=1,
PMDPhasePrescale128=2,
PMDPhasePrescale256=3
} PMDPhasePrescaleMode;
typedef enum {
PMDPhaseA=0,
PMDPhaseB=1,
PMDPhaseC=2
} PMDPhaseNumber;
// Trace Operations
typedef enum {
PMDTrace1=0,
PMDTrace2=1,
PMDTrace3=2,
PMDTrace4=3
} PMDTraceNumber;
typedef enum {
PMDTraceOneTime=0,
PMDTraceRollingBuffer=1
} PMDTraceMode;
typedef enum {
PMDTraceNoVariable=0,
PMDTracePositionError=1,
PMDTraceCommandedPosition=2,
PMDTraceCommandedVelocity=3,
PMDTraceCommandedAcceleration=4,
PMDTraceActualPosition=5,
PMDTraceActualVelocity=6,
PMDTraceCurrentMotorCommand=7,
PMDTraceTime=8,
PMDTraceCaptureValue=9,
PMDTraceIntegral=10,
PMDTraceDerivative=11,
PMDTraceEventStatus=12,
PMDTraceActivityStatus=13,
PMDTraceSignalStatus=14,
PMDTracePhaseAngle=15,
PMDTracePhaseOffset=16,
PMDTracePhaseACommand=17,
PMDTracePhaseBCommand=18,
PMDTracePhaseCCommand=19,
PMDTraceAnalogInput1=20,
PMDTraceAnalogInput2=21,
PMDTraceAnalogInput3=22,
PMDTraceAnalogInput4=23,
PMDTraceAnalogInput5=24,
PMDTraceAnalogInput6=25,
PMDTraceAnalogInput7=26,
PMDTraceAnalogInput8=27,
PMDPIDPositionError=28
} PMDTraceVariable;
typedef enum {
PMDTraceConditionImmediate=0,
PMDTraceConditionUpdate=1,
PMDTraceConditionEventStatus=2,
PMDTraceConditionActivityStatus=3,
PMDTraceConditionSignalStatus=4
} PMDTraceCondition;
typedef enum {
PMDTraceTriggerStateLow=0,
PMDTraceTriggerStateHigh=1
} PMDTraceTriggerState;
enum {
PMDTraceStatusMode=0x0001,
PMDTraceStatusActivity=0x0002,
PMDTraceStatusDataWrap=0x0004,
PMDTraceStatusMask=0x07
};
// Miscellaneous
enum {
PMDActivityPhasingInitializedBit=0,
PMDActivityAtMaximumVelocityBit=1,
PMDActivityTrackingBit=2,
PMDActivityAxisSettledBit=7,
PMDActivityMotorOnBit=8,
PMDActivityPositionCaptureBit=9,
PMDActivityInMotionBit=10,
PMDActivityInPositiveLimitBit=11,
PMDActivityInNegitiveLimitBit=12,
};
enum {
PMDEventMotionCompleteBit=0,
PMDEventWrapAroundBit=1,
PMDEventBreakpoint1Bit=2,
PMDEventCaptureReceivedBit=3,
PMDEventMotionErrorBit=4,
PMDEventInPositiveLimitBit=5,
PMDEventInNegativeLimitBit=6,
PMDEventInstructionErrorBit=7,
PMDEventCommutationErrorBit=11,
PMDEventBreakpoint2Bit=14,
};
enum {
PMDSignalEncoderABit=0,
PMDSignalEncoderBBit=1,
PMDSignalEncoderIndexBit=2,
PMDSignalEncoderHomeBit=3,
PMDSignalPositiveLimitBit=4,
PMDSignalNegativeLimitBit=5,
PMDSignalAxisInBit=6,
PMDSignalHallABit=7,
PMDSignalHallBBit=8,
PMDSignalHallCBit=9,
PMDSignalAxisOutBit=10,
PMDSignalMotorOutputInvertBit=12,
};
typedef enum {
PMDAxisOutSourceNone=0,
PMDAxisOutSourceEventStatus=1,
PMDAxisOutSourceActivityStatus=2,
PMDAxisOutSourceSignalStatus=3
} PMDAxisOutSource;
typedef enum {
PMDAxisOff=0,
PMDAxisOn=1
} PMDAxisMode;
typedef enum {
PMDSerialBaud1200=0,
PMDSerialBaud2400=1,
PMDSerialBaud9600=2,
PMDSerialBaud19200=3,
PMDSerialBaud57600=4,
PMDSerialBaud115200=5,
PMDSerialBaud250000=6,
PMDSerialBaud416667=7
} PMDSerialBaud;
typedef enum {
PMDSerial1StopBit=0,
PMDSerial2StopBits=1
} PMDSerialStopBits;
typedef enum {
PMDSerialProtocolPoint2Point=0,
PMDSerialProtocolMultiDropUsingAddressBit=2,
PMDSerialProtocolMultiDropUsingIdleLineDetection=3
} PMDSerialProtocol;
typedef enum {
PMDSerialParityNone=0,
PMDSerialParityOdd=1,
PMDSerialParityEven=2
} PMDSerialParity;
typedef enum {
PMDCANBaud1000000=0,
PMDCANBaud800000=1,
PMDCANBaud500000=2,
PMDCANBaud250000=3,
PMDCANBaud125000=4,
PMDCANBaud50000=5,
PMDCANBaud20000=6,
PMDCANBaud10000=7
} PMDCANBaud;
typedef enum {
PMDSPIModeFallingEdge=0,
PMDSPIModeFallingEdgeDelay=1,
PMDSPIModeRisingEdge=0,
PMDSPIModeRisingEdgeDelay=3
} PMDSPIMode;
typedef enum {
PMDBrushedServo=1,
PMDBrushlessServo=3,
PMDMicroStepping=4,
PMDStepping=5,
PMDMixedMotor=8
} PMDMotorTypeVersion;
typedef enum {
PMDMotorTypeBrushlessDC3Phase=0,
PMDMotorTypeBrushlessDC2Phase=1,
PMDMotorTypeMicrostepping3Phase=2,
PMDMotorTypeMicrostepping2Phase=3,
PMDMotorTypePulseAndDirection=4,
PMDMotorTypeBrushed=7
} PMDMotorType;
typedef enum {
PMDSynchDisabled=0,
PMDSynchMasterNode,
PMDSynchSlaveNode
} PMDSynch;
typedef enum {
PMDBufferFunctionNone=-1,
PMDBufferFunctionPosition=0,
PMDBufferFunctionVelocity,
PMDBufferFunctionAcceleration,
PMDBufferFunctionJerk,
PMDBufferFunctionTime
} PMDBufferFunction;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -