EtherCAT slave that reads 3 Xsens IMU's connected to a Xbus Master

Dependencies:   MODSERIAL mbed KL25Z_ClockControl

Fork of EtherCAT by First Last

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers xbus.h Source File

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