EtherCAT slave that reads 3 Xsens IMU's connected to a Xbus Master
Dependencies: MODSERIAL mbed KL25Z_ClockControl
Fork of EtherCAT by
xbus.h@26:c7959f1fd09a, 2015-03-08 (annotated)
- Committer:
- vsluiter
- Date:
- Sun Mar 08 21:53:00 2015 +0000
- Revision:
- 26:c7959f1fd09a
- Parent:
- 18:6629e8c5d59e
- Child:
- 27:93c0e4ae943e
Trying to change baudrates; does not work, for some reason the xbus master stays running at 115200. Only changes for bluetooth?
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
vsluiter | 12:cac4e7c2bd0f | 1 | #ifndef XBUS_H_ |
vsluiter | 12:cac4e7c2bd0f | 2 | #define XBUS_H_ 1 |
vsluiter | 12:cac4e7c2bd0f | 3 | |
vsluiter | 13:5e4dcbd44786 | 4 | #include "MODSERIAL.h" |
vsluiter | 16:bfc7ea6bd1af | 5 | #define XBUS_BUFFER_LENGTH 255 |
vsluiter | 12:cac4e7c2bd0f | 6 | |
vsluiter | 12:cac4e7c2bd0f | 7 | enum XBUS_STATE {XBUS_IDLE = 0, XBUS_BID, XBUS_MID, XBUS_LEN, XBUS_DATA, XBUS_CS}; |
vsluiter | 12:cac4e7c2bd0f | 8 | |
vsluiter | 12:cac4e7c2bd0f | 9 | struct xbus_uart |
vsluiter | 12:cac4e7c2bd0f | 10 | { |
vsluiter | 12:cac4e7c2bd0f | 11 | uint16_t counter; |
vsluiter | 12:cac4e7c2bd0f | 12 | uint8_t checksum; |
vsluiter | 12:cac4e7c2bd0f | 13 | volatile uint8_t checksum_ok; |
vsluiter | 12:cac4e7c2bd0f | 14 | volatile uint8_t message_complete; |
vsluiter | 16:bfc7ea6bd1af | 15 | uint8_t quelength; |
vsluiter | 16:bfc7ea6bd1af | 16 | uint8_t buffer[XBUS_BUFFER_LENGTH]; |
vsluiter | 12:cac4e7c2bd0f | 17 | enum XBUS_STATE state; |
vsluiter | 12:cac4e7c2bd0f | 18 | }; |
vsluiter | 12:cac4e7c2bd0f | 19 | |
vsluiter | 13:5e4dcbd44786 | 20 | |
vsluiter | 18:6629e8c5d59e | 21 | typedef struct xbus_struct |
vsluiter | 12:cac4e7c2bd0f | 22 | { |
vsluiter | 12:cac4e7c2bd0f | 23 | //USART_t * uart; |
vsluiter | 12:cac4e7c2bd0f | 24 | struct xbus_uart rx; |
vsluiter | 12:cac4e7c2bd0f | 25 | //volatile struct xbus_uart tx; |
vsluiter | 18:6629e8c5d59e | 26 | } xbus_t; |
vsluiter | 12:cac4e7c2bd0f | 27 | |
vsluiter | 16:bfc7ea6bd1af | 28 | |
vsluiter | 12:cac4e7c2bd0f | 29 | |
vsluiter | 12:cac4e7c2bd0f | 30 | // Create checksum, pointer to array (starting w. 0xFA), length of complete array |
vsluiter | 12:cac4e7c2bd0f | 31 | uint8_t XbusCreateChecksum(uint8_t *, uint8_t); |
vsluiter | 18:6629e8c5d59e | 32 | void XbusSetupReceiver(xbus_t * xbus); |
vsluiter | 18:6629e8c5d59e | 33 | void XbusReceiveState(xbus_t * xbus, uint8_t rxdata); |
vsluiter | 13:5e4dcbd44786 | 34 | void XbusInitializeXbusMaster(void); |
vsluiter | 17:c5946a0fde83 | 35 | void XbusCreateMessage(uint8_t bid, uint8_t mid, uint8_t message_size, uint8_t *message, uint8_t *buffer ); |
vsluiter | 26:c7959f1fd09a | 36 | void XbusSetBaudRate(uint8_t baud); |
vsluiter | 26:c7959f1fd09a | 37 | void XbusReset(void); |
vsluiter | 12:cac4e7c2bd0f | 38 | #endif |
vsluiter | 12:cac4e7c2bd0f | 39 |