Esempio n. 1
0
typedef xpcc::SoftwareSpi<Sclk, Mosi, Miso> Spi;
typedef xpcc::Mcp2515<Spi, Cs, Int> CanDevice;

static CanDevice device;
static xpcc::CanConnector< CanDevice > connector(&device);

// create an instance of the generated postman
Postman postman;

xpcc::Dispatcher dispatcher(&connector, &postman);

// Default filters to receive any extended CAN frame
FLASH_STORAGE(uint8_t canFilter[]) =
{
	MCP2515_FILTER_EXTENDED(0),	// Filter 0
	MCP2515_FILTER_EXTENDED(0),	// Filter 1

	MCP2515_FILTER_EXTENDED(0),	// Filter 2
	MCP2515_FILTER_EXTENDED(0),	// Filter 3
	MCP2515_FILTER_EXTENDED(0),	// Filter 4
	MCP2515_FILTER_EXTENDED(0),	// Filter 5

	MCP2515_FILTER_EXTENDED(0),	// Mask 0
	MCP2515_FILTER_EXTENDED(0),	// Mask 1
};

namespace component
{
	Receiver receiver(robot::component::RECEIVER, &dispatcher);
}
Esempio n. 2
0
 *		MCP2515_FILTER_EXTENDED(0),		// Mask 0 (for group 0)
 *		MCP2515_FILTER_EXTENDED(0),		// Mask 1 (for group 1)
 *	};
 * \endcode
 *
 * If you want to receive both 11 and 29 bit identifiers, set your filters
 * and masks as follows:
 */
prog_uint8_t can_filter[] = 
{
	// Group 0
	MCP2515_FILTER(0),				// Filter 0
	MCP2515_FILTER(0),				// Filter 1
	
	// Group 1
	MCP2515_FILTER_EXTENDED(0),		// Filter 2
	MCP2515_FILTER_EXTENDED(0),		// Filter 3
	MCP2515_FILTER_EXTENDED(0),		// Filter 4
	MCP2515_FILTER_EXTENDED(0),		// Filter 5
	
	MCP2515_FILTER(0),				// Mask 0 (for group 0)
	MCP2515_FILTER_EXTENDED(0),		// Mask 1 (for group 1)
};
// You can receive 11 bit identifiers with either group 0 or 1.


// -----------------------------------------------------------------------------
// Main loop for receiving and sending messages.

int main(void)
{
Esempio n. 3
0
		#define	R_CNF1	(0)
	#else
		#error invalid value for MCP2515_BITRATE
	#endif
#endif

#define MCP2515_FILTER_EXTENDED(id)	\
		(uint8_t)  ((uint32_t) (id) >> 21), \
		(uint8_t)((((uint32_t) (id) >> 13) & 0xe0) | (1<<3) | \
			(((uint32_t) (id) >> 16) & 0x3)), \
		(uint8_t)  ((uint32_t) (id) >> 8), \
		(uint8_t)  ((uint32_t) (id))

// -------------------------------------------------------------------------
uint8_t mcp2515_register_map[45] = {
	MCP2515_FILTER_EXTENDED(0x00001000),	// Filter 0
	MCP2515_FILTER_EXTENDED(0),		// Filter 1
	MCP2515_FILTER_EXTENDED(0),		// Filter 2
	0,									// BFPCTRL
	0,									// TXRTSCTRL
	0,									// CANSTAT (read-only)
	(1<<REQOP2) | CLKOUT_PRESCALER_,	// CANCTRL
	MCP2515_FILTER_EXTENDED(0),		// Filter 3
	MCP2515_FILTER_EXTENDED(0),		// Filter 4
	MCP2515_FILTER_EXTENDED(0),		// Filter 5
	0,									// TEC (read-only)
	0,									// REC (read-only)
	0,									// CANSTAT (read-only)
	(1<<REQOP2) | CLKOUT_PRESCALER_,	// CANCTRL
	MCP2515_FILTER_EXTENDED(0x3fff),// Mask 0 (for group 0)
	MCP2515_FILTER_EXTENDED(0x1fffffff),		// Mask 1 (for group 1)