mirror of https://github.com/ARMmbed/mbed-os.git
CAN: Add explicit pinmap support
parent
37714c7894
commit
655a6b896f
|
@ -170,6 +170,22 @@ public:
|
|||
*/
|
||||
CAN(PinName rd, PinName td, int hz);
|
||||
|
||||
/** Initialize CAN interface
|
||||
*
|
||||
* @param pinmap reference to structure which holds static pinmap
|
||||
* @param td the transmit pin
|
||||
* @param hz the bus frequency in hertz
|
||||
*/
|
||||
CAN(const can_pinmap_t &pinmap);
|
||||
|
||||
/** Initialize CAN interface and set the frequency
|
||||
*
|
||||
* @param pinmap reference to structure which holds static pinmap
|
||||
* @param td the transmit pin
|
||||
* @param hz the bus frequency in hertz
|
||||
*/
|
||||
CAN(const can_pinmap_t &pinmap, int hz);
|
||||
|
||||
virtual ~CAN();
|
||||
|
||||
/** Set the frequency of the CAN interface
|
||||
|
|
|
@ -46,6 +46,30 @@ CAN::CAN(PinName rd, PinName td, int hz) : _can(), _irq()
|
|||
can_irq_init(&_can, (&CAN::_irq_handler), (uint32_t)this);
|
||||
}
|
||||
|
||||
CAN::CAN(const can_pinmap_t &pinmap) : _can(), _irq()
|
||||
{
|
||||
// No lock needed in constructor
|
||||
|
||||
for (size_t i = 0; i < sizeof _irq / sizeof _irq[0]; i++) {
|
||||
_irq[i] = NULL;
|
||||
}
|
||||
|
||||
can_init_direct(&_can, &pinmap);
|
||||
can_irq_init(&_can, (&CAN::_irq_handler), (uint32_t)this);
|
||||
}
|
||||
|
||||
CAN::CAN(const can_pinmap_t &pinmap, int hz) : _can(), _irq()
|
||||
{
|
||||
// No lock needed in constructor
|
||||
|
||||
for (size_t i = 0; i < sizeof _irq / sizeof _irq[0]; i++) {
|
||||
_irq[i] = NULL;
|
||||
}
|
||||
|
||||
can_init_freq_direct(&_can, &pinmap, hz);
|
||||
can_irq_init(&_can, (&CAN::_irq_handler), (uint32_t)this);
|
||||
}
|
||||
|
||||
CAN::~CAN()
|
||||
{
|
||||
// No lock needed in destructor
|
||||
|
|
Loading…
Reference in New Issue