Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. The function CanBusWrite() is pending on the counting semaphore with the configured TxTimeout. The timeout must be set with CanBusIoCtl() CANBUS_SET_TX_TIMEOUT
  2. If the function has the semaphore within the timeout, the given CAN frame is copied to the internal transmission queue. If a timeout error was detected, the function CanBusWrite() exits with an error-code.

Asynchronous to this actions, the transmission complete interrupt of the CAN controller shall activate the function CanBusTxHandler():

  1. The interrupt handler checks if a CAN frame is in the internal transmission queue.
  2. If a CAN frame is in the queue, the low level device driver function Write() is used to pass the CAN frame to the CAN controller.
  3. The counting semaphore will be posted and the handler will be finished.