EtherCAT slave that reads 3 Xsens IMU's connected to a Xbus Master
Dependencies: MODSERIAL mbed KL25Z_ClockControl
Fork of EtherCAT by
xbus.h
00001 #ifndef XBUS_H_ 00002 #define XBUS_H_ 1 00003 00004 #include "MODSERIAL.h" 00005 #define XBUS_BUFFER_LENGTH 255 00006 00007 enum XBUS_STATE {XBUS_IDLE = 0, XBUS_BID, XBUS_MID, XBUS_LEN, XBUS_DATA, XBUS_CS}; 00008 00009 struct xbus_uart 00010 { 00011 uint16_t counter; 00012 uint8_t checksum; 00013 volatile uint8_t checksum_ok; 00014 volatile uint8_t message_complete; 00015 uint8_t quelength; 00016 uint8_t buffer[XBUS_BUFFER_LENGTH]; 00017 enum XBUS_STATE state; 00018 }; 00019 00020 00021 typedef struct xbus_struct 00022 { 00023 //USART_t * uart; 00024 struct xbus_uart rx; 00025 //volatile struct xbus_uart tx; 00026 } xbus_t; 00027 00028 00029 00030 // Create checksum, pointer to array (starting w. 0xFA), length of complete array 00031 uint8_t XbusCreateChecksum(uint8_t *, uint8_t); 00032 void XbusSetupReceiver(xbus_t * xbus); 00033 void XbusReceiveState(xbus_t * xbus, uint8_t rxdata); 00034 void XbusInitializeXbusMaster(void); 00035 void XbusCreateMessage(uint8_t bid, uint8_t mid, uint8_t message_size, uint8_t *message, uint8_t *buffer ); 00036 void XbusSetBaudRate(uint8_t baud); 00037 void XbusReset(void); 00038 void XbusGoToConfig(void); 00039 #endif 00040
Generated on Wed Jul 13 2022 17:16:52 by 1.7.2