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

Dependencies:   MODSERIAL mbed KL25Z_ClockControl

Fork of EtherCAT by First Last

xbus.h

Committer:
vsluiter
Date:
2015-03-03
Revision:
13:5e4dcbd44786
Parent:
12:cac4e7c2bd0f
Child:
16:bfc7ea6bd1af

File content as of revision 13:5e4dcbd44786:

#ifndef XBUS_H_
#define XBUS_H_ 1

#include "MODSERIAL.h"
//#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;
};

extern MODSERIAL xbus;

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);
void XbusInitializeXbusMaster(void);
#endif