mirror of https://github.com/rusefi/ChibiOS.git
Reworked CAN driver working. TODO: activate 2nd RX queue.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@5301 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
parent
04385d42d4
commit
fc7818faf7
|
@ -118,6 +118,11 @@ typedef enum {
|
|||
* @name Macro Functions
|
||||
* @{
|
||||
*/
|
||||
/**
|
||||
* @bried Converts a mailbox index to a bit mask.
|
||||
*/
|
||||
#define CAN_MAILBOX_TO_MASK(mbx) (1 << ((mbx) - 1))
|
||||
|
||||
/**
|
||||
* @brief Adds some flags to the CAN status mask.
|
||||
*
|
||||
|
|
|
@ -137,7 +137,7 @@ static void can_lld_tx_handler(CANDriver *canp) {
|
|||
chSysLockFromIsr();
|
||||
while (chSemGetCounterI(&canp->txsem) < 0)
|
||||
chSemSignalI(&canp->txsem);
|
||||
chEvtBroadcastI(&canp->txempty_event);
|
||||
chEvtBroadcastFlagsI(&canp->txempty_event, CAN_MAILBOX_TO_MASK(1));
|
||||
chSysUnlockFromIsr();
|
||||
}
|
||||
|
||||
|
@ -158,7 +158,7 @@ static void can_lld_rx0_handler(CANDriver *canp) {
|
|||
chSysLockFromIsr();
|
||||
while (chSemGetCounterI(&canp->rxsem) < 0)
|
||||
chSemSignalI(&canp->rxsem);
|
||||
chEvtBroadcastI(&canp->rxfull_event);
|
||||
chEvtBroadcastFlagsI(&canp->rxfull_event, CAN_MAILBOX_TO_MASK(1));
|
||||
chSysUnlockFromIsr();
|
||||
}
|
||||
if ((rf0r & CAN_RF0R_FOVR0) > 0) {
|
||||
|
|
Loading…
Reference in New Issue