FIFO check routine optimizes mailbox reading. This has FIFO check routine for adaptation.Ĩ) The. There is an attempt to scan for transmit buffers that are available, if none are available, it checks 2 more times before returning to user (0) that a transmit wasnt possible. IFCT m圜AN = IFCT(1000000,FLEXCAN0_BASE) // initialize with 1Mbps on Can0 (register base address) ħ) The. IFCT m圜AN = IFCT() // initialized default, 1Mbps on Can0 everything else goes in global callback, including the individual which goes to both.Ħ) The constructor is pretty basic with only 2 initializers: This allows you to handle specific mailboxes with interrupts. Void onReceive(_MB_ptr handler) /* global callback function */ Void onReceive(const IFCTMBNUM &mb_num, _MB_ptr handler) /* individual mailbox callback function */ (m圜AN.pollFIFO(msg, 1))(disable interrupt)(CAN.pollFIFO(msg, 0))(enable interrupt)ĥ) Callbacks, you have a global callback, and, if necessary, I've added individual mailbox callbacks as well! The interrupts are restored when pollFIFO is called with a 0 overload. This allows users to access frames directly rather than handling in their callbacks. Secondly, I havn't added masking/filter support yet as I work on the structure, but by default I enable both in FIFO mode and mailbox mode all frames accepted, again, until it matures, then they will be addedġ) FIFO (enabled or disabled dynamically), with interrupt capability (enableFIFOInterrupt/disableFIFOInterrupt)Ģ) Dynamic mailbox setup support: setMB(MB9, TX) (transmit mailbox), or setMB(MB9,RX,IDE) (setup an extended ID reception box)ģ) Individual mailbox interrupt enabling (*.enableMBInterrupt(MB5)/*.disableMBInterrupt(MB5) Ĥ) there is a pollFIFO() function that can give a user direct access to the FIFO frames, and at the same time, disable MB/FIFO interrupts, for as long as you poll frames. Hi, I decided to work on a different twist of the current libraries and forks of collin80, teachop, and pawelsky, and rework most of the existing code from scratch into a new library that has, currently, these features:īefore you ask, I'm currently doing it on a 3.6 and only for FLEXCAN0 until it matures, only then I would add CAN1 support and 3.2 registersĭebug will be enabled for initial version for any testers interested on testing, and suggesting other ideas to implement.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
December 2022
Categories |