|
现在就是在6600D下,lcd_main.c里面有一些关于播放器全屏的问题,就是正常播放的时候可以,但是当点击全屏的时候画面变花了,看不清楚,不是全屏的样而且屏幕应该变横着的了的,好象是有关的储存器设置有问题,有没有相关的经验人士帮忙解决一下
6600D+ST7669V+cstn的屏
void lcd_main_mpg4_refresh
(
uint16 left, //the left value of the rectangel
uint16 top, //top of the rectangle
uint16 right, //right of the rectangle
uint16 bottom, //bottom of the rectangle
uint16 *buf_ptr,
uint8 is_invert
)
{
uint16 i,j;
uint16 address = 0;
//add by lw 2008-01-07
#ifdef CMI_CSTN_st7669vLCD
st7669lcd_main_region(left,top,right,bottom);
#else
/*set Address Direction*/
if (is_invert)
{
lcd_main_reg_write(0x0005,0x0028);
}
else
{
lcd_main_reg_write(0x0005,0x0030);
}
/*1:set horizon address and vertical address*/
address = (uint16) (((right & 0xFF) << 8) | (left & 0xFF ));
lcd_main_reg_write(g_lcd_main_region_table[0].addr, address); // set horizon address
address = (uint16) (((bottom & 0xFF) << 8) | (top & 0xFF));
lcd_main_reg_write(g_lcd_main_region_table[1].addr, address); // set vertical address position
/*set ram address*/
if (is_invert)
{
address = (uint16) (((top & 0xFF) << 8) | (right & 0xFF));
lcd_main_reg_write(g_lcd_main_region_table[2].addr, address); // Set start RAM address (AC register)
}
else
{
address = (uint16) (((top & 0xFF) << 8) | (left & 0xFF));
lcd_main_reg_write(g_lcd_main_region_table[2].addr, address); // Set start RAM address (AC register)
}
/*write data*/
lcd_main_reg_cmd_write(g_lcd_main_region_table[3].addr);
#endif
if (is_invert)
{
/*write data*/
for (i= left; i<= right; i++)
{
for (j = top; j <= bottom; j++) // real write
{
lcd_main_reg_data_write( *(buf_ptr + i * LCD_MAIN_MP4_WIDTH + j) );
}
}
}
else
{
/*write data*/
uint rTmp = LCD_MAIN_WIDTH;//((right - left + 1) * (bottom - top + 1)) / LCD_MAIN_MP4_WIDTH + 1;
//SCI_TRACE_LOW(" lcd_main_mpg4_refresh(): left= %d,right = %d,top= %d,bottom = %d\n",left,right,top,bottom);
if (bottom > rTmp)
{
bottom = rTmp;
}
for (i= top; i<= bottom; i++)
{
for (j = left; j <= right; j++) // real write
{
lcd_main_reg_data_write( *(buf_ptr + i * LCD_MAIN_MP4_WIDTH + j) );
}
}
lcd_main_mpg4_icon_refresh(0,
0,
(LCD_MAIN_WIDTH - 1),
(LCD_MAIN_HEIGHT -LCD_MAIN_WIDTH - 2),
(uint16*)g_mpg4_bmp[g_mpg4_bmp_index].map->bitmap);
}
#ifndef CMI_CSTN_st7669vLCD
lcd_main_reg_write(0x0005,0x0030);
#endif
return;
}
帮忙看一下,什么地方要改的,谢谢了 |
|