Subversion Repositories HomeAutomation

Rev

Rev 220 | Blame | Compare with Previous | Last modification | View Log | SVN | RSS feed

  1. #ifndef MCP2515_H_
  2. #define MCP2515_H_
  3.  
  4. #include "mcp2515_defs.h"
  5. #include "mcp2515_cfg.h"
  6. #include <can.h>
  7.  
  8. #define MCP_N_TXBUFFERS (3)
  9.  
  10. #define MCP_RXBUF_0 (MCP_RXB0SIDH)
  11. #define MCP_RXBUF_1 (MCP_RXB1SIDH)
  12.  
  13. #define MCP_TXBUF_0 (MCP_TXB0SIDH)
  14. #define MCP_TXBUF_1 (MCP_TXB1SIDH)
  15. #define MCP_TXBUF_2 (MCP_TXB2SIDH)
  16.  
  17. // #define MCP2515_SELECT() (SPI_SS_LOW())
  18. // #define MCP2515_UNSELECT() (SPI_SS_HIGH())
  19.  
  20. #define MCP2515_SELECT()   ( MCP_CS_PORT &= ~(1<<MCP_CS_BIT) )
  21. #define MCP2515_UNSELECT() ( MCP_CS_PORT |=  (1<<MCP_CS_BIT) )
  22.  
  23. #define MCP2515_OK         (0)
  24. #define MCP2515_FAIL       (1)
  25. #define MCP_ALLTXBUSY      (2)
  26.  
  27. void MCP2515_Reset(void);
  28.  
  29. uint8_t MCP2515_ReadRegister(const uint8_t address);
  30. void MCP2515_SetRegisterS(const uint8_t address, const uint8_t values[], const uint8_t n);
  31.  
  32. void MCP2515_SetRegister(const uint8_t address, const uint8_t value);
  33. void MCP2515_SetRegisterS(const uint8_t address, const uint8_t values[], const uint8_t n);
  34. void MCP2515_ModifyRegister(const uint8_t address, const uint8_t mask, const uint8_t data);
  35.  
  36. uint8_t MCP2515_ReadStatus(void);
  37. uint8_t MCP2515_RxStatus(void);
  38.  
  39. uint8_t MCP2515_SetCanCtrlMode(const uint8_t newmode);
  40. uint8_t MCP2515_SetClkout(const uint8_t newmode);
  41.  
  42. uint8_t MCP2515_ConfigRate(const uint8_t canSpeed);
  43. uint8_t MCP2515_Init(const uint8_t canSpeed);
  44.  
  45. void MCP2515_WriteCanId(const uint8_t mcp_addr, const uint8_t ext, const uint32_t can_id);
  46. void MCP2515_ReadCanId(const uint8_t mcp_addr, uint8_t* ext, uint32_t* can_id );
  47. void MCP2515_WriteCanMsg(const uint8_t buffer_sidh_addr, const Can_Message_t* msg);
  48. void MCP2515_ReadCanMsg(const uint8_t buffer_sidh_addr, Can_Message_t* msg);
  49.  
  50. void MCP2515_StartTransmit(const uint8_t mcp_addr);
  51.  
  52. uint8_t MCP2515_GetNextFreeTXBuf(uint8_t *txbuf_n);
  53.  
  54. #ifdef MCP_DEBUGMODE
  55. void MCP2515_DumpExtendedStatus(void);
  56. #endif
  57.  
  58. #endif
  59.