Dependents: Kamal_CAN ReadFromSerial446 USNA-UMBC-KF-02_v3-noise USNA-UMBC-KF-01
Diff: mcp2515.h
- Revision:
- 1:dbc44582f2f8
- Parent:
- 0:d8f50b1e384f
--- a/mcp2515.h Sat Jan 30 08:46:04 2010 +0000 +++ b/mcp2515.h Sun Jun 13 09:52:03 2010 +0000 @@ -45,7 +45,7 @@ void can_init(short id); char can_peek_message(); char can_rx_byte(); -void can_set_id(short id); +void can_set_id(short id); void can_init_buffer(); void can_load_byte(char input); void can_tx_buffer(); @@ -54,53 +54,64 @@ #include "mbed.h" #include "SPI.h" - class mcp2515 { - public: - mcp2515(PinName mosi, PinName miso, PinName clk, PinName ncs); - // float read (void); - // void setThigh (float); - // void setTlow (float); - // float getThigh (void); - // float getTlow (void); - virtual void _reset(); - uint8_t configRate(const uint8_t canSpeed); - void setRegister(const uint8_t address, const uint8_t value); - - uint8_t readRegister(const uint8_t address); - void modifyRegister(const uint8_t address, const uint8_t mask, const uint8_t data); - uint8_t setCANCTRL_Mode(uint8_t newmode); - uint8_t init(const uint8_t canSpeed); - void initCANBuffers(void); - void setRegisterS(const uint8_t address, const uint8_t values[], const uint8_t n); - void write_can_id( const uint8_t mcp_addr, const uint8_t ext, const uint32_t can_id ); - // - - void readRegisterS(const uint8_t address, uint8_t values[], const uint8_t n); - uint8_t readXXStatus_helper(const uint8_t cmd); - uint8_t readStatus(void); - uint8_t RXStatus(void); +class mcp2515 { + SPI& spi; + DigitalOut _ncs; + //Serial& console =0; + bool debug; +public: + // mcp2515(PinName mosi, PinName miso, PinName clk, PinName ncs); + mcp2515(SPI& _spi, PinName ncs); + // void setInterface(SPI& spi); + // float read (void); + // void setThigh (float); + // void setTlow (float); + // float getThigh (void); + // float getTlow (void); + void _reset(); + uint8_t configRate( uint8_t canSpeed); + void setRegister( uint8_t address, uint8_t value); + + uint8_t readRegister( uint8_t address); + void modifyRegister( uint8_t address, uint8_t mask, uint8_t data); + uint8_t setCANCTRL_Mode(uint8_t newmode); + uint8_t init( int canSpeed); + void initCANBuffers(void); + void setRegisterS( uint8_t address, uint8_t values[], uint8_t n); + void write_can_id( uint8_t mcp_addr, uint8_t ext, uint32_t can_id ); + // - void read_can_id( const uint8_t mcp_addr, uint8_t* ext, uint32_t* can_id ); - void read_canMsg( const uint8_t buffer_sidh_addr, CANMessage* msg); - void write_canMsg( const uint8_t buffer_sidh_addr, CANMessage* msg); - - uint8_t getNextFreeTXBuf(uint8_t *txbuf_n); + void readRegisterS( uint8_t address, uint8_t values[], uint8_t n); + uint8_t readXXStatus_helper( uint8_t cmd); + uint8_t readStatus(void); + uint8_t RXStatus(void); + + void read_can_id( uint8_t mcp_addr, uint8_t* ext, uint32_t* can_id ); + void read_can_idN( uint8_t mcp_addr, CANFormat* ext, unsigned int* can_id ); + void read_canMsg( uint8_t buffer_sidh_addr, CANMessage* msg); + void write_canMsg( uint8_t buffer_sidh_addr, CANMessage* msg); + + uint8_t getNextFreeTXBuf(uint8_t *txbuf_n); + + void start_transmit( uint8_t buffer_sidh_addr); + + void dumpExtendedStatus(void); + + void setDebugConsole(Serial c); - void start_transmit(const uint8_t buffer_sidh_addr); - - SPI _spi; - DigitalOut _ncs; - // Private functions - private : - void _select (void); - void _deselect (void); - int status(); - void _pollbusy() ; - - uint8_t _spi_readwrite(uint8_t data); - uint8_t _spi_read(void); - - - }; + int configRate2(int bit_rate); + + // Private functions +private : + void _select (void); + void _deselect (void); + int status(); + void _pollbusy() ; + + uint8_t _spi_readwrite(uint8_t data); + uint8_t _spi_read(void); + + +}; #endif // _MCP2515_H_