Hallo liebe ESP32 Freunde.
Ich lese über das CAM Interface Daten ein. Es sind immer feste Blocklängen und das ganze funktioniert auch recht gut. Nur alle paar Minuten wird wahrscheinlich ein Byte verschuckt und ich muss alles neu starten, was zu grösseren Daten verlusten führt.
Aktuel habe ich den Code aus dem Kameratreiber vom ESP32S3 raus kopiert und geändert. Das ganze MSG System, Task und der CAM Interrupt sind weg. Das einzige was noch übrig ist ist der DMA Interruppt, da prüfe & filtere ich die Daten und schiebe die gefilterten Daten in einen Fifo. Dieser Fifo wird dann über einen Task per SPI weiter geleitet.
So nun ist das ganze auf X Bytes empfang ausgelegt, aber ich brauche eigentlich einen DMA EOF egal ob die Daten alle angekommen sind. Das EOF muss einfach kommen wenn der Frame zuende ist (Signale) oder alle X Bytes eingelesen wurden. Und der DMA Speicher muss nartürlich automatisch auf den nächsten FrameBuffer umschalten auch wenn der nur 1 Byte empfangen würde. Wenn der ausversehen zuviele Daten bekommt darf der logischerweise auch nicht auf die dumme Idee kommen und den nächsten DMA Speicher damit zu füllen.
Wie bekommt man das hin?