AI8051试验箱V1.2 视频播放器开发贴,持续更新。。。
1. 拿到试验箱了,还有官方给的例子。这么好的事,我不得拿出来得瑟一下子啊。
直接上图。
2. 得瑟完了,我在想把官方给的例子 改吧改吧,整合到一起,这个是不是可以搞成个播放器,看电影用啊?
我们先熟悉一下它的管脚:
1. 引脚这个东西比较多,也不用记,大概有个印象就行。
2. 我们看下官方的例子是咋写的:
2.1 官方给了4个c文件,分别是hardware里的lcd.c,system 里的sys.c ,user里的gui.c , test.c,main.c
2.2 我们认为有3个模块。一个是hardware,一个是system, 一个是user。
2.3 hardware 主要对硬件的读写。system 就是一个延时,用来保证读写的时机。 user其实就属于业务了,比如我想画什么样的几何图形。
3. 通过对模块分析以后,我们就知道重点就在hardware里了。接下来看hardware里写了什么。
3.1 主要的功能也就是下面这些:
typedef struct
{
u16 width;
u16 height;
u16 id;
u8dir;
u16 wramcmd;
u16rramcmd;
u16setxcmd;
u16setycmd;
}_lcd_dev;
void LCD_Init(void);
void LCD_Clear(u16 Color);
void LCD_write(u8 HVAL,u8 LVAL);
u16 LCD_read(void);
void LCD_WR_DATA(u16 Data);
u16 LCD_RD_DATA(void);
void LCD_WR_REG(u16 Reg);
void LCD_SetCursor(u16 Xpos, u16 Ypos);//ÉèÖùâ±êλÖÃ
void LCD_SetWindows(u16 xStar, u16 yStar,u16 xEnd,u16 yEnd);//ÉèÖÃÏÔʾ´°¿Ú
void LCD_DrawPoint(u16 x,u16 y);//»µã
u16 LCD_ReadPoint(u16 x,u16 y);
void LCD_WriteRAM_Prepare(void);
void LCD_ReadRAM_Prepare(void);
void LCD_direction(u8 direction );
void LCD_WR_DATA_16Bit(u16 Data);
u16 Lcd_RD_DATA_16Bit(void);
void LCD_WriteReg(u16 LCD_Reg, u16 LCD_RegValue);
void LCD_ReadReg(u16 LCD_Reg,u8 *Rval,int n);
u16 LCD_Read_ID(void);
u16 Color_To_565(u8 r, u8 g, u8 b); 非曰不能,难矣
虽说8051u的刷屏性能(尤其是dma)方面有大幅提高,但这个性能来看播放压缩格式还是不太现实。
那就只能播特殊处理过的视频了,就是原始数据,解压这个事你自己在电脑上完成,的要原始数据塞进外部flash让它播。
视频取模软件不好搞,要不只能自己写了。
解析AVI(别全屏,1/4屏先试试行不行)来播应该也有点希望。再不济只能播特殊处理过的视频了
页:
[1]