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

Dependencies:   MODSERIAL mbed KL25Z_ClockControl

Fork of EtherCAT by First Last

Revision:
12:cac4e7c2bd0f
Child:
13:5e4dcbd44786
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xbus.h	Tue Mar 03 10:58:20 2015 +0000
@@ -0,0 +1,33 @@
+#ifndef XBUS_H_
+#define XBUS_H_ 1
+
+#define XBUS_BUFFER_LENGTH 255
+
+enum XBUS_STATE {XBUS_IDLE = 0, XBUS_BID, XBUS_MID, XBUS_LEN, XBUS_DATA, XBUS_CS};
+
+struct xbus_uart
+{
+    uint16_t    counter;
+    uint8_t     checksum;
+    volatile uint8_t   checksum_ok;
+    volatile uint8_t   message_complete;
+    uint8_t     quelength;
+    uint8_t     buffer[XBUS_BUFFER_LENGTH];
+    enum XBUS_STATE state;
+};
+
+struct xbus_struct
+{
+    //USART_t * uart;
+	struct xbus_uart rx;
+    //volatile struct xbus_uart tx;
+};
+
+struct xbus_struct xbus_master;
+
+// Create checksum, pointer to array (starting w. 0xFA), length of complete array
+uint8_t XbusCreateChecksum(uint8_t *, uint8_t);
+void XbusSetupReceiver(struct xbus_struct *);
+void XbusReceiveState(struct xbus_struct * xbus, uint8_t rxdata);
+#endif
+