![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
EtherCAT slave that reads 3 Xsens IMU's connected to a Xbus Master
Dependencies: MODSERIAL mbed KL25Z_ClockControl
Fork of EtherCAT by
Diff: xbus.h
- 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 +