31 #ifndef MCP2515_PRIVATE_H 32 #define MCP2515_PRIVATE_H 46 #include <avr/pgmspace.h> 58 #if (BUILD_FOR_MCP2515 == 1) 59 #if defined(__AVR_ATmega16__) || defined(__AVR_ATmega32__) || defined(__AVR_ATmega644__) 63 #define SUPPORT_FOR_MCP2515__ 64 #elif defined(__AVR_AT90USB82__) || defined(__AVR_AT90USB162__) 68 #define SUPPORT_FOR_MCP2515__ 69 #elif defined(__AVR_ATmega8__) || defined(__AVR_ATmega48__) || \ 70 defined(__AVR_ATmega88__) || defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) 74 #define SUPPORT_FOR_MCP2515__ 75 #elif defined(__AVR_ATmega128__) 79 #define SUPPORT_FOR_MCP2515__ 80 #elif defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__) 85 #define USE_SOFTWARE_SPI 1 86 #define SUPPORT_FOR_MCP2515__ 88 #error choosen AVR-type is not supported yet! 93 #ifdef SUPPORT_FOR_MCP2515__ 98 #ifndef MCP2515_CLKOUT_PRESCALER 99 #define MCP2515_CLKOUT_PRESCALER 0 101 #ifndef MCP2515_INTERRUPTS 102 #define MCP2515_INTERRUPTS (1<<RX1IE)|(1<<RX0IE) 110 #error MCP2515_CS ist nicht definiert! 113 #if defined(MCP2515_RX0BF) && !defined(MCP2515_RX1BF) 114 #warning only MCP2515_RX0BF but not MCP2515_RX1BF defined! 115 #elif !defined(MCP2515_RX0BF) && defined(MCP2515_RX1BF) 116 #warning only MCP2515_RX1BF but not MCP2515_RX0BF defined! 117 #elif defined(MCP2515_RX0BF) && defined(MCP2515_RX1BF) 118 #define RXnBF_FUNKTION 125 extern void mcp2515_write_register(
uint8_t adress,
uint8_t data );
150 mcp2515_bit_modify(
CANCTRL, 0xe0, mode);
151 while ((mcp2515_read_register(
CANSTAT) & 0xe0) != (mode & 0xe0))
159 #if SUPPORT_EXTENDED_CANID 167 extern void mcp2515_write_id(
const uint16_t *
id );
171 #endif // USE_EXTENDED_CANID 173 #endif // SUPPORT_FOR_MCP2515__ 175 #endif // MCP2515_PRIVATE_H
__attribute__((gnu_inline)) inline void spi_start(uint8_t data)