123
Dependencies: 4WOK_8dir_1m_PI_p2pcontrol mbed
Fork of DXL_SDK_For_F446RE by
dynamixel.h@3:e2e9064c668d, 2017-02-08 (annotated)
- Committer:
- stanley1228
- Date:
- Wed Feb 08 12:26:30 2017 +0800
- Revision:
- 3:e2e9064c668d
- Parent:
- 0:bf4774b25188
- Child:
- 4:44560391db99
synwrite seems ok need more test
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
stanley1228 | 0:bf4774b25188 | 1 | // Dynamixel SDK platform independent header |
stanley1228 | 0:bf4774b25188 | 2 | #ifndef _DYNAMIXEL_HEADER |
stanley1228 | 0:bf4774b25188 | 3 | #define _DYNAMIXEL_HEADER |
stanley1228 | 0:bf4774b25188 | 4 | |
stanley1228 | 0:bf4774b25188 | 5 | |
stanley1228 | 0:bf4774b25188 | 6 | #ifdef __cplusplus |
stanley1228 | 0:bf4774b25188 | 7 | extern "C" { |
stanley1228 | 0:bf4774b25188 | 8 | #endif |
stanley1228 | 0:bf4774b25188 | 9 | |
stanley1228 | 0:bf4774b25188 | 10 | |
stanley1228 | 0:bf4774b25188 | 11 | ///////////// device control methods //////////////////////// |
stanley1228 | 0:bf4774b25188 | 12 | int dxl_initialize( int devIndex, int baudnum ); |
stanley1228 | 0:bf4774b25188 | 13 | void dxl_terminate(void); |
stanley1228 | 0:bf4774b25188 | 14 | |
stanley1228 | 0:bf4774b25188 | 15 | |
stanley1228 | 0:bf4774b25188 | 16 | ///////////// set/get packet methods ////////////////////////// |
stanley1228 | 0:bf4774b25188 | 17 | void dxl_set_txpacket_id( int id ); |
stanley1228 | 0:bf4774b25188 | 18 | #define BROADCAST_ID (254) |
stanley1228 | 0:bf4774b25188 | 19 | |
stanley1228 | 0:bf4774b25188 | 20 | void dxl_set_txpacket_instruction( int instruction ); |
stanley1228 | 0:bf4774b25188 | 21 | #define INST_PING (1) |
stanley1228 | 0:bf4774b25188 | 22 | #define INST_READ (2) |
stanley1228 | 0:bf4774b25188 | 23 | #define INST_WRITE (3) |
stanley1228 | 0:bf4774b25188 | 24 | #define INST_REG_WRITE (4) |
stanley1228 | 0:bf4774b25188 | 25 | #define INST_ACTION (5) |
stanley1228 | 0:bf4774b25188 | 26 | #define INST_RESET (6) |
stanley1228 | 0:bf4774b25188 | 27 | #define INST_SYNC_WRITE (131) |
stanley1228 | 0:bf4774b25188 | 28 | |
stanley1228 | 0:bf4774b25188 | 29 | #define MAXNUM_TXPARAM (150) |
stanley1228 | 0:bf4774b25188 | 30 | void dxl_set_txpacket_parameter( int index, int value ); |
stanley1228 | 0:bf4774b25188 | 31 | void dxl_set_txpacket_length( int length ); |
stanley1228 | 0:bf4774b25188 | 32 | |
stanley1228 | 0:bf4774b25188 | 33 | int dxl_get_rxpacket_error( int errbit ); |
stanley1228 | 0:bf4774b25188 | 34 | #define ERRBIT_VOLTAGE (1) |
stanley1228 | 0:bf4774b25188 | 35 | #define ERRBIT_ANGLE (2) |
stanley1228 | 0:bf4774b25188 | 36 | #define ERRBIT_OVERHEAT (4) |
stanley1228 | 0:bf4774b25188 | 37 | #define ERRBIT_RANGE (8) |
stanley1228 | 0:bf4774b25188 | 38 | #define ERRBIT_CHECKSUM (16) |
stanley1228 | 0:bf4774b25188 | 39 | #define ERRBIT_OVERLOAD (32) |
stanley1228 | 0:bf4774b25188 | 40 | #define ERRBIT_INSTRUCTION (64) |
stanley1228 | 0:bf4774b25188 | 41 | |
stanley1228 | 0:bf4774b25188 | 42 | #define MAXNUM_RXPARAM (60) |
stanley1228 | 0:bf4774b25188 | 43 | int dxl_get_rxpacket_parameter( int index ); |
stanley1228 | 0:bf4774b25188 | 44 | int dxl_get_rxpacket_length(void); |
stanley1228 | 0:bf4774b25188 | 45 | |
stanley1228 | 0:bf4774b25188 | 46 | // utility for value |
stanley1228 | 0:bf4774b25188 | 47 | int dxl_makeword( int lowbyte, int highbyte ); |
stanley1228 | 0:bf4774b25188 | 48 | int dxl_get_lowbyte( int word ); |
stanley1228 | 0:bf4774b25188 | 49 | int dxl_get_highbyte( int word ); |
stanley1228 | 0:bf4774b25188 | 50 | |
stanley1228 | 0:bf4774b25188 | 51 | |
stanley1228 | 0:bf4774b25188 | 52 | ////////// packet communication methods /////////////////////// |
stanley1228 | 0:bf4774b25188 | 53 | void dxl_tx_packet(void); |
stanley1228 | 0:bf4774b25188 | 54 | void dxl_rx_packet(void); |
stanley1228 | 0:bf4774b25188 | 55 | void dxl_txrx_packet(void); |
stanley1228 | 0:bf4774b25188 | 56 | |
stanley1228 | 0:bf4774b25188 | 57 | int dxl_get_result(void); |
stanley1228 | 0:bf4774b25188 | 58 | #define COMM_TXSUCCESS (0) |
stanley1228 | 0:bf4774b25188 | 59 | #define COMM_RXSUCCESS (1) |
stanley1228 | 0:bf4774b25188 | 60 | #define COMM_TXFAIL (2) |
stanley1228 | 0:bf4774b25188 | 61 | #define COMM_RXFAIL (3) |
stanley1228 | 0:bf4774b25188 | 62 | #define COMM_TXERROR (4) |
stanley1228 | 0:bf4774b25188 | 63 | #define COMM_RXWAITING (5) |
stanley1228 | 0:bf4774b25188 | 64 | #define COMM_RXTIMEOUT (6) |
stanley1228 | 0:bf4774b25188 | 65 | #define COMM_RXCORRUPT (7) |
stanley1228 | 0:bf4774b25188 | 66 | |
stanley1228 | 0:bf4774b25188 | 67 | |
stanley1228 | 0:bf4774b25188 | 68 | //MX64 Register stanley/// |
stanley1228 | 0:bf4774b25188 | 69 | #define GOAL_POSITION 30 |
stanley1228 | 0:bf4774b25188 | 70 | #define PRESENT_POS 36 |
stanley1228 | 0:bf4774b25188 | 71 | #define ID_ADDRESS 3 |
stanley1228 | 0:bf4774b25188 | 72 | #define CW_ANGLE_LIMIT_L 6 |
stanley1228 | 0:bf4774b25188 | 73 | #define CW_ANGLE_LIMIT_H 7 |
stanley1228 | 0:bf4774b25188 | 74 | #define CCW_ANGLE_LIMIT_L 8 |
stanley1228 | 0:bf4774b25188 | 75 | #define CCW_ANGLE_LIMIT_H 9 |
stanley1228 | 3:e2e9064c668d | 76 | #define MOVING 46 |
stanley1228 | 3:e2e9064c668d | 77 | #define XL_MOVING 49 |
stanley1228 | 3:e2e9064c668d | 78 | #define GOAL_POSITION 30 |
stanley1228 | 3:e2e9064c668d | 79 | #define PRESENT_POS 36 |
stanley1228 | 3:e2e9064c668d | 80 | #define ID_ADDRESS 3 |
stanley1228 | 3:e2e9064c668d | 81 | #define MOVING 46 |
stanley1228 | 3:e2e9064c668d | 82 | #define XL_MOVING 49 |
stanley1228 | 0:bf4774b25188 | 83 | #define CW_ANGLE_LIMIT_L 6 |
stanley1228 | 0:bf4774b25188 | 84 | #define CW_ANGLE_LIMIT_H 7 |
stanley1228 | 0:bf4774b25188 | 85 | #define CCW_ANGLE_LIMIT_L 8 |
stanley1228 | 0:bf4774b25188 | 86 | #define CCW_ANGLE_LIMIT_H 9 |
stanley1228 | 0:bf4774b25188 | 87 | #define ADDRESS_LED 0x19 |
stanley1228 | 0:bf4774b25188 | 88 | |
stanley1228 | 0:bf4774b25188 | 89 | |
stanley1228 | 0:bf4774b25188 | 90 | //////////// high communication methods /////////////////////// |
stanley1228 | 0:bf4774b25188 | 91 | void dxl_ping( int id ); |
stanley1228 | 0:bf4774b25188 | 92 | int dxl_read_byte( int id, int address ); |
stanley1228 | 0:bf4774b25188 | 93 | void dxl_write_byte( int id, int address, int value ); |
stanley1228 | 0:bf4774b25188 | 94 | int dxl_read_word( int id, int address ); |
stanley1228 | 0:bf4774b25188 | 95 | void dxl_write_word( int id, int address, int value ); |
stanley1228 | 3:e2e9064c668d | 96 | int syncWrite_u16base(short int start_addr, short int data_length, short int *param, short int param_length); // WORD(16bit) syncwrite() for DXL |
stanley1228 | 0:bf4774b25188 | 97 | void setPosition(int ServoID, int Position, int Speed);//stanley |
stanley1228 | 0:bf4774b25188 | 98 | |
stanley1228 | 0:bf4774b25188 | 99 | |
stanley1228 | 0:bf4774b25188 | 100 | |
stanley1228 | 0:bf4774b25188 | 101 | |
stanley1228 | 0:bf4774b25188 | 102 | |
stanley1228 | 0:bf4774b25188 | 103 | #ifdef __cplusplus |
stanley1228 | 0:bf4774b25188 | 104 | } |
stanley1228 | 0:bf4774b25188 | 105 | #endif |
stanley1228 | 0:bf4774b25188 | 106 | |
stanley1228 | 0:bf4774b25188 | 107 | #endif |