Gast
#2171549
Hallo, ich benutze im dsPIC33 das ECAN-Modul mit DMA. Wenn eine CAN-Message empfangen wird, wird sie vom DMA-Controller automatisch in den Messagepuffer (im DMA-RAM) geschrieben. Wenn ich mit der CPU diesen Messagepuffer auslese, während gerade eine neue Message kommt, kann es passieren, daß ich inkonstistente Daten bekomme (einige Bytes der alten Message und einige Bytes der neuen Message). Bei einem interrupt-gesteuerten System wäre die Sache klar: Lesen nur unter Interruptsperre! Aber wie mach ich das hier mit dem DMA-Controller? Den DMA-Kanal kann ich nicht sperren/abschalten, weil dieser ja auch noch andere CAN-Messages empfangen können muß. Ideen? Danke!