mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-09-28 16:14:20 +08:00
fix ili9325 driver
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@439 bbd45198-f89e-11dd-88c7-29a3b14d5316
This commit is contained in:
@@ -1,15 +0,0 @@
|
||||
#ifndef ILI9320_H_INCLUDED
|
||||
#define ILI9320_H_INCLUDED
|
||||
|
||||
extern void ili9320_Initializtion(void);
|
||||
extern void ili9320_SetCursor(u16 x,u16 y);
|
||||
extern void ili9320_Clear(u16 Color);
|
||||
|
||||
extern u16 ili9320_BGR2RGB(u16 c);
|
||||
|
||||
extern void LCD_WriteRAM_Prepare(void);
|
||||
extern void LCD_WriteRAM(u16 RGB_Code);
|
||||
extern u16 LCD_ReadRAM(void);
|
||||
extern void LCD_WriteReg(u8 LCD_Reg,u16 LCD_RegValue);
|
||||
|
||||
#endif
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,28 @@
|
||||
#ifndef ILI9325_H_INCLUDED
|
||||
#define ILI9325_H_INCLUDED
|
||||
|
||||
extern void ili9325_Initializtion(void);
|
||||
extern void ili9325_SetCursor(u16 x,u16 y);
|
||||
extern void ili9325_Clear(u16 Color);
|
||||
|
||||
extern unsigned short ili9325_BGR2RGB(unsigned short c);
|
||||
|
||||
extern void LCD_WriteRAM_Prepare(void);
|
||||
extern void LCD_WriteRAM(u16 RGB_Code);
|
||||
extern unsigned short ili9325_ReadGRAM(unsigned short x,unsigned short y);
|
||||
extern void LCD_WriteReg(u8 LCD_Reg,u16 LCD_RegValue);
|
||||
|
||||
typedef struct
|
||||
{
|
||||
vu16 LCD_REG; /* 0x00 */
|
||||
vu16 reserve1; /* 0x02 */
|
||||
vu16 reserve2; /* 0x04 */
|
||||
vu16 reserve3; /* 0x06 */
|
||||
vu16 LCD_RAM; /* 0x08 */
|
||||
} LCD_ili9325_TypeDef;
|
||||
|
||||
/* LCD is connected to the FSMC_Bank1_NOR/SRAM2 and NE2 is used as ship select signal */
|
||||
#define LCD_ili9325_BASE ((u32)(0x60000000 | 0x04000000))
|
||||
#define LCD ((LCD_ili9325_TypeDef *) LCD_ili9325_BASE)
|
||||
|
||||
#endif
|
||||
+47
-20
@@ -11,7 +11,7 @@
|
||||
#endif
|
||||
|
||||
#if (LCD_VERSION == 2)
|
||||
#include "ili9325/ili9320.h"
|
||||
#include "ili9325/ili9325.h"
|
||||
#endif
|
||||
|
||||
rt_err_t rt_hw_lcd_init(void);
|
||||
@@ -312,7 +312,7 @@ void rt_hw_lcd_set_pixel(rtgui_color_t *c, rt_base_t x, rt_base_t y)
|
||||
|
||||
/* get color pixel */
|
||||
p = rtgui_color_to_565p(*c);
|
||||
ili9320_SetCursor(x,y);
|
||||
ili9325_SetCursor(x,y);
|
||||
|
||||
LCD_WriteRAM_Prepare();
|
||||
LCD_WriteRAM(p);
|
||||
@@ -322,16 +322,7 @@ void rt_hw_lcd_set_pixel(rtgui_color_t *c, rt_base_t x, rt_base_t y)
|
||||
void rt_hw_lcd_get_pixel(rtgui_color_t *c, rt_base_t x, rt_base_t y)
|
||||
{
|
||||
unsigned short p;
|
||||
|
||||
ili9320_SetCursor(x,y);
|
||||
//if (DeviceCode==0x7783)
|
||||
//{
|
||||
// p = (LCD_ReadRAM());
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
p = (ili9320_BGR2RGB(LCD_ReadRAM()));
|
||||
//}
|
||||
p = ili9325_BGR2RGB( ili9325_ReadGRAM(x,y) );
|
||||
*c = rtgui_color_from_565p(p);
|
||||
}
|
||||
|
||||
@@ -344,9 +335,9 @@ void rt_hw_lcd_draw_hline(rtgui_color_t *c, rt_base_t x1, rt_base_t x2, rt_base_
|
||||
p = rtgui_color_to_565p(*c);
|
||||
|
||||
/* [5:4]-ID~ID0 [3]-AM-1垂直-0水平 */
|
||||
LCD_WriteReg(0x0003,(1<<12)|(1<<5)|(0<<4) | (0<<3) );
|
||||
LCD_WriteReg(0x0003,(1<<12)|(1<<5)|(1<<4) | (0<<3) );
|
||||
|
||||
ili9320_SetCursor(x1, y);
|
||||
ili9325_SetCursor(x1, y);
|
||||
LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
|
||||
while (x1 < x2)
|
||||
{
|
||||
@@ -368,7 +359,7 @@ void rt_hw_lcd_draw_vline(rtgui_color_t *c, rt_base_t x, rt_base_t y1, rt_base_t
|
||||
/* [5:4]-ID~ID0 [3]-AM-1垂直-0水平 */
|
||||
LCD_WriteReg(0x0003,(1<<12)|(1<<5)|(0<<4) | (1<<3) );
|
||||
|
||||
ili9320_SetCursor(x, y1);
|
||||
ili9325_SetCursor(x, y1);
|
||||
LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
|
||||
while (y1 < y2)
|
||||
{
|
||||
@@ -388,9 +379,9 @@ void rt_hw_lcd_draw_raw_hline(rt_uint8_t *pixels, rt_base_t x1, rt_base_t x2, rt
|
||||
ptr = (rt_uint16_t*) pixels;
|
||||
|
||||
/* [5:4]-ID~ID0 [3]-AM-1垂直-0水平 */
|
||||
//LCD_WriteReg(0x0003,(1<<12)|(1<<5)|(0<<4) | (0<<3) );
|
||||
LCD_WriteReg(0x0003,(1<<12)|(1<<5)|(1<<4) | (0<<3) );
|
||||
|
||||
ili9320_SetCursor(x1, y);
|
||||
ili9325_SetCursor(x1, y);
|
||||
LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
|
||||
while (x1 < x2)
|
||||
{
|
||||
@@ -398,7 +389,7 @@ void rt_hw_lcd_draw_raw_hline(rt_uint8_t *pixels, rt_base_t x1, rt_base_t x2, rt
|
||||
LCD_WriteRAM( *ptr );
|
||||
x1 ++;
|
||||
ptr ++;
|
||||
ili9320_SetCursor(x1, y);
|
||||
ili9325_SetCursor(x1, y);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -413,7 +404,43 @@ rt_err_t rt_hw_lcd_init(void)
|
||||
GPIO_Init(GPIOF,&GPIO_InitStructure);
|
||||
GPIO_SetBits(GPIOF,GPIO_Pin_9);
|
||||
|
||||
ili9320_Initializtion();
|
||||
ili9325_Initializtion();
|
||||
|
||||
/* LCD GRAM TEST */
|
||||
{
|
||||
unsigned short temp;
|
||||
unsigned int test_x;
|
||||
unsigned int test_y;
|
||||
|
||||
rt_kprintf("\r\nLCD GRAM test....");
|
||||
|
||||
/* write */
|
||||
temp=0;
|
||||
for(test_y=0; test_y<320; test_y++)
|
||||
{
|
||||
for(test_x=0; test_x<240; test_x++)
|
||||
{
|
||||
ili9325_SetCursor(test_x,test_y);
|
||||
LCD->LCD_REG = 34;
|
||||
LCD->LCD_RAM = temp++;
|
||||
}
|
||||
}
|
||||
|
||||
/* read */
|
||||
temp=0;
|
||||
for(test_y=0; test_y<320; test_y++)
|
||||
{
|
||||
for(test_x=0; test_x<240; test_x++)
|
||||
{
|
||||
if( ili9325_BGR2RGB( ili9325_ReadGRAM(test_x,test_y) ) != temp++)
|
||||
{
|
||||
rt_kprintf(" LCD GRAM ERR!!");
|
||||
while(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
rt_kprintf(" TEST PASS!\r\n");
|
||||
}/* LCD GRAM TEST */
|
||||
|
||||
#ifndef DRIVER_TEST
|
||||
/* add lcd driver into graphic driver */
|
||||
@@ -439,7 +466,7 @@ FINSH_FUNCTION_EXPORT(vline, draw a vline);
|
||||
|
||||
void cls()
|
||||
{
|
||||
ili9320_Clear(0xF800);
|
||||
ili9325_Clear(0xF800);
|
||||
}
|
||||
FINSH_FUNCTION_EXPORT(cls, clear screen);
|
||||
#endif
|
||||
|
||||
+194
-199
File diff suppressed because it is too large
Load Diff
@@ -41,12 +41,12 @@ File 1,1,<.\device_info.c><device_info.c>
|
||||
File 1,1,<.\player_ui.c><player_ui.c>
|
||||
File 1,1,<.\player_bg.c><player_bg.c>
|
||||
File 1,1,<.\play_list.c><play_list.c>
|
||||
File 1,1,<.\ili9325\ili9320.c><ili9320.c>
|
||||
File 1,1,<.\codec.c><codec.c>
|
||||
File 1,1,<.\spi_flash.c><spi_flash.c>
|
||||
File 1,1,<.\remote.c><remote.c>
|
||||
File 1,1,<.\picture.c><picture.c>
|
||||
File 1,1,<.\station_list.c><station_list.c>
|
||||
File 1,1,<.\ili9325\ili9325.c><ili9325.c>
|
||||
File 2,1,<..\..\src\clock.c><clock.c>
|
||||
File 2,1,<..\..\src\idle.c><idle.c>
|
||||
File 2,1,<..\..\src\ipc.c><ipc.c>
|
||||
|
||||
Reference in New Issue
Block a user