TheRobotStudio ROSA
/
trs_slave
Code for the mbed NXP LPC1768 To be used on The Robot Studio Slave Boards License : Simplified BSD
include/eposCmd.h
- Committer:
- rrknight
- Date:
- 2013-03-06
- Revision:
- 1:b430b4401fc4
- Parent:
- 0:18d7499b82f3
- Child:
- 2:7ab1d5918efe
File content as of revision 1:b430b4401fc4:
#ifndef EPOSCMD_H #define EPOSCMD_H //includes #include "mbed.h" #include <stdint.h> #include "registers.h" //Define #define NUMBER_MAX_EPOS2_PER_SLAVE 15 #define NUMBER_MSG_PER_PACKET 45 #define NUMBER_BYTES_PER_MSG 8 #define NUMBER_EPOS2_BOARDS 1 #define NB_SAMPLES_MEDIAN 5 //#define NB_MSG_TO_TRACK 20 //at least 4 //#define CMD_BUFFER_SIZE 26 //13*2 -> 2 cmdSet of 13 cmds each #define PAUSE 10 #define EPOS2_OK 0 #define EPOS2_ERROR -1 #define LOOP_PERIOD_TIME 20000 //20 ms enum ActivatedMode { POSITION = 0, CURRENT = 1, VELOCITY = 2, PROFILE_POSITION = 3, FORCE = 4 }; //global variables extern CAN cantoepos; extern Serial pc; //extern Serial pc; extern DigitalOut ledchain[]; //used for debugging extern char data[8]; //extern unsigned int count[12]; //used for debugging extern ActivatedMode activMode[NUMBER_EPOS2_BOARDS]; //ADC variables extern AnalogIn an1; extern AnalogIn an2; extern AnalogIn an3; extern AnalogIn an4; extern AnalogIn an5; extern AnalogIn an6; //sensor variables extern int32_t encPosition[NUMBER_EPOS2_BOARDS]; //extern int16_t potiPosArray[NUMBER_EPOS2_BOARDS][5]; extern int16_t potiPosArray[NUMBER_EPOS2_BOARDS]; extern int16_t medPotiPosition[NUMBER_EPOS2_BOARDS]; extern int16_t avgCurrent[NUMBER_EPOS2_BOARDS]; extern int16_t medForce[NUMBER_EPOS2_BOARDS]; extern int32_t velocity[NUMBER_EPOS2_BOARDS]; extern int8_t boardStatus[NUMBER_EPOS2_BOARDS]; //Multiplexer address lines extern DigitalOut A0; extern DigitalOut A1; extern DigitalOut A2; //functions void setMultiplexerChannel(const int8_t); static void setNMT(const int8_t, uint8_t); static int8_t setObjectSDO(const int8_t, const int32_t, int32_t); static int8_t setPDO(const int8_t, uint16_t, uint8_t, uint32_t, uint8_t); //EPOS2 boards and Motor settings //static void setMotorType(const int8_t); //static void setPolePair(const int8_t); //static void setMaximalMotorSpeed(const int8_t); //static void setMaximalProfileVelocity(const int8_t); //static void setMaxAcceleration(const int8_t); //static void setThermalTimeConstantWinding(const int8_t); //static void setMaximalFollowingError(const int8_t); static int8_t setModeOfOperation(const int8_t, uint8_t); extern void setModeOfOperationPDO(const int8_t, uint8_t); static void shutdownControlword(const int8_t); extern void shutdownControlwordIT(const int8_t); static void switchOnEnableOperationControlword(const int8_t); extern void switchOnEnableOperationControlwordIT(const int8_t); extern void faultResetControlword(const int8_t); //static void reEnableControlword(const int8_t); //macro functions extern int8_t initEposBoard(const int8_t); extern void setCurrent(const int8_t, const int16_t); extern void setPosition(const int8_t, const int32_t); extern void setVelocity(const int8_t, const int32_t); extern void setForce(const int8_t, const int16_t); extern void getPosition(const int8_t); extern void getCurrent(const int8_t); extern void getVelocity(const int8_t); extern int16_t getForce(const int8_t); extern void getPotiPosition(const int8_t); extern void getIncEnc1CntIdxPls(const int8_t); //get Incremental Encoder 1 Counter at Index Pulse extern void getStatusword(const int8_t); #endif //EPOSCMD_H