Hi,
I'm using CAN bus with interrupts and a circular buffer for transmit frames.I have 2 volatile pointers (rear/front) and a volatile frame counter vars that I'm managing in the CAN ISR and in the push/pull routines.
But after a random number of transmitted frames, the ISR stopped generating interrupts without apparent reason.
But After deep debugging, it seems even if a frame is transmitted and at the same time , I'm desactivating CAN interrupts , the "tx done interrupt" flag is never set !!! So when I reactivate again , the ISR is never called again ... Note : In the push / pull code , I briefly desactivate the Can interrupt in order to preserve the pointers/counter integrity.
How can I use circular buffer with this Can controler weak ?
thanks in advance