Dear sirs
I am using emWIN with GUIDRV_FlexColor in order to use a SSD1963 controller TFT display. The configuration of the driver is GUIDRV_FLEXCOLOR_M16C0B16, so it doesn´t use CACHE.
Using this configuration I detect some tearing effects that I want to solve using MULTIPLE BUFFERING.
I have seen WITHOUT ISR code example on page 928 of the UM03001_emWin5.pdf manual that update the address depending of the active buffer:
int LCD_X_DisplayDriver(unsigned LayerIndex, unsigned Cmd, void * p) {
unsigned long Addr, BufferSize;
switch (Cmd) {
...
case LCD_X_SHOWBUFFER: {
LCD_X_SHOWBUFFER_INFO * pData;
pData = (LCD_X_SHOWBUFFER_INFO *)p;
//
// Calculate address of the given buffer
//
BufferSize = (XSIZE * YSIZE * BITSPERPIXEL) / 8;
Addr = _VRamBaseAddr + BufferSize * pData->Index;
//
// Make the given buffer visible
//
AT91C_LCDC_BA1 = Addr;
//
// Send a confirmation that the buffer is visible now
//
GUI_MULTIBUF_Confirm(pData->Index);
}
break;
...
Can anyone tell me what it is the GUIDRV_FlexColor equivalent variable I should use in order to update the buffer address?
Thanks in advance.
Regards
I am using emWIN with GUIDRV_FlexColor in order to use a SSD1963 controller TFT display. The configuration of the driver is GUIDRV_FLEXCOLOR_M16C0B16, so it doesn´t use CACHE.
Using this configuration I detect some tearing effects that I want to solve using MULTIPLE BUFFERING.
I have seen WITHOUT ISR code example on page 928 of the UM03001_emWin5.pdf manual that update the address depending of the active buffer:
int LCD_X_DisplayDriver(unsigned LayerIndex, unsigned Cmd, void * p) {
unsigned long Addr, BufferSize;
switch (Cmd) {
...
case LCD_X_SHOWBUFFER: {
LCD_X_SHOWBUFFER_INFO * pData;
pData = (LCD_X_SHOWBUFFER_INFO *)p;
//
// Calculate address of the given buffer
//
BufferSize = (XSIZE * YSIZE * BITSPERPIXEL) / 8;
Addr = _VRamBaseAddr + BufferSize * pData->Index;
//
// Make the given buffer visible
//
AT91C_LCDC_BA1 = Addr;
//
// Send a confirmation that the buffer is visible now
//
GUI_MULTIBUF_Confirm(pData->Index);
}
break;
...
Can anyone tell me what it is the GUIDRV_FlexColor equivalent variable I should use in order to update the buffer address?
Thanks in advance.
Regards