Geez I now have so many question to ask you RoberthhRoberthh wrote: ↑Mon Jul 22, 2019 8:17 amUsing the mem_xx() functions is very slow. For initialization, that's fine. But for other operations like setting coordinates or data transfer using native code and direct pointers is way faster. I used that for my SSD1963 driver (https://github.com/robert-hh/SSD1963-TF ... or-PyBoard), which uses 8 bit parallel data transfers. The file TFT_io.py contains the functions for accessing the memory, both native and assembly code. Native code only takes twice the time of assembly code, but is much easier to write and maintain, since the control structures of Python are available.
Q1. What's the difference between machine.mem16 and ptr16 ???
Q2. considering that you resorted to using assembler for speed why didn't you write it in C and then just compile into the firmware??
Q3. why did you bit bang in software instead of using the FSMC HW peripheral?? The HW peripheral is much faster than bit bang and a little less programming to make it work. The FSMC also can make use of DMA to write large blocks of data at insane IO speeds to the TFT, using DMA I could update the TFT GRAM quicker than it could refresh at the screen at 50hz