Hallo Sebastian,
ich weiss leider kein Heilmittel zu deinem Problem, aber es ist relativ
"gefaehrlich", den PPI innerhalb der DMA IRQ service routine an &
abzuschalten, da er noch ein kleines Hardware-FIFO enthaelt. Heisst,
wenn der DMA0 IRQ auftritt, ist zwar der DMA-Transfer vorbei, aber
womoeglich noch was im FIFO, wenn du den PPI deaktivierst.
Im Prinzip sollte es nicht noetig sein, den PPI abzuschalten. Bin mir
aber noch nicht ganz sicher, ob ich richtig verstanden habe, wie dein
TFT gefuettert werden will. Normalerweise muesste es ansich reichen, die
HSYNC und VSYNC timings mit den Timern per PPI_FS1 / PPI_FS2 zu
generieren, ohne "Gated clock".
Um den dauernden Datenfluss zu gewaehrleisten, kann man dann verkettete
Descriptor-Listen benutzen - und schreibt immer in den Pingpong-Puffer,
der grade "offline" ist (also nicht ge DMA't wird). Dann ist der IRQ
service handler eigentlich kaum noch noetig, bzw. nur noch relevant,
wenn man der Grafikapplikation den aktuell gezeichneten Puffer mitteilen
will.
Schoene Gruesse,
- Strubi