V1.2.9 删除SEEKFREE_IPS200_PARALLEL8文件,新增SEEKFREE_IPS200,此文件包含原有的2寸屏并口驱动也包含最新的2寸屏串口驱动

This commit is contained in:
TEK-ZHANGSY\Administrator
2022-05-17 17:37:03 +08:00
parent 927bc420c1
commit cf458aebe8
189 changed files with 16145 additions and 14353 deletions

View File

@@ -1,3 +1,5 @@
V1.2.9
ɾ<><C9BE>SEEKFREE_IPS200_PARALLEL8<4C>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SEEKFREE_IPS200<30><30><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD>е<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
V1.2.8 V1.2.8
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD><EFBFBD>PCLK_MODE<44><45>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>λ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD><EFBFBD>PCLK_MODE<44><45>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>λ

View File

@@ -61,7 +61,7 @@
#include "SEEKFREE_MMA8451.h" #include "SEEKFREE_MMA8451.h"
#include "SEEKFREE_L3G4200D.h" #include "SEEKFREE_L3G4200D.h"
#include "SEEKFREE_WIRELESS.h" #include "SEEKFREE_WIRELESS.h"
#include "SEEKFREE_IPS200_PARALLEL8.h" #include "SEEKFREE_IPS200.h"
#include "SEEKFREE_7725.h" #include "SEEKFREE_7725.h"
#include "SEEKFREE_RDA5807.h" #include "SEEKFREE_RDA5807.h"
#include "SEEKFREE_7725_UART.h" #include "SEEKFREE_7725_UART.h"

View File

@@ -24,7 +24,7 @@
#include "IfxQspi.h" #include "IfxQspi.h"
#include "zf_assert.h" #include "zf_assert.h"
#include "zf_spi.h" #include "zf_spi.h"
#include "zf_gpio.h"
#define MAX_BAUD 50000000 #define MAX_BAUD 50000000
@@ -183,7 +183,62 @@ void spi_mux(SPIN_enum spi_n, SPI_PIN_enum sck_pin, SPI_PIN_enum mosi_pin, SPI_P
} }
uint8 get_spi_cs_pin(SPI_PIN_enum cs_pin)
{
if (SPI0_CS0_P20_8 == cs_pin) return gpio_get(P20_8);
else if (SPI0_CS1_P20_9 == cs_pin) return gpio_get(P20_9);
else if (SPI0_CS2_P20_13 == cs_pin) return gpio_get(P20_13);
else if (SPI0_CS3_P11_10 == cs_pin) return gpio_get(P11_10);
else if (SPI0_CS4_P11_11 == cs_pin) return gpio_get(P11_11);
else if (SPI0_CS5_P11_2 == cs_pin) return gpio_get(P11_2);
else if (SPI0_CS6_P20_10 == cs_pin) return gpio_get(P20_10);
else if (SPI0_CS7_P33_5 == cs_pin) return gpio_get(P33_5);
else if (SPI0_CS8_P20_6 == cs_pin) return gpio_get(P20_6);
else if (SPI0_CS9_P20_3 == cs_pin) return gpio_get(P20_3);
else if (SPI0_CS13_P15_0 == cs_pin) return gpio_get(P15_0);
else if (SPI1_CS0_P20_8 == cs_pin) return gpio_get(P20_8);
else if (SPI1_CS1_P20_9 == cs_pin) return gpio_get(P20_9);
else if (SPI1_CS2_P20_13 == cs_pin) return gpio_get(P20_13);
else if (SPI1_CS3_P11_10 == cs_pin) return gpio_get(P11_10);
else if (SPI1_CS4_P11_11 == cs_pin) return gpio_get(P11_11);
else if (SPI1_CS5_P11_2 == cs_pin) return gpio_get(P11_2);
else if (SPI1_CS6_P33_10 == cs_pin) return gpio_get(P33_10);
else if (SPI1_CS7_P33_5 == cs_pin) return gpio_get(P33_5);
else if (SPI1_CS8_P10_4 == cs_pin) return gpio_get(P10_4);
else if (SPI1_CS9_P10_5 == cs_pin) return gpio_get(P10_5);
else if (SPI1_CS10_P10_0 == cs_pin) return gpio_get(P10_0);
else if (SPI2_CS0_P15_2 == cs_pin) return gpio_get(P15_2);
else if (SPI2_CS1_P14_2 == cs_pin) return gpio_get(P14_2);
else if (SPI2_CS2_P14_6 == cs_pin) return gpio_get(P14_6);
else if (SPI2_CS3_P14_3 == cs_pin) return gpio_get(P14_3);
else if (SPI2_CS5_P15_1 == cs_pin) return gpio_get(P15_1);
else if (SPI2_CS6_P33_13 == cs_pin) return gpio_get(P33_13);
else if (SPI2_CS7_P20_10 == cs_pin) return gpio_get(P20_10);
else if (SPI2_CS8_P20_6 == cs_pin) return gpio_get(P20_6);
else if (SPI2_CS9_P20_3 == cs_pin) return gpio_get(P20_3);
else if (SPI3_CS0_P02_4 == cs_pin) return gpio_get(P02_4);
else if (SPI3_CS1_P02_0 == cs_pin) return gpio_get(P02_0);
else if (SPI3_CS1_P33_9 == cs_pin) return gpio_get(P33_9);
else if (SPI3_CS2_P02_1 == cs_pin) return gpio_get(P02_1);
else if (SPI3_CS2_P33_8 == cs_pin) return gpio_get(P33_8);
else if (SPI3_CS3_P02_2 == cs_pin) return gpio_get(P02_2);
else if (SPI3_CS4_P02_3 == cs_pin) return gpio_get(P02_3);
else if (SPI3_CS4_P23_5 == cs_pin) return gpio_get(P23_5);
else if (SPI3_CS5_P02_8 == cs_pin) return gpio_get(P02_8);
else if (SPI3_CS6_P00_8 == cs_pin) return gpio_get(P00_8);
else if (SPI3_CS7_P00_9 == cs_pin) return gpio_get(P00_9);
else if (SPI3_CS7_P33_7 == cs_pin) return gpio_get(P33_7);
else if (SPI3_CS8_P10_5 == cs_pin) return gpio_get(P10_5);
else if (SPI3_CS11_P33_10 == cs_pin) return gpio_get(P33_10);
else if (SPI3_CS12_P22_2 == cs_pin) return gpio_get(P22_2);
else if (SPI3_CS13_P23_1 == cs_pin) return gpio_get(P23_1);
else
{
ZF_ASSERT(FALSE);
return 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>CS<43><53><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>
}
}
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
@@ -335,6 +390,7 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
while(moudle->STATUS.B.RXFIFOLEVEL == 0); while(moudle->STATUS.B.RXFIFOLEVEL == 0);
*midata = (uint8)IfxQspi_readReceiveFifo(moudle); *midata = (uint8)IfxQspi_readReceiveFifo(moudle);
} }
while(!get_spi_cs_pin(cs_pin));
} }

View File

@@ -264,7 +264,7 @@ void lcd_init(void)
lcd_writeData(0x05); lcd_writeData(0x05);
lcd_writeIndex(0x29); lcd_writeIndex(0x29);
lcd_clear(WHITE);//ȫ<><C8AB> lcd_clear(RGB565_WHITE);//ȫ<><C8AB>
} }
@@ -550,7 +550,7 @@ void showimage(const unsigned char *p)
{ {
int i,j,k; int i,j,k;
unsigned char picH,picL; unsigned char picH,picL;
lcd_clear(WHITE); //<2F><><EFBFBD><EFBFBD> lcd_clear(RGB565_WHITE); //<2F><><EFBFBD><EFBFBD>
for(k=0;k<4;k++) for(k=0;k<4;k++)
{ {
@@ -716,8 +716,8 @@ void lcd_displayimage7725(uint8 *p, uint16 width, uint16 height)
p++; p++;
for(j=0; j<8; j++) for(j=0; j<8; j++)
{ {
if( (temp<<j)&0x80 ) lcd_writedata_16bit(WHITE); if( (temp<<j)&0x80 ) lcd_writedata_16bit(RGB565_WHITE);
else lcd_writedata_16bit(BLACK); else lcd_writedata_16bit(RGB565_BLACK);
} }
} }
} }

View File

@@ -78,10 +78,10 @@
//<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ
#define TFT_PENCOLOR RED #define TFT_PENCOLOR RGB565_RED
//<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ
#define TFT_BGCOLOR WHITE #define TFT_BGCOLOR RGB565_WHITE

View File

@@ -26,16 +26,16 @@
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ---------- //-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ----------
#define RED 0xF800 //<2F><>ɫ #define RGB565_RED 0xF800 //<2F><>ɫ
#define BLUE 0x001F //<2F><>ɫ #define RGB565_BLUE 0x001F //<2F><>ɫ
#define YELLOW 0xFFE0 //<2F><>ɫ #define RGB565_YELLOW 0xFFE0 //<2F><>ɫ
#define GREEN 0x07E0 //<2F><>ɫ #define RGB565_GREEN 0x07E0 //<2F><>ɫ
#define WHITE 0xFFFF //<2F><>ɫ #define RGB565_WHITE 0xFFFF //<2F><>ɫ
#define BLACK 0x0000 //<2F><>ɫ #define RGB565_BLACK 0x0000 //<2F><>ɫ
#define GRAY 0X8430 //<2F><>ɫ #define RGB565_GRAY 0X8430 //<2F><>ɫ
#define BROWN 0XBC40 //<2F><>ɫ #define RGB565_BROWN 0XBC40 //<2F><>ɫ
#define PURPLE 0XF81F //<2F><>ɫ #define RGB565_PURPLE 0XF81F //<2F><>ɫ
#define PINK 0XFE19 //<2F><>ɫ #define RGB565_PINK 0XFE19 //<2F><>ɫ
extern const uint8 tft_ascii[95][16]; extern const uint8 tft_ascii[95][16];

View File

@@ -726,8 +726,8 @@ void ips114_displayimage7725(uint8 *p, uint16 width, uint16 height)
p++; p++;
for(j=0; j<8; j++) for(j=0; j<8; j++)
{ {
if( (temp<<j)&0x80 ) ips114_writedata_16bit(WHITE); if( (temp<<j)&0x80 ) ips114_writedata_16bit(RGB565_WHITE);
else ips114_writedata_16bit(BLACK); else ips114_writedata_16bit(RGB565_BLACK);
} }
} }
} }

View File

@@ -77,10 +77,10 @@
//<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ
#define IPS114_PENCOLOR RED #define IPS114_PENCOLOR RGB565_RED
//<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ
#define IPS114_BGCOLOR WHITE #define IPS114_BGCOLOR RGB565_WHITE

View File

@@ -11,56 +11,50 @@
* @company * @company
* @author (QQ3184284598) * @author (QQ3184284598)
* @version doc内version文件 * @version doc内version文件
* @Software ADS v1.2.2 * @Software ADS v1.5.2
* @Target core TC264D * @Target core TC264
* @Taobao https://seekfree.taobao.com/ * @Taobao https://seekfree.taobao.com/
* @date 2020-3-23 * @date 2022-05-07
* @note * @note
线 线
------------------------------------ ------------------------------------------------------------------------
*
D0 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D0_PIN * // 双排排针 并口两寸屏 硬件引脚
D1 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D1_PIN * RD SEEKFREE_IPS200.h IPS200_RD_PIN_PARALLEL8
D2 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D2_PIN * WR SEEKFREE_IPS200.h IPS200_WR_PIN_PARALLEL8
D3 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D3_PIN * RS SEEKFREE_IPS200.h IPS200_RS_PIN_PARALLEL8
D4 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D4_PIN * RST SEEKFREE_IPS200.h IPS200_RST_PIN_PARALLEL8
D5 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D5_PIN * CS SEEKFREE_IPS200.h IPS200_CS_PIN_PARALLEL8
D6 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D6_PIN * BL SEEKFREE_IPS200.h IPS200_BL_PIN_PARALLEL8
D7 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D7_PIN * D0-D7 SEEKFREE_IPS200.h IPS200_Dx_PIN_PARALLEL8
* VCC 3.3V电源
BL SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_BL_PIN * GND
CS SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_CS_PIN * // 单排排针 SPI 两寸屏 硬件引脚
RD SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_RD_PIN * SCL SEEKFREE_IPS200.h IPS200_SCL_PIN_SPI
WR SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_WR_PIN * SDA SEEKFREE_IPS200.h IPS200_SDA_PIN_SPI
RS SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_RS_PIN * RST SEEKFREE_IPS200.h IPS200_RST_PIN_SPI
RST SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_RST_PIN * DC SEEKFREE_IPS200.h IPS200_DC_PIN_SPI
* CS SEEKFREE_IPS200.h IPS200_CS_PIN_SPI
* BL SEEKFREE_IPS200.h IPS200_BL_PIN_SPI
VCC 3.3V电源 * VCC 3.3V电源
GND * GND
240*320 * 320 * 240
------------------------------------ * ------------------------------------------------------------------------
********************************************************************************************************************/ ********************************************************************************************************************/
#include "stdlib.h" #include "SEEKFREE_IPS200.h"
#include "string.h"
#include "stdio.h"
#include "zf_stm_systick.h"
#include "zf_gpio.h"
#include "zf_assert.h"
#include "SEEKFREE_PRINTF.h"
#include "SEEKFREE_IPS200_PARALLEL8.h"
static ips200_type_enum ips200_display_type = IPS200_TYPE_SPI;
static PIN_enum ips_rst_pin = IPS200_RST_PIN_SPI;
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心 // @brief 内部调用,用户无需关心
// @param void // @param dat 数据
// @return // @return
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
void ips200_w_data(uint8 dat) //写数据 void ips200_w_data(uint8 dat) //写数据
{ {
IPS200_DATAPORT1 = (dat << DATA_START_NUM1) | (IPS200_DATAPORT1 & ~((uint32)(0x0F << DATA_START_NUM1)) ); IPS200_DATAPORT1 = (dat << DATA_START_NUM1) | (IPS200_DATAPORT1 & ~((uint32)(0x0F << DATA_START_NUM1)) );
IPS200_DATAPORT2 = ((dat>>4) << DATA_START_NUM2) | (IPS200_DATAPORT2 & ~((uint32)(0x0F << DATA_START_NUM2)) ); IPS200_DATAPORT2 = ((dat>>4) << DATA_START_NUM2) | (IPS200_DATAPORT2 & ~((uint32)(0x0F << DATA_START_NUM2)) );
@@ -69,67 +63,94 @@ void ips200_w_data(uint8 dat) //д
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心 // @brief 内部调用,用户无需关心
// @param void // @param command 命令
// @return // @return
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
void ips200_wr_reg(uint8 command) //写命令 void ips200_wr_reg(uint8 command) //写命令
{ {
IPS200_CS(0); if(IPS200_TYPE_SPI == ips200_display_type)
IPS200_RS(0); {
IPS200_RD(1); IPS200_DC(0);
IPS200_WR(0); spi_mosi(IPS200_SPIN,IPS200_CS_PIN_SPI,&command,NULL,1,1);
ips200_w_data(command); IPS200_DC(1);
IPS200_WR(1); }
IPS200_CS(1); else
{
IPS200_CS(0);
IPS200_RS(0);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(command);
IPS200_WR(1);
IPS200_CS(1);
}
} }
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心 // @brief 内部调用,用户无需关心
// @param void // @param dat 8位数据
// @return // @return
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
void ips200_wr_data(uint8 dat) //向液晶屏写一个8位数据 void ips200_wr_data(uint8 dat) //向液晶屏写一个8位数据
{ {
IPS200_CS(0); if(IPS200_TYPE_SPI == ips200_display_type)
IPS200_RS(1); {
IPS200_RD(1); spi_mosi(IPS200_SPIN,IPS200_CS_PIN_SPI,&dat,NULL,1,1);
IPS200_WR(0); }
ips200_w_data(dat); else
IPS200_WR(1); {
IPS200_CS(1); IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(dat);
IPS200_WR(1);
IPS200_CS(1);
}
} }
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心 // @brief 内部调用,用户无需关心
// @param void // @param dat 16位数据
// @return // @return
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
void ips200_wr_data16(uint16 dat) //向液晶屏写一个16位数据 void ips200_wr_data16(uint16 dat) //向液晶屏写一个16位数据
{ {
IPS200_CS(0); if(IPS200_TYPE_SPI == ips200_display_type)
IPS200_RS(1); {
IPS200_RD(1); uint8 dat1[2];
IPS200_WR(0); dat1[0] = dat >> 8;
ips200_w_data((uint8)(dat>>8)); dat1[1] = (uint8)dat;
IPS200_WR(1); spi_mosi(IPS200_SPIN,IPS200_CS_PIN_SPI,dat1,NULL,2,1);
IPS200_WR(0); }
ips200_w_data((uint8)(dat)); else
IPS200_WR(1); {
IPS200_CS(1); IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat>>8));
IPS200_WR(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat));
IPS200_WR(1);
IPS200_CS(1);
}
} }
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心 // @brief 内部调用,用户无需关心
// @param void // @param com 命令
// @param dat 数据
// @return // @return
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
@@ -143,8 +164,11 @@ void ips200_w_reg(uint8 com,uint8 dat) //д
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心 // @brief 设置显示区域 内部调用
// @param void // @param x1 起始x轴坐标
// @param y1 起始y轴坐标
// @param x2 结束x轴坐标
// @param y2 结束y轴坐标
// @return // @return
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
@@ -165,28 +189,42 @@ void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2)
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 2.0寸 IPS液晶初始化 // @brief 2.0寸 IPS液晶初始化
// @return void // @return type_select 并口或者串口选择
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
void ips200_init(void) void ips200_init(ips200_type_enum type_select)
{ {
gpio_init(IPS200_D0_PIN, GPO, 0, PUSHPULL); if(IPS200_TYPE_SPI == type_select)
gpio_init(IPS200_D1_PIN, GPO, 0, PUSHPULL); {
gpio_init(IPS200_D2_PIN, GPO, 0, PUSHPULL); ips200_display_type = IPS200_TYPE_SPI;
gpio_init(IPS200_D3_PIN, GPO, 0, PUSHPULL); ips_rst_pin = IPS200_RST_PIN_SPI;
gpio_init(IPS200_D4_PIN, GPO, 0, PUSHPULL); spi_init(IPS200_SPIN, IPS200_SCL_PIN_SPI, IPS200_SDA_PIN_SPI, IPS200_SDA_IN_PIN_SPI, IPS200_CS_PIN_SPI, 0, 30*1000*1000);//硬件SPI初始化
gpio_init(IPS200_D5_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D6_PIN, GPO, 0, PUSHPULL); gpio_init(IPS200_BL_PIN_SPI,GPO,1,PUSHPULL);
gpio_init(IPS200_D7_PIN, GPO, 0, PUSHPULL); gpio_init(IPS200_DC_PIN_SPI,GPO,0,PUSHPULL);
gpio_init(ips_rst_pin,GPO,0,PUSHPULL);
gpio_init(IPS200_BL_PIN, GPO, 0, PUSHPULL); }
gpio_init(IPS200_CS_PIN, GPO, 0, PUSHPULL); else
gpio_init(IPS200_RST_PIN, GPO, 0, PUSHPULL); {
gpio_init(IPS200_RS_PIN, GPO, 0, PUSHPULL); ips200_display_type = IPS200_TYPE_PARALLEL8;
gpio_init(IPS200_WR_PIN, GPO, 0, PUSHPULL); ips_rst_pin = IPS200_RST_PIN_PARALLEL8;
gpio_init(IPS200_RD_PIN, GPO, 0, PUSHPULL); gpio_init(IPS200_D0_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D1_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D2_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D3_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D4_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D5_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D6_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D7_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_BL_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_CS_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(ips_rst_pin, GPO, 0, PUSHPULL);
gpio_init(IPS200_RS_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_WR_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_RD_PIN_PARALLEL8, GPO, 0, PUSHPULL);
}
IPS200_BL(1); IPS200_BL(1);
IPS200_RST(0); IPS200_RST(0);
systick_delay_ms(STM0, 5); systick_delay_ms(STM0, 5);
@@ -203,9 +241,6 @@ void ips200_init(void)
else ips200_wr_data(0xA0); else ips200_wr_data(0xA0);
ips200_wr_reg(0x3A); ips200_wr_reg(0x3A);
ips200_wr_data(0x05); ips200_wr_data(0x05);
@@ -276,7 +311,7 @@ void ips200_init(void)
ips200_wr_reg(0x21); ips200_wr_reg(0x21);
ips200_wr_reg(0x29); ips200_wr_reg(0x29);
ips200_clear(IPS200_BGCOLOR); //初始化为白屏 ips200_clear(IPS200_BGCOLOR); //初始化为白屏
} }
@@ -844,8 +879,8 @@ void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height)
p++; p++;
for(j=0; j<8; j++) for(j=0; j<8; j++)
{ {
if( (temp<<j)&0x80 ) ips200_wr_data16(WHITE); if( (temp<<j)&0x80 ) ips200_wr_data16(RGB565_WHITE);
else ips200_wr_data16(BLACK); else ips200_wr_data16(RGB565_BLACK);
} }
} }
} }

View File

@@ -0,0 +1,199 @@
/*/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2020,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>824575535
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file 2.0<EFBFBD><EFBFBD>IPS<EFBFBD><EFBFBD>Ļ
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software ADS v1.5.2
* @Target core TC264
* @Taobao https://seekfree.taobao.com/
* @date 2020-05-07
* @note
<20><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------
* ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
* // ˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* RD <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RD_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* WR <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_WR_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* RS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RS_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* RST <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RST_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* CS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_CS_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* BL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_BL_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* D0-D7 <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_Dx_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* SCL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_SCL_PIN_SPI <20><EFBFBD><EAB6A8>
* SDA <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_SDA_PIN_SPI <20><EFBFBD><EAB6A8>
* RST <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RST_PIN_SPI <20><EFBFBD><EAB6A8>
* DC <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_DC_PIN_SPI <20><EFBFBD><EAB6A8>
* CS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_CS_PIN_SPI <20><EFBFBD><EAB6A8>
* BL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_BL_PIN_SPI <20><EFBFBD><EAB6A8>
* <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
* VCC 3.3V<EFBFBD><EFBFBD>Դ
* GND <20><>Դ<EFBFBD><D4B4>
* <20><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD> 320 * 240
* ------------------------------------
********************************************************************************************************************/
#ifndef _SEEKFREE_IPS200_H
#define _SEEKFREE_IPS200_H
#include "common.h"
#include "stdlib.h"
#include "string.h"
#include "stdio.h"
#include "zf_stm_systick.h"
#include "zf_gpio.h"
#include "zf_assert.h"
#include "SEEKFREE_PRINTF.h"
#include "zf_spi.h"
#include "SEEKFREE_FUN.h"
#include "SEEKFREE_FONT.h"
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>SEEKFREE_FONT.h<>ļ<EFBFBD><C4BC>ж<EFBFBD><D0B6><EFBFBD>----------
//#define RED 0xF800 //<2F><>ɫ
//#define BLUE 0x001F //<2F><>ɫ
//#define YELLOW 0xFFE0 //<2F><>ɫ
//#define GREEN 0x07E0 //<2F><>ɫ
//#define WHITE 0xFFFF //<2F><>ɫ
//#define BLACK 0x0000 //<2F><>ɫ
//#define GRAY 0X8430 //<2F><>ɫ
//#define BROWN 0XBC40 //<2F><>ɫ
//#define PURPLE 0XF81F //<2F><>ɫ
//#define PINK 0XFE19 //<2F><>ɫ
#define IPS200_BGCOLOR RGB565_WHITE //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
#define IPS200_PENCOLOR RGB565_RED //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
// <20><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
#define IPS200_SPIN SPI_2 //<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD>SPI<50><49>
#define IPS200_SCL_PIN_SPI SPI2_SCLK_P15_3 //<2F><><EFBFBD><EFBFBD>SPI_SCK<43><4B><EFBFBD><EFBFBD>
#define IPS200_SDA_PIN_SPI SPI2_MOSI_P15_5 //<2F><><EFBFBD><EFBFBD>SPI_MOSI<53><49><EFBFBD><EFBFBD>
#define IPS200_SDA_IN_PIN_SPI SPI2_MISO_P15_4 //<2F><><EFBFBD><EFBFBD>SPI_MISO<53><4F><EFBFBD><EFBFBD> IPSû<53><C3BB>MISO<53><4F><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><E5A3AC>spi<70>ij<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1>Ҫʹ<D2AA><CAB9>
#define IPS200_CS_PIN_SPI SPI2_CS0_P15_2 //<2F><><EFBFBD><EFBFBD>SPI_CS<43><53><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
#define IPS200_RST_PIN_SPI P15_1 // Һ<><D2BA><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD>
#define IPS200_DC_PIN_SPI P15_0
#define IPS200_BL_PIN_SPI P15_4
//<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
//<2F><><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ѡ<EFBFBD><D1A1>B C D<><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><CBBF>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
#define IPS200_RD_PIN_PARALLEL8 P15_3
#define IPS200_WR_PIN_PARALLEL8 P15_5
#define IPS200_RS_PIN_PARALLEL8 P15_1
#define IPS200_RST_PIN_PARALLEL8 P15_0
#define IPS200_CS_PIN_PARALLEL8 P15_2
#define IPS200_BL_PIN_PARALLEL8 P15_4
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õõ<C3B5>
//D0-D3<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>C0-C3,C1-C4<43>ȵȣ<C8B5>
//D4-D7<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>B0-B3,B1-B4<42>ȵȡ<C8B5>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>ͬ<EFBFBD>˿ڵ<CBBF><DAB5><EFBFBD>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>D0-D3<44><33>C1-C4<43><34><EFBFBD>ӣ<EFBFBD>D4-D7<44><37>B2-B5<42><35><EFBFBD>ӡ<EFBFBD>
//<2F>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD>ע<EFBFBD><D7A2><EFBFBD>޸<EFBFBD>IPS200_DATA_PORT1<54><31>IPS200_DATA_PORT2<54><EFBFBD><EAB6A8>
#define IPS200_D0_PIN_PARALLEL8 P11_9
#define IPS200_D1_PIN_PARALLEL8 P11_10
#define IPS200_D2_PIN_PARALLEL8 P11_11
#define IPS200_D3_PIN_PARALLEL8 P11_12
#define IPS200_D4_PIN_PARALLEL8 P13_0
#define IPS200_D5_PIN_PARALLEL8 P13_1
#define IPS200_D6_PIN_PARALLEL8 P13_2
#define IPS200_D7_PIN_PARALLEL8 P13_3
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ˿<DDB6><CBBF><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>и<EFBFBD><D0B8><EFBFBD>
#define IPS200_DATA_PORT1 3 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT1 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT1].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM1 (IPS200_D0_PIN_PARALLEL8&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_DATA_PORT2 4 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT2 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT2].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM2 (IPS200_D4_PIN_PARALLEL8&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_BL(x) gpio_set(IPS200_BL_PIN_PARALLEL8,x)
#define IPS200_CS(x) gpio_set(IPS200_CS_PIN_PARALLEL8,x)
#define IPS200_RD(x) gpio_set(IPS200_RD_PIN_PARALLEL8,x)
#define IPS200_WR(x) gpio_set(IPS200_WR_PIN_PARALLEL8,x)
#define IPS200_RS(x) gpio_set(IPS200_RS_PIN_PARALLEL8,x)
#define IPS200_RST(x) gpio_set(ips_rst_pin,x)
#define IPS200_DC(x) gpio_set(IPS200_DC_PIN_SPI,x)
#define IPS200_W 240
#define IPS200_H 320
typedef enum
{
IPS200_TYPE_SPI, // SPI <20><><EFBFBD><EFBFBD>
IPS200_TYPE_PARALLEL8, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}ips200_type_enum;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
//0 <20><><EFBFBD><EFBFBD>ģʽ
//1 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
//2 <20><><EFBFBD><EFBFBD>ģʽ
//3 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
#define IPS200_DISPLAY_DIR 0
#if (0==IPS200_DISPLAY_DIR || 1==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_W //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_H //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#elif (2==IPS200_DISPLAY_DIR || 3==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_H //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_W //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#else
#error "IPS200_DISPLAY_DIR <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#endif
void ips200_init(ips200_type_enum type_select); //<2F><>ʼ<EFBFBD><CABC>Ӳ<EFBFBD><D3B2>
void ips200_w_data(uint8 dat);
void ips200_wr_reg(uint8 com);
void ips200_wr_data(uint8 dat);
void ips200_wr_data16(uint16 dat);
void ips200_w_reg(uint8 com,uint8 dat);
void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2);
void ips200_clear(uint16 color);
void ips200_drawpoint(uint16 x,uint16 y,uint16 color);
void ips200_showchar(uint16 x,uint16 y,const int8 dat);
void ips200_showstr(uint16 x,uint16 y,const int8 dat[]);
void ips200_showint8(uint16 x,uint16 y,int8 dat);
void ips200_showuint8(uint16 x,uint16 y,uint8 dat);
void ips200_showint16(uint16 x,uint16 y,int16 dat);
void ips200_showuint16(uint16 x,uint16 y,uint16 dat);
void ips200_showint32(uint16 x,uint16 y,int dat,uint8 num);
void ips200_showfloat(uint16 x,uint16 y,double dat,int8 num,int8 pointnum);
void ips200_showimage(uint16 x,uint16 y,uint16 w,uint16 l,const unsigned char *p);
void ips200_displayimage032(uint8 *p, uint16 width, uint16 height);
void ips200_displayimage032_zoom(uint8 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage032_zoom1(uint8 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom1(uint16 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_grayscale_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height);
void ips200_display_chinese(uint16 x, uint16 y, uint8 size, const uint8 *p, uint8 number, uint16 color);
#endif

View File

@@ -1,180 +0,0 @@
/*/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2020,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>824575535
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file 2.0<EFBFBD><EFBFBD>IPS<EFBFBD><EFBFBD>Ļ
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software ADS v1.2.2
* @Target core TC264D
* @Taobao https://seekfree.taobao.com/
* @date 2020-3-23
* @note
<09><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------
ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <09><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
D0 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D0_PIN <20><EFBFBD><EAB6A8>
D1 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D1_PIN <20><EFBFBD><EAB6A8>
D2 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D2_PIN <20><EFBFBD><EAB6A8>
D3 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D3_PIN <20><EFBFBD><EAB6A8>
D4 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D4_PIN <20><EFBFBD><EAB6A8>
D5 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D5_PIN <20><EFBFBD><EAB6A8>
D6 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D6_PIN <20><EFBFBD><EAB6A8>
D7 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D7_PIN <20><EFBFBD><EAB6A8>
BL <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_BL_PIN <20><EFBFBD><EAB6A8>
CS <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_CS_PIN <20><EFBFBD><EAB6A8>
RD <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RD_PIN <20><EFBFBD><EAB6A8>
WR <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_WR_PIN <20><EFBFBD><EAB6A8>
RS <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RS_PIN <20><EFBFBD><EAB6A8>
RST <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RST_PIN <20><EFBFBD><EAB6A8>
<09><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
VCC 3.3V<EFBFBD><EFBFBD>Դ
GND <20><>Դ<EFBFBD><D4B4>
<09><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>240*320
------------------------------------
********************************************************************************************************************/
#ifndef _SEEKFREE_IPS200PARALLEL8_H
#define _SEEKFREE_IPS200PARALLEL8_H
#include "common.h"
#include "SEEKFREE_FONT.h"
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>SEEKFREE_FONT.h<>ļ<EFBFBD><C4BC>ж<EFBFBD><D0B6><EFBFBD>----------
//#define RED 0xF800 //<2F><>ɫ
//#define BLUE 0x001F //<2F><>ɫ
//#define YELLOW 0xFFE0 //<2F><>ɫ
//#define GREEN 0x07E0 //<2F><>ɫ
//#define WHITE 0xFFFF //<2F><>ɫ
//#define BLACK 0x0000 //<2F><>ɫ
//#define GRAY 0X8430 //<2F><>ɫ
//#define BROWN 0XBC40 //<2F><>ɫ
//#define PURPLE 0XF81F //<2F><>ɫ
//#define PINK 0XFE19 //<2F><>ɫ
#define IPS200_BGCOLOR WHITE //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
#define IPS200_PENCOLOR RED //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
//<2F><><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ѡ<EFBFBD><D1A1>B C D<><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><CBBF>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
#define IPS200_RD_PIN P15_3
#define IPS200_WR_PIN P15_5
#define IPS200_RS_PIN P15_1
#define IPS200_RST_PIN P15_0
#define IPS200_CS_PIN P15_2
#define IPS200_BL_PIN P15_4
//D0-D3<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>C0-C3,C1-C4<43>ȵȣ<C8B5>
//D4-D7<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>B0-B3,B1-B4<42>ȵȡ<C8B5>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>ͬ<EFBFBD>˿ڵ<CBBF><DAB5><EFBFBD>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>D0-D3<44><33>C1-C4<43><34><EFBFBD>ӣ<EFBFBD>D4-D7<44><37>B2-B5<42><35><EFBFBD>ӡ<EFBFBD>
//<2F>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD>ע<EFBFBD><D7A2><EFBFBD>޸<EFBFBD>IPS200_DATA_PORT1<54><31>IPS200_DATA_PORT2<54><EFBFBD><EAB6A8>
#define IPS200_D0_PIN P11_9
#define IPS200_D1_PIN P11_10
#define IPS200_D2_PIN P11_11
#define IPS200_D3_PIN P11_12
#define IPS200_D4_PIN P13_0
#define IPS200_D5_PIN P13_1
#define IPS200_D6_PIN P13_2
#define IPS200_D7_PIN P13_3
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ˿<DDB6><CBBF><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>и<EFBFBD><D0B8><EFBFBD>
#define IPS200_DATA_PORT1 3 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT1 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT1].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM1 (IPS200_D0_PIN&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_DATA_PORT2 4 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT2 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT2].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM2 (IPS200_D4_PIN&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_BL(x) gpio_set(IPS200_BL_PIN,x)
#define IPS200_CS(x) gpio_set(IPS200_CS_PIN,x)
#define IPS200_RD(x) gpio_set(IPS200_RD_PIN,x)
#define IPS200_WR(x) gpio_set(IPS200_WR_PIN,x)
#define IPS200_RS(x) gpio_set(IPS200_RS_PIN,x)
#define IPS200_RST(x) gpio_set(IPS200_RST_PIN,x)
#define IPS200_W 240
#define IPS200_H 320
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
//0 <20><><EFBFBD><EFBFBD>ģʽ
//1 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
//2 <20><><EFBFBD><EFBFBD>ģʽ
//3 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
#define IPS200_DISPLAY_DIR 0
#if (0==IPS200_DISPLAY_DIR || 1==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_W //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_H //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#elif (2==IPS200_DISPLAY_DIR || 3==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_H //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_W //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#else
#error "IPS200_DISPLAY_DIR <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#endif
void ips200_init(void); //<2F><>ʼ<EFBFBD><CABC>Ӳ<EFBFBD><D3B2>
void ips200_w_data(uint8 dat);
void ips200_wr_reg(uint8 com);
void ips200_wr_data(uint8 dat);
void ips200_wr_data16(uint16 dat);
void ips200_w_reg(uint8 com,uint8 dat);
void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2);
void ips200_clear(uint16 color);
void ips200_drawpoint(uint16 x,uint16 y,uint16 color);
void ips200_showchar(uint16 x,uint16 y,const int8 dat);
void ips200_showstr(uint16 x,uint16 y,const int8 dat[]);
void ips200_showint8(uint16 x,uint16 y,int8 dat);
void ips200_showuint8(uint16 x,uint16 y,uint8 dat);
void ips200_showint16(uint16 x,uint16 y,int16 dat);
void ips200_showuint16(uint16 x,uint16 y,uint16 dat);
void ips200_showint32(uint16 x,uint16 y,int dat,uint8 num);
void ips200_showfloat(uint16 x,uint16 y,double dat,int8 num,int8 pointnum);
void ips200_showimage(uint16 x,uint16 y,uint16 w,uint16 l,const unsigned char *p);
void ips200_displayimage032(uint8 *p, uint16 width, uint16 height);
void ips200_displayimage032_zoom(uint8 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage032_zoom1(uint8 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom1(uint16 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_grayscale_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height);
void ips200_display_chinese(uint16 x, uint16 y, uint8 size, const uint8 *p, uint8 number, uint16 color);
#endif

View File

@@ -1,3 +1,5 @@
V1.2.9
ɾ<><C9BE>SEEKFREE_IPS200_PARALLEL8<4C>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SEEKFREE_IPS200<30><30><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD>е<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
V1.2.8 V1.2.8
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD><EFBFBD>PCLK_MODE<44><45>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>λ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD><EFBFBD>PCLK_MODE<44><45>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>λ

View File

@@ -61,7 +61,7 @@
#include "SEEKFREE_MMA8451.h" #include "SEEKFREE_MMA8451.h"
#include "SEEKFREE_L3G4200D.h" #include "SEEKFREE_L3G4200D.h"
#include "SEEKFREE_WIRELESS.h" #include "SEEKFREE_WIRELESS.h"
#include "SEEKFREE_IPS200_PARALLEL8.h" #include "SEEKFREE_IPS200.h"
#include "SEEKFREE_7725.h" #include "SEEKFREE_7725.h"
#include "SEEKFREE_RDA5807.h" #include "SEEKFREE_RDA5807.h"
#include "SEEKFREE_7725_UART.h" #include "SEEKFREE_7725_UART.h"

View File

@@ -24,7 +24,7 @@
#include "IfxQspi.h" #include "IfxQspi.h"
#include "zf_assert.h" #include "zf_assert.h"
#include "zf_spi.h" #include "zf_spi.h"
#include "zf_gpio.h"
#define MAX_BAUD 50000000 #define MAX_BAUD 50000000
@@ -183,7 +183,62 @@ void spi_mux(SPIN_enum spi_n, SPI_PIN_enum sck_pin, SPI_PIN_enum mosi_pin, SPI_P
} }
uint8 get_spi_cs_pin(SPI_PIN_enum cs_pin)
{
if (SPI0_CS0_P20_8 == cs_pin) return gpio_get(P20_8);
else if (SPI0_CS1_P20_9 == cs_pin) return gpio_get(P20_9);
else if (SPI0_CS2_P20_13 == cs_pin) return gpio_get(P20_13);
else if (SPI0_CS3_P11_10 == cs_pin) return gpio_get(P11_10);
else if (SPI0_CS4_P11_11 == cs_pin) return gpio_get(P11_11);
else if (SPI0_CS5_P11_2 == cs_pin) return gpio_get(P11_2);
else if (SPI0_CS6_P20_10 == cs_pin) return gpio_get(P20_10);
else if (SPI0_CS7_P33_5 == cs_pin) return gpio_get(P33_5);
else if (SPI0_CS8_P20_6 == cs_pin) return gpio_get(P20_6);
else if (SPI0_CS9_P20_3 == cs_pin) return gpio_get(P20_3);
else if (SPI0_CS13_P15_0 == cs_pin) return gpio_get(P15_0);
else if (SPI1_CS0_P20_8 == cs_pin) return gpio_get(P20_8);
else if (SPI1_CS1_P20_9 == cs_pin) return gpio_get(P20_9);
else if (SPI1_CS2_P20_13 == cs_pin) return gpio_get(P20_13);
else if (SPI1_CS3_P11_10 == cs_pin) return gpio_get(P11_10);
else if (SPI1_CS4_P11_11 == cs_pin) return gpio_get(P11_11);
else if (SPI1_CS5_P11_2 == cs_pin) return gpio_get(P11_2);
else if (SPI1_CS6_P33_10 == cs_pin) return gpio_get(P33_10);
else if (SPI1_CS7_P33_5 == cs_pin) return gpio_get(P33_5);
else if (SPI1_CS8_P10_4 == cs_pin) return gpio_get(P10_4);
else if (SPI1_CS9_P10_5 == cs_pin) return gpio_get(P10_5);
else if (SPI1_CS10_P10_0 == cs_pin) return gpio_get(P10_0);
else if (SPI2_CS0_P15_2 == cs_pin) return gpio_get(P15_2);
else if (SPI2_CS1_P14_2 == cs_pin) return gpio_get(P14_2);
else if (SPI2_CS2_P14_6 == cs_pin) return gpio_get(P14_6);
else if (SPI2_CS3_P14_3 == cs_pin) return gpio_get(P14_3);
else if (SPI2_CS5_P15_1 == cs_pin) return gpio_get(P15_1);
else if (SPI2_CS6_P33_13 == cs_pin) return gpio_get(P33_13);
else if (SPI2_CS7_P20_10 == cs_pin) return gpio_get(P20_10);
else if (SPI2_CS8_P20_6 == cs_pin) return gpio_get(P20_6);
else if (SPI2_CS9_P20_3 == cs_pin) return gpio_get(P20_3);
else if (SPI3_CS0_P02_4 == cs_pin) return gpio_get(P02_4);
else if (SPI3_CS1_P02_0 == cs_pin) return gpio_get(P02_0);
else if (SPI3_CS1_P33_9 == cs_pin) return gpio_get(P33_9);
else if (SPI3_CS2_P02_1 == cs_pin) return gpio_get(P02_1);
else if (SPI3_CS2_P33_8 == cs_pin) return gpio_get(P33_8);
else if (SPI3_CS3_P02_2 == cs_pin) return gpio_get(P02_2);
else if (SPI3_CS4_P02_3 == cs_pin) return gpio_get(P02_3);
else if (SPI3_CS4_P23_5 == cs_pin) return gpio_get(P23_5);
else if (SPI3_CS5_P02_8 == cs_pin) return gpio_get(P02_8);
else if (SPI3_CS6_P00_8 == cs_pin) return gpio_get(P00_8);
else if (SPI3_CS7_P00_9 == cs_pin) return gpio_get(P00_9);
else if (SPI3_CS7_P33_7 == cs_pin) return gpio_get(P33_7);
else if (SPI3_CS8_P10_5 == cs_pin) return gpio_get(P10_5);
else if (SPI3_CS11_P33_10 == cs_pin) return gpio_get(P33_10);
else if (SPI3_CS12_P22_2 == cs_pin) return gpio_get(P22_2);
else if (SPI3_CS13_P23_1 == cs_pin) return gpio_get(P23_1);
else
{
ZF_ASSERT(FALSE);
return 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>CS<43><53><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>
}
}
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
@@ -335,6 +390,7 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
while(moudle->STATUS.B.RXFIFOLEVEL == 0); while(moudle->STATUS.B.RXFIFOLEVEL == 0);
*midata = (uint8)IfxQspi_readReceiveFifo(moudle); *midata = (uint8)IfxQspi_readReceiveFifo(moudle);
} }
while(!get_spi_cs_pin(cs_pin));
} }

View File

@@ -264,7 +264,7 @@ void lcd_init(void)
lcd_writeData(0x05); lcd_writeData(0x05);
lcd_writeIndex(0x29); lcd_writeIndex(0x29);
lcd_clear(WHITE);//ȫ<><C8AB> lcd_clear(RGB565_WHITE);//ȫ<><C8AB>
} }
@@ -550,7 +550,7 @@ void showimage(const unsigned char *p)
{ {
int i,j,k; int i,j,k;
unsigned char picH,picL; unsigned char picH,picL;
lcd_clear(WHITE); //<2F><><EFBFBD><EFBFBD> lcd_clear(RGB565_WHITE); //<2F><><EFBFBD><EFBFBD>
for(k=0;k<4;k++) for(k=0;k<4;k++)
{ {
@@ -716,8 +716,8 @@ void lcd_displayimage7725(uint8 *p, uint16 width, uint16 height)
p++; p++;
for(j=0; j<8; j++) for(j=0; j<8; j++)
{ {
if( (temp<<j)&0x80 ) lcd_writedata_16bit(WHITE); if( (temp<<j)&0x80 ) lcd_writedata_16bit(RGB565_WHITE);
else lcd_writedata_16bit(BLACK); else lcd_writedata_16bit(RGB565_BLACK);
} }
} }
} }

View File

@@ -78,10 +78,10 @@
//<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ
#define TFT_PENCOLOR RED #define TFT_PENCOLOR RGB565_RED
//<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ
#define TFT_BGCOLOR WHITE #define TFT_BGCOLOR RGB565_WHITE

View File

@@ -26,16 +26,16 @@
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ---------- //-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ----------
#define RED 0xF800 //<2F><>ɫ #define RGB565_RED 0xF800 //<2F><>ɫ
#define BLUE 0x001F //<2F><>ɫ #define RGB565_BLUE 0x001F //<2F><>ɫ
#define YELLOW 0xFFE0 //<2F><>ɫ #define RGB565_YELLOW 0xFFE0 //<2F><>ɫ
#define GREEN 0x07E0 //<2F><>ɫ #define RGB565_GREEN 0x07E0 //<2F><>ɫ
#define WHITE 0xFFFF //<2F><>ɫ #define RGB565_WHITE 0xFFFF //<2F><>ɫ
#define BLACK 0x0000 //<2F><>ɫ #define RGB565_BLACK 0x0000 //<2F><>ɫ
#define GRAY 0X8430 //<2F><>ɫ #define RGB565_GRAY 0X8430 //<2F><>ɫ
#define BROWN 0XBC40 //<2F><>ɫ #define RGB565_BROWN 0XBC40 //<2F><>ɫ
#define PURPLE 0XF81F //<2F><>ɫ #define RGB565_PURPLE 0XF81F //<2F><>ɫ
#define PINK 0XFE19 //<2F><>ɫ #define RGB565_PINK 0XFE19 //<2F><>ɫ
extern const uint8 tft_ascii[95][16]; extern const uint8 tft_ascii[95][16];

View File

@@ -726,8 +726,8 @@ void ips114_displayimage7725(uint8 *p, uint16 width, uint16 height)
p++; p++;
for(j=0; j<8; j++) for(j=0; j<8; j++)
{ {
if( (temp<<j)&0x80 ) ips114_writedata_16bit(WHITE); if( (temp<<j)&0x80 ) ips114_writedata_16bit(RGB565_WHITE);
else ips114_writedata_16bit(BLACK); else ips114_writedata_16bit(RGB565_BLACK);
} }
} }
} }

View File

@@ -77,10 +77,10 @@
//<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ
#define IPS114_PENCOLOR RED #define IPS114_PENCOLOR RGB565_RED
//<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ
#define IPS114_BGCOLOR WHITE #define IPS114_BGCOLOR RGB565_WHITE

View File

@@ -11,56 +11,50 @@
* @company * @company
* @author (QQ3184284598) * @author (QQ3184284598)
* @version doc内version文件 * @version doc内version文件
* @Software ADS v1.2.2 * @Software ADS v1.5.2
* @Target core TC264D * @Target core TC264
* @Taobao https://seekfree.taobao.com/ * @Taobao https://seekfree.taobao.com/
* @date 2020-3-23 * @date 2022-05-07
* @note * @note
线 线
------------------------------------ ------------------------------------------------------------------------
*
D0 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D0_PIN * // 双排排针 并口两寸屏 硬件引脚
D1 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D1_PIN * RD SEEKFREE_IPS200.h IPS200_RD_PIN_PARALLEL8
D2 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D2_PIN * WR SEEKFREE_IPS200.h IPS200_WR_PIN_PARALLEL8
D3 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D3_PIN * RS SEEKFREE_IPS200.h IPS200_RS_PIN_PARALLEL8
D4 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D4_PIN * RST SEEKFREE_IPS200.h IPS200_RST_PIN_PARALLEL8
D5 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D5_PIN * CS SEEKFREE_IPS200.h IPS200_CS_PIN_PARALLEL8
D6 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D6_PIN * BL SEEKFREE_IPS200.h IPS200_BL_PIN_PARALLEL8
D7 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D7_PIN * D0-D7 SEEKFREE_IPS200.h IPS200_Dx_PIN_PARALLEL8
* VCC 3.3V电源
BL SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_BL_PIN * GND
CS SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_CS_PIN * // 单排排针 SPI 两寸屏 硬件引脚
RD SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_RD_PIN * SCL SEEKFREE_IPS200.h IPS200_SCL_PIN_SPI
WR SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_WR_PIN * SDA SEEKFREE_IPS200.h IPS200_SDA_PIN_SPI
RS SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_RS_PIN * RST SEEKFREE_IPS200.h IPS200_RST_PIN_SPI
RST SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_RST_PIN * DC SEEKFREE_IPS200.h IPS200_DC_PIN_SPI
* CS SEEKFREE_IPS200.h IPS200_CS_PIN_SPI
* BL SEEKFREE_IPS200.h IPS200_BL_PIN_SPI
VCC 3.3V电源 * VCC 3.3V电源
GND * GND
240*320 * 320 * 240
------------------------------------ * ------------------------------------------------------------------------
********************************************************************************************************************/ ********************************************************************************************************************/
#include "stdlib.h" #include "SEEKFREE_IPS200.h"
#include "string.h"
#include "stdio.h"
#include "zf_stm_systick.h"
#include "zf_gpio.h"
#include "zf_assert.h"
#include "SEEKFREE_PRINTF.h"
#include "SEEKFREE_IPS200_PARALLEL8.h"
static ips200_type_enum ips200_display_type = IPS200_TYPE_SPI;
static PIN_enum ips_rst_pin = IPS200_RST_PIN_SPI;
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心 // @brief 内部调用,用户无需关心
// @param void // @param dat 数据
// @return // @return
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
void ips200_w_data(uint8 dat) //写数据 void ips200_w_data(uint8 dat) //写数据
{ {
IPS200_DATAPORT1 = (dat << DATA_START_NUM1) | (IPS200_DATAPORT1 & ~((uint32)(0x0F << DATA_START_NUM1)) ); IPS200_DATAPORT1 = (dat << DATA_START_NUM1) | (IPS200_DATAPORT1 & ~((uint32)(0x0F << DATA_START_NUM1)) );
IPS200_DATAPORT2 = ((dat>>4) << DATA_START_NUM2) | (IPS200_DATAPORT2 & ~((uint32)(0x0F << DATA_START_NUM2)) ); IPS200_DATAPORT2 = ((dat>>4) << DATA_START_NUM2) | (IPS200_DATAPORT2 & ~((uint32)(0x0F << DATA_START_NUM2)) );
@@ -69,67 +63,94 @@ void ips200_w_data(uint8 dat) //д
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心 // @brief 内部调用,用户无需关心
// @param void // @param command 命令
// @return // @return
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
void ips200_wr_reg(uint8 command) //写命令 void ips200_wr_reg(uint8 command) //写命令
{ {
IPS200_CS(0); if(IPS200_TYPE_SPI == ips200_display_type)
IPS200_RS(0); {
IPS200_RD(1); IPS200_DC(0);
IPS200_WR(0); spi_mosi(IPS200_SPIN,IPS200_CS_PIN_SPI,&command,NULL,1,1);
ips200_w_data(command); IPS200_DC(1);
IPS200_WR(1); }
IPS200_CS(1); else
{
IPS200_CS(0);
IPS200_RS(0);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(command);
IPS200_WR(1);
IPS200_CS(1);
}
} }
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心 // @brief 内部调用,用户无需关心
// @param void // @param dat 8位数据
// @return // @return
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
void ips200_wr_data(uint8 dat) //向液晶屏写一个8位数据 void ips200_wr_data(uint8 dat) //向液晶屏写一个8位数据
{ {
IPS200_CS(0); if(IPS200_TYPE_SPI == ips200_display_type)
IPS200_RS(1); {
IPS200_RD(1); spi_mosi(IPS200_SPIN,IPS200_CS_PIN_SPI,&dat,NULL,1,1);
IPS200_WR(0); }
ips200_w_data(dat); else
IPS200_WR(1); {
IPS200_CS(1); IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(dat);
IPS200_WR(1);
IPS200_CS(1);
}
} }
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心 // @brief 内部调用,用户无需关心
// @param void // @param dat 16位数据
// @return // @return
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
void ips200_wr_data16(uint16 dat) //向液晶屏写一个16位数据 void ips200_wr_data16(uint16 dat) //向液晶屏写一个16位数据
{ {
IPS200_CS(0); if(IPS200_TYPE_SPI == ips200_display_type)
IPS200_RS(1); {
IPS200_RD(1); uint8 dat1[2];
IPS200_WR(0); dat1[0] = dat >> 8;
ips200_w_data((uint8)(dat>>8)); dat1[1] = (uint8)dat;
IPS200_WR(1); spi_mosi(IPS200_SPIN,IPS200_CS_PIN_SPI,dat1,NULL,2,1);
IPS200_WR(0); }
ips200_w_data((uint8)(dat)); else
IPS200_WR(1); {
IPS200_CS(1); IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat>>8));
IPS200_WR(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat));
IPS200_WR(1);
IPS200_CS(1);
}
} }
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心 // @brief 内部调用,用户无需关心
// @param void // @param com 命令
// @param dat 数据
// @return // @return
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
@@ -143,8 +164,11 @@ void ips200_w_reg(uint8 com,uint8 dat) //д
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心 // @brief 设置显示区域 内部调用
// @param void // @param x1 起始x轴坐标
// @param y1 起始y轴坐标
// @param x2 结束x轴坐标
// @param y2 结束y轴坐标
// @return // @return
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
@@ -165,28 +189,42 @@ void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2)
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 2.0寸 IPS液晶初始化 // @brief 2.0寸 IPS液晶初始化
// @return void // @return type_select 并口或者串口选择
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
void ips200_init(void) void ips200_init(ips200_type_enum type_select)
{ {
gpio_init(IPS200_D0_PIN, GPO, 0, PUSHPULL); if(IPS200_TYPE_SPI == type_select)
gpio_init(IPS200_D1_PIN, GPO, 0, PUSHPULL); {
gpio_init(IPS200_D2_PIN, GPO, 0, PUSHPULL); ips200_display_type = IPS200_TYPE_SPI;
gpio_init(IPS200_D3_PIN, GPO, 0, PUSHPULL); ips_rst_pin = IPS200_RST_PIN_SPI;
gpio_init(IPS200_D4_PIN, GPO, 0, PUSHPULL); spi_init(IPS200_SPIN, IPS200_SCL_PIN_SPI, IPS200_SDA_PIN_SPI, IPS200_SDA_IN_PIN_SPI, IPS200_CS_PIN_SPI, 0, 30*1000*1000);//硬件SPI初始化
gpio_init(IPS200_D5_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D6_PIN, GPO, 0, PUSHPULL); gpio_init(IPS200_BL_PIN_SPI,GPO,1,PUSHPULL);
gpio_init(IPS200_D7_PIN, GPO, 0, PUSHPULL); gpio_init(IPS200_DC_PIN_SPI,GPO,0,PUSHPULL);
gpio_init(ips_rst_pin,GPO,0,PUSHPULL);
gpio_init(IPS200_BL_PIN, GPO, 0, PUSHPULL); }
gpio_init(IPS200_CS_PIN, GPO, 0, PUSHPULL); else
gpio_init(IPS200_RST_PIN, GPO, 0, PUSHPULL); {
gpio_init(IPS200_RS_PIN, GPO, 0, PUSHPULL); ips200_display_type = IPS200_TYPE_PARALLEL8;
gpio_init(IPS200_WR_PIN, GPO, 0, PUSHPULL); ips_rst_pin = IPS200_RST_PIN_PARALLEL8;
gpio_init(IPS200_RD_PIN, GPO, 0, PUSHPULL); gpio_init(IPS200_D0_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D1_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D2_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D3_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D4_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D5_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D6_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D7_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_BL_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_CS_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(ips_rst_pin, GPO, 0, PUSHPULL);
gpio_init(IPS200_RS_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_WR_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_RD_PIN_PARALLEL8, GPO, 0, PUSHPULL);
}
IPS200_BL(1); IPS200_BL(1);
IPS200_RST(0); IPS200_RST(0);
systick_delay_ms(STM0, 5); systick_delay_ms(STM0, 5);
@@ -203,9 +241,6 @@ void ips200_init(void)
else ips200_wr_data(0xA0); else ips200_wr_data(0xA0);
ips200_wr_reg(0x3A); ips200_wr_reg(0x3A);
ips200_wr_data(0x05); ips200_wr_data(0x05);
@@ -276,7 +311,7 @@ void ips200_init(void)
ips200_wr_reg(0x21); ips200_wr_reg(0x21);
ips200_wr_reg(0x29); ips200_wr_reg(0x29);
ips200_clear(IPS200_BGCOLOR); //初始化为白屏 ips200_clear(IPS200_BGCOLOR); //初始化为白屏
} }
@@ -844,8 +879,8 @@ void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height)
p++; p++;
for(j=0; j<8; j++) for(j=0; j<8; j++)
{ {
if( (temp<<j)&0x80 ) ips200_wr_data16(WHITE); if( (temp<<j)&0x80 ) ips200_wr_data16(RGB565_WHITE);
else ips200_wr_data16(BLACK); else ips200_wr_data16(RGB565_BLACK);
} }
} }
} }

View File

@@ -0,0 +1,199 @@
/*/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2020,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>824575535
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file 2.0<EFBFBD><EFBFBD>IPS<EFBFBD><EFBFBD>Ļ
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software ADS v1.5.2
* @Target core TC264
* @Taobao https://seekfree.taobao.com/
* @date 2020-05-07
* @note
<20><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------
* ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
* // ˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* RD <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RD_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* WR <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_WR_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* RS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RS_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* RST <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RST_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* CS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_CS_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* BL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_BL_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* D0-D7 <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_Dx_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* SCL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_SCL_PIN_SPI <20><EFBFBD><EAB6A8>
* SDA <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_SDA_PIN_SPI <20><EFBFBD><EAB6A8>
* RST <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RST_PIN_SPI <20><EFBFBD><EAB6A8>
* DC <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_DC_PIN_SPI <20><EFBFBD><EAB6A8>
* CS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_CS_PIN_SPI <20><EFBFBD><EAB6A8>
* BL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_BL_PIN_SPI <20><EFBFBD><EAB6A8>
* <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
* VCC 3.3V<EFBFBD><EFBFBD>Դ
* GND <20><>Դ<EFBFBD><D4B4>
* <20><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD> 320 * 240
* ------------------------------------
********************************************************************************************************************/
#ifndef _SEEKFREE_IPS200_H
#define _SEEKFREE_IPS200_H
#include "common.h"
#include "stdlib.h"
#include "string.h"
#include "stdio.h"
#include "zf_stm_systick.h"
#include "zf_gpio.h"
#include "zf_assert.h"
#include "SEEKFREE_PRINTF.h"
#include "zf_spi.h"
#include "SEEKFREE_FUN.h"
#include "SEEKFREE_FONT.h"
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>SEEKFREE_FONT.h<>ļ<EFBFBD><C4BC>ж<EFBFBD><D0B6><EFBFBD>----------
//#define RED 0xF800 //<2F><>ɫ
//#define BLUE 0x001F //<2F><>ɫ
//#define YELLOW 0xFFE0 //<2F><>ɫ
//#define GREEN 0x07E0 //<2F><>ɫ
//#define WHITE 0xFFFF //<2F><>ɫ
//#define BLACK 0x0000 //<2F><>ɫ
//#define GRAY 0X8430 //<2F><>ɫ
//#define BROWN 0XBC40 //<2F><>ɫ
//#define PURPLE 0XF81F //<2F><>ɫ
//#define PINK 0XFE19 //<2F><>ɫ
#define IPS200_BGCOLOR RGB565_WHITE //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
#define IPS200_PENCOLOR RGB565_RED //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
// <20><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
#define IPS200_SPIN SPI_2 //<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD>SPI<50><49>
#define IPS200_SCL_PIN_SPI SPI2_SCLK_P15_3 //<2F><><EFBFBD><EFBFBD>SPI_SCK<43><4B><EFBFBD><EFBFBD>
#define IPS200_SDA_PIN_SPI SPI2_MOSI_P15_5 //<2F><><EFBFBD><EFBFBD>SPI_MOSI<53><49><EFBFBD><EFBFBD>
#define IPS200_SDA_IN_PIN_SPI SPI2_MISO_P15_4 //<2F><><EFBFBD><EFBFBD>SPI_MISO<53><4F><EFBFBD><EFBFBD> IPSû<53><C3BB>MISO<53><4F><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><E5A3AC>spi<70>ij<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1>Ҫʹ<D2AA><CAB9>
#define IPS200_CS_PIN_SPI SPI2_CS0_P15_2 //<2F><><EFBFBD><EFBFBD>SPI_CS<43><53><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
#define IPS200_RST_PIN_SPI P15_1 // Һ<><D2BA><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD>
#define IPS200_DC_PIN_SPI P15_0
#define IPS200_BL_PIN_SPI P15_4
//<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
//<2F><><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ѡ<EFBFBD><D1A1>B C D<><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><CBBF>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
#define IPS200_RD_PIN_PARALLEL8 P15_3
#define IPS200_WR_PIN_PARALLEL8 P15_5
#define IPS200_RS_PIN_PARALLEL8 P15_1
#define IPS200_RST_PIN_PARALLEL8 P15_0
#define IPS200_CS_PIN_PARALLEL8 P15_2
#define IPS200_BL_PIN_PARALLEL8 P15_4
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õõ<C3B5>
//D0-D3<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>C0-C3,C1-C4<43>ȵȣ<C8B5>
//D4-D7<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>B0-B3,B1-B4<42>ȵȡ<C8B5>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>ͬ<EFBFBD>˿ڵ<CBBF><DAB5><EFBFBD>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>D0-D3<44><33>C1-C4<43><34><EFBFBD>ӣ<EFBFBD>D4-D7<44><37>B2-B5<42><35><EFBFBD>ӡ<EFBFBD>
//<2F>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD>ע<EFBFBD><D7A2><EFBFBD>޸<EFBFBD>IPS200_DATA_PORT1<54><31>IPS200_DATA_PORT2<54><EFBFBD><EAB6A8>
#define IPS200_D0_PIN_PARALLEL8 P11_9
#define IPS200_D1_PIN_PARALLEL8 P11_10
#define IPS200_D2_PIN_PARALLEL8 P11_11
#define IPS200_D3_PIN_PARALLEL8 P11_12
#define IPS200_D4_PIN_PARALLEL8 P13_0
#define IPS200_D5_PIN_PARALLEL8 P13_1
#define IPS200_D6_PIN_PARALLEL8 P13_2
#define IPS200_D7_PIN_PARALLEL8 P13_3
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ˿<DDB6><CBBF><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>и<EFBFBD><D0B8><EFBFBD>
#define IPS200_DATA_PORT1 3 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT1 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT1].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM1 (IPS200_D0_PIN_PARALLEL8&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_DATA_PORT2 4 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT2 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT2].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM2 (IPS200_D4_PIN_PARALLEL8&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_BL(x) gpio_set(IPS200_BL_PIN_PARALLEL8,x)
#define IPS200_CS(x) gpio_set(IPS200_CS_PIN_PARALLEL8,x)
#define IPS200_RD(x) gpio_set(IPS200_RD_PIN_PARALLEL8,x)
#define IPS200_WR(x) gpio_set(IPS200_WR_PIN_PARALLEL8,x)
#define IPS200_RS(x) gpio_set(IPS200_RS_PIN_PARALLEL8,x)
#define IPS200_RST(x) gpio_set(ips_rst_pin,x)
#define IPS200_DC(x) gpio_set(IPS200_DC_PIN_SPI,x)
#define IPS200_W 240
#define IPS200_H 320
typedef enum
{
IPS200_TYPE_SPI, // SPI <20><><EFBFBD><EFBFBD>
IPS200_TYPE_PARALLEL8, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}ips200_type_enum;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
//0 <20><><EFBFBD><EFBFBD>ģʽ
//1 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
//2 <20><><EFBFBD><EFBFBD>ģʽ
//3 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
#define IPS200_DISPLAY_DIR 0
#if (0==IPS200_DISPLAY_DIR || 1==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_W //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_H //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#elif (2==IPS200_DISPLAY_DIR || 3==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_H //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_W //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#else
#error "IPS200_DISPLAY_DIR <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#endif
void ips200_init(ips200_type_enum type_select); //<2F><>ʼ<EFBFBD><CABC>Ӳ<EFBFBD><D3B2>
void ips200_w_data(uint8 dat);
void ips200_wr_reg(uint8 com);
void ips200_wr_data(uint8 dat);
void ips200_wr_data16(uint16 dat);
void ips200_w_reg(uint8 com,uint8 dat);
void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2);
void ips200_clear(uint16 color);
void ips200_drawpoint(uint16 x,uint16 y,uint16 color);
void ips200_showchar(uint16 x,uint16 y,const int8 dat);
void ips200_showstr(uint16 x,uint16 y,const int8 dat[]);
void ips200_showint8(uint16 x,uint16 y,int8 dat);
void ips200_showuint8(uint16 x,uint16 y,uint8 dat);
void ips200_showint16(uint16 x,uint16 y,int16 dat);
void ips200_showuint16(uint16 x,uint16 y,uint16 dat);
void ips200_showint32(uint16 x,uint16 y,int dat,uint8 num);
void ips200_showfloat(uint16 x,uint16 y,double dat,int8 num,int8 pointnum);
void ips200_showimage(uint16 x,uint16 y,uint16 w,uint16 l,const unsigned char *p);
void ips200_displayimage032(uint8 *p, uint16 width, uint16 height);
void ips200_displayimage032_zoom(uint8 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage032_zoom1(uint8 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom1(uint16 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_grayscale_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height);
void ips200_display_chinese(uint16 x, uint16 y, uint8 size, const uint8 *p, uint8 number, uint16 color);
#endif

View File

@@ -1,180 +0,0 @@
/*/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2020,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>824575535
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file 2.0<EFBFBD><EFBFBD>IPS<EFBFBD><EFBFBD>Ļ
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software ADS v1.2.2
* @Target core TC264D
* @Taobao https://seekfree.taobao.com/
* @date 2020-3-23
* @note
<09><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------
ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <09><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
D0 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D0_PIN <20><EFBFBD><EAB6A8>
D1 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D1_PIN <20><EFBFBD><EAB6A8>
D2 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D2_PIN <20><EFBFBD><EAB6A8>
D3 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D3_PIN <20><EFBFBD><EAB6A8>
D4 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D4_PIN <20><EFBFBD><EAB6A8>
D5 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D5_PIN <20><EFBFBD><EAB6A8>
D6 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D6_PIN <20><EFBFBD><EAB6A8>
D7 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D7_PIN <20><EFBFBD><EAB6A8>
BL <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_BL_PIN <20><EFBFBD><EAB6A8>
CS <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_CS_PIN <20><EFBFBD><EAB6A8>
RD <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RD_PIN <20><EFBFBD><EAB6A8>
WR <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_WR_PIN <20><EFBFBD><EAB6A8>
RS <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RS_PIN <20><EFBFBD><EAB6A8>
RST <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RST_PIN <20><EFBFBD><EAB6A8>
<09><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
VCC 3.3V<EFBFBD><EFBFBD>Դ
GND <20><>Դ<EFBFBD><D4B4>
<09><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>240*320
------------------------------------
********************************************************************************************************************/
#ifndef _SEEKFREE_IPS200PARALLEL8_H
#define _SEEKFREE_IPS200PARALLEL8_H
#include "common.h"
#include "SEEKFREE_FONT.h"
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>SEEKFREE_FONT.h<>ļ<EFBFBD><C4BC>ж<EFBFBD><D0B6><EFBFBD>----------
//#define RED 0xF800 //<2F><>ɫ
//#define BLUE 0x001F //<2F><>ɫ
//#define YELLOW 0xFFE0 //<2F><>ɫ
//#define GREEN 0x07E0 //<2F><>ɫ
//#define WHITE 0xFFFF //<2F><>ɫ
//#define BLACK 0x0000 //<2F><>ɫ
//#define GRAY 0X8430 //<2F><>ɫ
//#define BROWN 0XBC40 //<2F><>ɫ
//#define PURPLE 0XF81F //<2F><>ɫ
//#define PINK 0XFE19 //<2F><>ɫ
#define IPS200_BGCOLOR WHITE //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
#define IPS200_PENCOLOR RED //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
//<2F><><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ѡ<EFBFBD><D1A1>B C D<><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><CBBF>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
#define IPS200_RD_PIN P15_3
#define IPS200_WR_PIN P15_5
#define IPS200_RS_PIN P15_1
#define IPS200_RST_PIN P15_0
#define IPS200_CS_PIN P15_2
#define IPS200_BL_PIN P15_4
//D0-D3<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>C0-C3,C1-C4<43>ȵȣ<C8B5>
//D4-D7<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>B0-B3,B1-B4<42>ȵȡ<C8B5>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>ͬ<EFBFBD>˿ڵ<CBBF><DAB5><EFBFBD>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>D0-D3<44><33>C1-C4<43><34><EFBFBD>ӣ<EFBFBD>D4-D7<44><37>B2-B5<42><35><EFBFBD>ӡ<EFBFBD>
//<2F>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD>ע<EFBFBD><D7A2><EFBFBD>޸<EFBFBD>IPS200_DATA_PORT1<54><31>IPS200_DATA_PORT2<54><EFBFBD><EAB6A8>
#define IPS200_D0_PIN P11_9
#define IPS200_D1_PIN P11_10
#define IPS200_D2_PIN P11_11
#define IPS200_D3_PIN P11_12
#define IPS200_D4_PIN P13_0
#define IPS200_D5_PIN P13_1
#define IPS200_D6_PIN P13_2
#define IPS200_D7_PIN P13_3
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ˿<DDB6><CBBF><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>и<EFBFBD><D0B8><EFBFBD>
#define IPS200_DATA_PORT1 3 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT1 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT1].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM1 (IPS200_D0_PIN&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_DATA_PORT2 4 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT2 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT2].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM2 (IPS200_D4_PIN&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_BL(x) gpio_set(IPS200_BL_PIN,x)
#define IPS200_CS(x) gpio_set(IPS200_CS_PIN,x)
#define IPS200_RD(x) gpio_set(IPS200_RD_PIN,x)
#define IPS200_WR(x) gpio_set(IPS200_WR_PIN,x)
#define IPS200_RS(x) gpio_set(IPS200_RS_PIN,x)
#define IPS200_RST(x) gpio_set(IPS200_RST_PIN,x)
#define IPS200_W 240
#define IPS200_H 320
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
//0 <20><><EFBFBD><EFBFBD>ģʽ
//1 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
//2 <20><><EFBFBD><EFBFBD>ģʽ
//3 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
#define IPS200_DISPLAY_DIR 0
#if (0==IPS200_DISPLAY_DIR || 1==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_W //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_H //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#elif (2==IPS200_DISPLAY_DIR || 3==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_H //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_W //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#else
#error "IPS200_DISPLAY_DIR <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#endif
void ips200_init(void); //<2F><>ʼ<EFBFBD><CABC>Ӳ<EFBFBD><D3B2>
void ips200_w_data(uint8 dat);
void ips200_wr_reg(uint8 com);
void ips200_wr_data(uint8 dat);
void ips200_wr_data16(uint16 dat);
void ips200_w_reg(uint8 com,uint8 dat);
void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2);
void ips200_clear(uint16 color);
void ips200_drawpoint(uint16 x,uint16 y,uint16 color);
void ips200_showchar(uint16 x,uint16 y,const int8 dat);
void ips200_showstr(uint16 x,uint16 y,const int8 dat[]);
void ips200_showint8(uint16 x,uint16 y,int8 dat);
void ips200_showuint8(uint16 x,uint16 y,uint8 dat);
void ips200_showint16(uint16 x,uint16 y,int16 dat);
void ips200_showuint16(uint16 x,uint16 y,uint16 dat);
void ips200_showint32(uint16 x,uint16 y,int dat,uint8 num);
void ips200_showfloat(uint16 x,uint16 y,double dat,int8 num,int8 pointnum);
void ips200_showimage(uint16 x,uint16 y,uint16 w,uint16 l,const unsigned char *p);
void ips200_displayimage032(uint8 *p, uint16 width, uint16 height);
void ips200_displayimage032_zoom(uint8 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage032_zoom1(uint8 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom1(uint16 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_grayscale_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height);
void ips200_display_chinese(uint16 x, uint16 y, uint8 size, const uint8 *p, uint8 number, uint16 color);
#endif

View File

@@ -1,3 +1,5 @@
V1.2.9
ɾ<><C9BE>SEEKFREE_IPS200_PARALLEL8<4C>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SEEKFREE_IPS200<30><30><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD>е<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
V1.2.8 V1.2.8
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD><EFBFBD>PCLK_MODE<44><45>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>λ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD><EFBFBD>PCLK_MODE<44><45>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>λ

View File

@@ -61,7 +61,7 @@
#include "SEEKFREE_MMA8451.h" #include "SEEKFREE_MMA8451.h"
#include "SEEKFREE_L3G4200D.h" #include "SEEKFREE_L3G4200D.h"
#include "SEEKFREE_WIRELESS.h" #include "SEEKFREE_WIRELESS.h"
#include "SEEKFREE_IPS200_PARALLEL8.h" #include "SEEKFREE_IPS200.h"
#include "SEEKFREE_7725.h" #include "SEEKFREE_7725.h"
#include "SEEKFREE_RDA5807.h" #include "SEEKFREE_RDA5807.h"
#include "SEEKFREE_7725_UART.h" #include "SEEKFREE_7725_UART.h"

View File

@@ -24,7 +24,7 @@
#include "IfxQspi.h" #include "IfxQspi.h"
#include "zf_assert.h" #include "zf_assert.h"
#include "zf_spi.h" #include "zf_spi.h"
#include "zf_gpio.h"
#define MAX_BAUD 50000000 #define MAX_BAUD 50000000
@@ -183,7 +183,62 @@ void spi_mux(SPIN_enum spi_n, SPI_PIN_enum sck_pin, SPI_PIN_enum mosi_pin, SPI_P
} }
uint8 get_spi_cs_pin(SPI_PIN_enum cs_pin)
{
if (SPI0_CS0_P20_8 == cs_pin) return gpio_get(P20_8);
else if (SPI0_CS1_P20_9 == cs_pin) return gpio_get(P20_9);
else if (SPI0_CS2_P20_13 == cs_pin) return gpio_get(P20_13);
else if (SPI0_CS3_P11_10 == cs_pin) return gpio_get(P11_10);
else if (SPI0_CS4_P11_11 == cs_pin) return gpio_get(P11_11);
else if (SPI0_CS5_P11_2 == cs_pin) return gpio_get(P11_2);
else if (SPI0_CS6_P20_10 == cs_pin) return gpio_get(P20_10);
else if (SPI0_CS7_P33_5 == cs_pin) return gpio_get(P33_5);
else if (SPI0_CS8_P20_6 == cs_pin) return gpio_get(P20_6);
else if (SPI0_CS9_P20_3 == cs_pin) return gpio_get(P20_3);
else if (SPI0_CS13_P15_0 == cs_pin) return gpio_get(P15_0);
else if (SPI1_CS0_P20_8 == cs_pin) return gpio_get(P20_8);
else if (SPI1_CS1_P20_9 == cs_pin) return gpio_get(P20_9);
else if (SPI1_CS2_P20_13 == cs_pin) return gpio_get(P20_13);
else if (SPI1_CS3_P11_10 == cs_pin) return gpio_get(P11_10);
else if (SPI1_CS4_P11_11 == cs_pin) return gpio_get(P11_11);
else if (SPI1_CS5_P11_2 == cs_pin) return gpio_get(P11_2);
else if (SPI1_CS6_P33_10 == cs_pin) return gpio_get(P33_10);
else if (SPI1_CS7_P33_5 == cs_pin) return gpio_get(P33_5);
else if (SPI1_CS8_P10_4 == cs_pin) return gpio_get(P10_4);
else if (SPI1_CS9_P10_5 == cs_pin) return gpio_get(P10_5);
else if (SPI1_CS10_P10_0 == cs_pin) return gpio_get(P10_0);
else if (SPI2_CS0_P15_2 == cs_pin) return gpio_get(P15_2);
else if (SPI2_CS1_P14_2 == cs_pin) return gpio_get(P14_2);
else if (SPI2_CS2_P14_6 == cs_pin) return gpio_get(P14_6);
else if (SPI2_CS3_P14_3 == cs_pin) return gpio_get(P14_3);
else if (SPI2_CS5_P15_1 == cs_pin) return gpio_get(P15_1);
else if (SPI2_CS6_P33_13 == cs_pin) return gpio_get(P33_13);
else if (SPI2_CS7_P20_10 == cs_pin) return gpio_get(P20_10);
else if (SPI2_CS8_P20_6 == cs_pin) return gpio_get(P20_6);
else if (SPI2_CS9_P20_3 == cs_pin) return gpio_get(P20_3);
else if (SPI3_CS0_P02_4 == cs_pin) return gpio_get(P02_4);
else if (SPI3_CS1_P02_0 == cs_pin) return gpio_get(P02_0);
else if (SPI3_CS1_P33_9 == cs_pin) return gpio_get(P33_9);
else if (SPI3_CS2_P02_1 == cs_pin) return gpio_get(P02_1);
else if (SPI3_CS2_P33_8 == cs_pin) return gpio_get(P33_8);
else if (SPI3_CS3_P02_2 == cs_pin) return gpio_get(P02_2);
else if (SPI3_CS4_P02_3 == cs_pin) return gpio_get(P02_3);
else if (SPI3_CS4_P23_5 == cs_pin) return gpio_get(P23_5);
else if (SPI3_CS5_P02_8 == cs_pin) return gpio_get(P02_8);
else if (SPI3_CS6_P00_8 == cs_pin) return gpio_get(P00_8);
else if (SPI3_CS7_P00_9 == cs_pin) return gpio_get(P00_9);
else if (SPI3_CS7_P33_7 == cs_pin) return gpio_get(P33_7);
else if (SPI3_CS8_P10_5 == cs_pin) return gpio_get(P10_5);
else if (SPI3_CS11_P33_10 == cs_pin) return gpio_get(P33_10);
else if (SPI3_CS12_P22_2 == cs_pin) return gpio_get(P22_2);
else if (SPI3_CS13_P23_1 == cs_pin) return gpio_get(P23_1);
else
{
ZF_ASSERT(FALSE);
return 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>CS<43><53><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>
}
}
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
@@ -335,6 +390,7 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
while(moudle->STATUS.B.RXFIFOLEVEL == 0); while(moudle->STATUS.B.RXFIFOLEVEL == 0);
*midata = (uint8)IfxQspi_readReceiveFifo(moudle); *midata = (uint8)IfxQspi_readReceiveFifo(moudle);
} }
while(!get_spi_cs_pin(cs_pin));
} }

View File

@@ -264,7 +264,7 @@ void lcd_init(void)
lcd_writeData(0x05); lcd_writeData(0x05);
lcd_writeIndex(0x29); lcd_writeIndex(0x29);
lcd_clear(WHITE);//ȫ<><C8AB> lcd_clear(RGB565_WHITE);//ȫ<><C8AB>
} }
@@ -550,7 +550,7 @@ void showimage(const unsigned char *p)
{ {
int i,j,k; int i,j,k;
unsigned char picH,picL; unsigned char picH,picL;
lcd_clear(WHITE); //<2F><><EFBFBD><EFBFBD> lcd_clear(RGB565_WHITE); //<2F><><EFBFBD><EFBFBD>
for(k=0;k<4;k++) for(k=0;k<4;k++)
{ {
@@ -716,8 +716,8 @@ void lcd_displayimage7725(uint8 *p, uint16 width, uint16 height)
p++; p++;
for(j=0; j<8; j++) for(j=0; j<8; j++)
{ {
if( (temp<<j)&0x80 ) lcd_writedata_16bit(WHITE); if( (temp<<j)&0x80 ) lcd_writedata_16bit(RGB565_WHITE);
else lcd_writedata_16bit(BLACK); else lcd_writedata_16bit(RGB565_BLACK);
} }
} }
} }

View File

@@ -78,10 +78,10 @@
//<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ
#define TFT_PENCOLOR RED #define TFT_PENCOLOR RGB565_RED
//<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ
#define TFT_BGCOLOR WHITE #define TFT_BGCOLOR RGB565_WHITE

View File

@@ -26,16 +26,16 @@
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ---------- //-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ----------
#define RED 0xF800 //<2F><>ɫ #define RGB565_RED 0xF800 //<2F><>ɫ
#define BLUE 0x001F //<2F><>ɫ #define RGB565_BLUE 0x001F //<2F><>ɫ
#define YELLOW 0xFFE0 //<2F><>ɫ #define RGB565_YELLOW 0xFFE0 //<2F><>ɫ
#define GREEN 0x07E0 //<2F><>ɫ #define RGB565_GREEN 0x07E0 //<2F><>ɫ
#define WHITE 0xFFFF //<2F><>ɫ #define RGB565_WHITE 0xFFFF //<2F><>ɫ
#define BLACK 0x0000 //<2F><>ɫ #define RGB565_BLACK 0x0000 //<2F><>ɫ
#define GRAY 0X8430 //<2F><>ɫ #define RGB565_GRAY 0X8430 //<2F><>ɫ
#define BROWN 0XBC40 //<2F><>ɫ #define RGB565_BROWN 0XBC40 //<2F><>ɫ
#define PURPLE 0XF81F //<2F><>ɫ #define RGB565_PURPLE 0XF81F //<2F><>ɫ
#define PINK 0XFE19 //<2F><>ɫ #define RGB565_PINK 0XFE19 //<2F><>ɫ
extern const uint8 tft_ascii[95][16]; extern const uint8 tft_ascii[95][16];

View File

@@ -726,8 +726,8 @@ void ips114_displayimage7725(uint8 *p, uint16 width, uint16 height)
p++; p++;
for(j=0; j<8; j++) for(j=0; j<8; j++)
{ {
if( (temp<<j)&0x80 ) ips114_writedata_16bit(WHITE); if( (temp<<j)&0x80 ) ips114_writedata_16bit(RGB565_WHITE);
else ips114_writedata_16bit(BLACK); else ips114_writedata_16bit(RGB565_BLACK);
} }
} }
} }

View File

@@ -77,10 +77,10 @@
//<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ
#define IPS114_PENCOLOR RED #define IPS114_PENCOLOR RGB565_RED
//<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ
#define IPS114_BGCOLOR WHITE #define IPS114_BGCOLOR RGB565_WHITE

View File

@@ -11,56 +11,50 @@
* @company * @company
* @author (QQ3184284598) * @author (QQ3184284598)
* @version doc内version文件 * @version doc内version文件
* @Software ADS v1.2.2 * @Software ADS v1.5.2
* @Target core TC264D * @Target core TC264
* @Taobao https://seekfree.taobao.com/ * @Taobao https://seekfree.taobao.com/
* @date 2020-3-23 * @date 2022-05-07
* @note * @note
线 线
------------------------------------ ------------------------------------------------------------------------
*
D0 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D0_PIN * // 双排排针 并口两寸屏 硬件引脚
D1 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D1_PIN * RD SEEKFREE_IPS200.h IPS200_RD_PIN_PARALLEL8
D2 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D2_PIN * WR SEEKFREE_IPS200.h IPS200_WR_PIN_PARALLEL8
D3 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D3_PIN * RS SEEKFREE_IPS200.h IPS200_RS_PIN_PARALLEL8
D4 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D4_PIN * RST SEEKFREE_IPS200.h IPS200_RST_PIN_PARALLEL8
D5 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D5_PIN * CS SEEKFREE_IPS200.h IPS200_CS_PIN_PARALLEL8
D6 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D6_PIN * BL SEEKFREE_IPS200.h IPS200_BL_PIN_PARALLEL8
D7 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D7_PIN * D0-D7 SEEKFREE_IPS200.h IPS200_Dx_PIN_PARALLEL8
* VCC 3.3V电源
BL SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_BL_PIN * GND
CS SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_CS_PIN * // 单排排针 SPI 两寸屏 硬件引脚
RD SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_RD_PIN * SCL SEEKFREE_IPS200.h IPS200_SCL_PIN_SPI
WR SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_WR_PIN * SDA SEEKFREE_IPS200.h IPS200_SDA_PIN_SPI
RS SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_RS_PIN * RST SEEKFREE_IPS200.h IPS200_RST_PIN_SPI
RST SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_RST_PIN * DC SEEKFREE_IPS200.h IPS200_DC_PIN_SPI
* CS SEEKFREE_IPS200.h IPS200_CS_PIN_SPI
* BL SEEKFREE_IPS200.h IPS200_BL_PIN_SPI
VCC 3.3V电源 * VCC 3.3V电源
GND * GND
240*320 * 320 * 240
------------------------------------ * ------------------------------------------------------------------------
********************************************************************************************************************/ ********************************************************************************************************************/
#include "stdlib.h" #include "SEEKFREE_IPS200.h"
#include "string.h"
#include "stdio.h"
#include "zf_stm_systick.h"
#include "zf_gpio.h"
#include "zf_assert.h"
#include "SEEKFREE_PRINTF.h"
#include "SEEKFREE_IPS200_PARALLEL8.h"
static ips200_type_enum ips200_display_type = IPS200_TYPE_SPI;
static PIN_enum ips_rst_pin = IPS200_RST_PIN_SPI;
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心 // @brief 内部调用,用户无需关心
// @param void // @param dat 数据
// @return // @return
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
void ips200_w_data(uint8 dat) //写数据 void ips200_w_data(uint8 dat) //写数据
{ {
IPS200_DATAPORT1 = (dat << DATA_START_NUM1) | (IPS200_DATAPORT1 & ~((uint32)(0x0F << DATA_START_NUM1)) ); IPS200_DATAPORT1 = (dat << DATA_START_NUM1) | (IPS200_DATAPORT1 & ~((uint32)(0x0F << DATA_START_NUM1)) );
IPS200_DATAPORT2 = ((dat>>4) << DATA_START_NUM2) | (IPS200_DATAPORT2 & ~((uint32)(0x0F << DATA_START_NUM2)) ); IPS200_DATAPORT2 = ((dat>>4) << DATA_START_NUM2) | (IPS200_DATAPORT2 & ~((uint32)(0x0F << DATA_START_NUM2)) );
@@ -69,67 +63,94 @@ void ips200_w_data(uint8 dat) //д
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心 // @brief 内部调用,用户无需关心
// @param void // @param command 命令
// @return // @return
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
void ips200_wr_reg(uint8 command) //写命令 void ips200_wr_reg(uint8 command) //写命令
{ {
IPS200_CS(0); if(IPS200_TYPE_SPI == ips200_display_type)
IPS200_RS(0); {
IPS200_RD(1); IPS200_DC(0);
IPS200_WR(0); spi_mosi(IPS200_SPIN,IPS200_CS_PIN_SPI,&command,NULL,1,1);
ips200_w_data(command); IPS200_DC(1);
IPS200_WR(1); }
IPS200_CS(1); else
{
IPS200_CS(0);
IPS200_RS(0);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(command);
IPS200_WR(1);
IPS200_CS(1);
}
} }
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心 // @brief 内部调用,用户无需关心
// @param void // @param dat 8位数据
// @return // @return
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
void ips200_wr_data(uint8 dat) //向液晶屏写一个8位数据 void ips200_wr_data(uint8 dat) //向液晶屏写一个8位数据
{ {
IPS200_CS(0); if(IPS200_TYPE_SPI == ips200_display_type)
IPS200_RS(1); {
IPS200_RD(1); spi_mosi(IPS200_SPIN,IPS200_CS_PIN_SPI,&dat,NULL,1,1);
IPS200_WR(0); }
ips200_w_data(dat); else
IPS200_WR(1); {
IPS200_CS(1); IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(dat);
IPS200_WR(1);
IPS200_CS(1);
}
} }
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心 // @brief 内部调用,用户无需关心
// @param void // @param dat 16位数据
// @return // @return
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
void ips200_wr_data16(uint16 dat) //向液晶屏写一个16位数据 void ips200_wr_data16(uint16 dat) //向液晶屏写一个16位数据
{ {
IPS200_CS(0); if(IPS200_TYPE_SPI == ips200_display_type)
IPS200_RS(1); {
IPS200_RD(1); uint8 dat1[2];
IPS200_WR(0); dat1[0] = dat >> 8;
ips200_w_data((uint8)(dat>>8)); dat1[1] = (uint8)dat;
IPS200_WR(1); spi_mosi(IPS200_SPIN,IPS200_CS_PIN_SPI,dat1,NULL,2,1);
IPS200_WR(0); }
ips200_w_data((uint8)(dat)); else
IPS200_WR(1); {
IPS200_CS(1); IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat>>8));
IPS200_WR(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat));
IPS200_WR(1);
IPS200_CS(1);
}
} }
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心 // @brief 内部调用,用户无需关心
// @param void // @param com 命令
// @param dat 数据
// @return // @return
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
@@ -143,8 +164,11 @@ void ips200_w_reg(uint8 com,uint8 dat) //д
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心 // @brief 设置显示区域 内部调用
// @param void // @param x1 起始x轴坐标
// @param y1 起始y轴坐标
// @param x2 结束x轴坐标
// @param y2 结束y轴坐标
// @return // @return
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
@@ -165,28 +189,42 @@ void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2)
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 2.0寸 IPS液晶初始化 // @brief 2.0寸 IPS液晶初始化
// @return void // @return type_select 并口或者串口选择
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
void ips200_init(void) void ips200_init(ips200_type_enum type_select)
{ {
gpio_init(IPS200_D0_PIN, GPO, 0, PUSHPULL); if(IPS200_TYPE_SPI == type_select)
gpio_init(IPS200_D1_PIN, GPO, 0, PUSHPULL); {
gpio_init(IPS200_D2_PIN, GPO, 0, PUSHPULL); ips200_display_type = IPS200_TYPE_SPI;
gpio_init(IPS200_D3_PIN, GPO, 0, PUSHPULL); ips_rst_pin = IPS200_RST_PIN_SPI;
gpio_init(IPS200_D4_PIN, GPO, 0, PUSHPULL); spi_init(IPS200_SPIN, IPS200_SCL_PIN_SPI, IPS200_SDA_PIN_SPI, IPS200_SDA_IN_PIN_SPI, IPS200_CS_PIN_SPI, 0, 30*1000*1000);//硬件SPI初始化
gpio_init(IPS200_D5_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D6_PIN, GPO, 0, PUSHPULL); gpio_init(IPS200_BL_PIN_SPI,GPO,1,PUSHPULL);
gpio_init(IPS200_D7_PIN, GPO, 0, PUSHPULL); gpio_init(IPS200_DC_PIN_SPI,GPO,0,PUSHPULL);
gpio_init(ips_rst_pin,GPO,0,PUSHPULL);
gpio_init(IPS200_BL_PIN, GPO, 0, PUSHPULL); }
gpio_init(IPS200_CS_PIN, GPO, 0, PUSHPULL); else
gpio_init(IPS200_RST_PIN, GPO, 0, PUSHPULL); {
gpio_init(IPS200_RS_PIN, GPO, 0, PUSHPULL); ips200_display_type = IPS200_TYPE_PARALLEL8;
gpio_init(IPS200_WR_PIN, GPO, 0, PUSHPULL); ips_rst_pin = IPS200_RST_PIN_PARALLEL8;
gpio_init(IPS200_RD_PIN, GPO, 0, PUSHPULL); gpio_init(IPS200_D0_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D1_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D2_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D3_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D4_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D5_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D6_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D7_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_BL_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_CS_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(ips_rst_pin, GPO, 0, PUSHPULL);
gpio_init(IPS200_RS_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_WR_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_RD_PIN_PARALLEL8, GPO, 0, PUSHPULL);
}
IPS200_BL(1); IPS200_BL(1);
IPS200_RST(0); IPS200_RST(0);
systick_delay_ms(STM0, 5); systick_delay_ms(STM0, 5);
@@ -203,9 +241,6 @@ void ips200_init(void)
else ips200_wr_data(0xA0); else ips200_wr_data(0xA0);
ips200_wr_reg(0x3A); ips200_wr_reg(0x3A);
ips200_wr_data(0x05); ips200_wr_data(0x05);
@@ -276,7 +311,7 @@ void ips200_init(void)
ips200_wr_reg(0x21); ips200_wr_reg(0x21);
ips200_wr_reg(0x29); ips200_wr_reg(0x29);
ips200_clear(IPS200_BGCOLOR); //初始化为白屏 ips200_clear(IPS200_BGCOLOR); //初始化为白屏
} }
@@ -844,8 +879,8 @@ void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height)
p++; p++;
for(j=0; j<8; j++) for(j=0; j<8; j++)
{ {
if( (temp<<j)&0x80 ) ips200_wr_data16(WHITE); if( (temp<<j)&0x80 ) ips200_wr_data16(RGB565_WHITE);
else ips200_wr_data16(BLACK); else ips200_wr_data16(RGB565_BLACK);
} }
} }
} }

View File

@@ -0,0 +1,199 @@
/*/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2020,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>824575535
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file 2.0<EFBFBD><EFBFBD>IPS<EFBFBD><EFBFBD>Ļ
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software ADS v1.5.2
* @Target core TC264
* @Taobao https://seekfree.taobao.com/
* @date 2020-05-07
* @note
<20><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------
* ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
* // ˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* RD <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RD_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* WR <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_WR_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* RS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RS_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* RST <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RST_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* CS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_CS_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* BL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_BL_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* D0-D7 <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_Dx_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* SCL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_SCL_PIN_SPI <20><EFBFBD><EAB6A8>
* SDA <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_SDA_PIN_SPI <20><EFBFBD><EAB6A8>
* RST <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RST_PIN_SPI <20><EFBFBD><EAB6A8>
* DC <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_DC_PIN_SPI <20><EFBFBD><EAB6A8>
* CS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_CS_PIN_SPI <20><EFBFBD><EAB6A8>
* BL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_BL_PIN_SPI <20><EFBFBD><EAB6A8>
* <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
* VCC 3.3V<EFBFBD><EFBFBD>Դ
* GND <20><>Դ<EFBFBD><D4B4>
* <20><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD> 320 * 240
* ------------------------------------
********************************************************************************************************************/
#ifndef _SEEKFREE_IPS200_H
#define _SEEKFREE_IPS200_H
#include "common.h"
#include "stdlib.h"
#include "string.h"
#include "stdio.h"
#include "zf_stm_systick.h"
#include "zf_gpio.h"
#include "zf_assert.h"
#include "SEEKFREE_PRINTF.h"
#include "zf_spi.h"
#include "SEEKFREE_FUN.h"
#include "SEEKFREE_FONT.h"
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>SEEKFREE_FONT.h<>ļ<EFBFBD><C4BC>ж<EFBFBD><D0B6><EFBFBD>----------
//#define RED 0xF800 //<2F><>ɫ
//#define BLUE 0x001F //<2F><>ɫ
//#define YELLOW 0xFFE0 //<2F><>ɫ
//#define GREEN 0x07E0 //<2F><>ɫ
//#define WHITE 0xFFFF //<2F><>ɫ
//#define BLACK 0x0000 //<2F><>ɫ
//#define GRAY 0X8430 //<2F><>ɫ
//#define BROWN 0XBC40 //<2F><>ɫ
//#define PURPLE 0XF81F //<2F><>ɫ
//#define PINK 0XFE19 //<2F><>ɫ
#define IPS200_BGCOLOR RGB565_WHITE //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
#define IPS200_PENCOLOR RGB565_RED //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
// <20><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
#define IPS200_SPIN SPI_2 //<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD>SPI<50><49>
#define IPS200_SCL_PIN_SPI SPI2_SCLK_P15_3 //<2F><><EFBFBD><EFBFBD>SPI_SCK<43><4B><EFBFBD><EFBFBD>
#define IPS200_SDA_PIN_SPI SPI2_MOSI_P15_5 //<2F><><EFBFBD><EFBFBD>SPI_MOSI<53><49><EFBFBD><EFBFBD>
#define IPS200_SDA_IN_PIN_SPI SPI2_MISO_P15_4 //<2F><><EFBFBD><EFBFBD>SPI_MISO<53><4F><EFBFBD><EFBFBD> IPSû<53><C3BB>MISO<53><4F><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><E5A3AC>spi<70>ij<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1>Ҫʹ<D2AA><CAB9>
#define IPS200_CS_PIN_SPI SPI2_CS0_P15_2 //<2F><><EFBFBD><EFBFBD>SPI_CS<43><53><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
#define IPS200_RST_PIN_SPI P15_1 // Һ<><D2BA><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD>
#define IPS200_DC_PIN_SPI P15_0
#define IPS200_BL_PIN_SPI P15_4
//<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
//<2F><><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ѡ<EFBFBD><D1A1>B C D<><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><CBBF>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
#define IPS200_RD_PIN_PARALLEL8 P15_3
#define IPS200_WR_PIN_PARALLEL8 P15_5
#define IPS200_RS_PIN_PARALLEL8 P15_1
#define IPS200_RST_PIN_PARALLEL8 P15_0
#define IPS200_CS_PIN_PARALLEL8 P15_2
#define IPS200_BL_PIN_PARALLEL8 P15_4
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õõ<C3B5>
//D0-D3<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>C0-C3,C1-C4<43>ȵȣ<C8B5>
//D4-D7<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>B0-B3,B1-B4<42>ȵȡ<C8B5>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>ͬ<EFBFBD>˿ڵ<CBBF><DAB5><EFBFBD>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>D0-D3<44><33>C1-C4<43><34><EFBFBD>ӣ<EFBFBD>D4-D7<44><37>B2-B5<42><35><EFBFBD>ӡ<EFBFBD>
//<2F>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD>ע<EFBFBD><D7A2><EFBFBD>޸<EFBFBD>IPS200_DATA_PORT1<54><31>IPS200_DATA_PORT2<54><EFBFBD><EAB6A8>
#define IPS200_D0_PIN_PARALLEL8 P11_9
#define IPS200_D1_PIN_PARALLEL8 P11_10
#define IPS200_D2_PIN_PARALLEL8 P11_11
#define IPS200_D3_PIN_PARALLEL8 P11_12
#define IPS200_D4_PIN_PARALLEL8 P13_0
#define IPS200_D5_PIN_PARALLEL8 P13_1
#define IPS200_D6_PIN_PARALLEL8 P13_2
#define IPS200_D7_PIN_PARALLEL8 P13_3
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ˿<DDB6><CBBF><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>и<EFBFBD><D0B8><EFBFBD>
#define IPS200_DATA_PORT1 3 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT1 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT1].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM1 (IPS200_D0_PIN_PARALLEL8&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_DATA_PORT2 4 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT2 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT2].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM2 (IPS200_D4_PIN_PARALLEL8&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_BL(x) gpio_set(IPS200_BL_PIN_PARALLEL8,x)
#define IPS200_CS(x) gpio_set(IPS200_CS_PIN_PARALLEL8,x)
#define IPS200_RD(x) gpio_set(IPS200_RD_PIN_PARALLEL8,x)
#define IPS200_WR(x) gpio_set(IPS200_WR_PIN_PARALLEL8,x)
#define IPS200_RS(x) gpio_set(IPS200_RS_PIN_PARALLEL8,x)
#define IPS200_RST(x) gpio_set(ips_rst_pin,x)
#define IPS200_DC(x) gpio_set(IPS200_DC_PIN_SPI,x)
#define IPS200_W 240
#define IPS200_H 320
typedef enum
{
IPS200_TYPE_SPI, // SPI <20><><EFBFBD><EFBFBD>
IPS200_TYPE_PARALLEL8, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}ips200_type_enum;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
//0 <20><><EFBFBD><EFBFBD>ģʽ
//1 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
//2 <20><><EFBFBD><EFBFBD>ģʽ
//3 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
#define IPS200_DISPLAY_DIR 0
#if (0==IPS200_DISPLAY_DIR || 1==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_W //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_H //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#elif (2==IPS200_DISPLAY_DIR || 3==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_H //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_W //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#else
#error "IPS200_DISPLAY_DIR <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#endif
void ips200_init(ips200_type_enum type_select); //<2F><>ʼ<EFBFBD><CABC>Ӳ<EFBFBD><D3B2>
void ips200_w_data(uint8 dat);
void ips200_wr_reg(uint8 com);
void ips200_wr_data(uint8 dat);
void ips200_wr_data16(uint16 dat);
void ips200_w_reg(uint8 com,uint8 dat);
void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2);
void ips200_clear(uint16 color);
void ips200_drawpoint(uint16 x,uint16 y,uint16 color);
void ips200_showchar(uint16 x,uint16 y,const int8 dat);
void ips200_showstr(uint16 x,uint16 y,const int8 dat[]);
void ips200_showint8(uint16 x,uint16 y,int8 dat);
void ips200_showuint8(uint16 x,uint16 y,uint8 dat);
void ips200_showint16(uint16 x,uint16 y,int16 dat);
void ips200_showuint16(uint16 x,uint16 y,uint16 dat);
void ips200_showint32(uint16 x,uint16 y,int dat,uint8 num);
void ips200_showfloat(uint16 x,uint16 y,double dat,int8 num,int8 pointnum);
void ips200_showimage(uint16 x,uint16 y,uint16 w,uint16 l,const unsigned char *p);
void ips200_displayimage032(uint8 *p, uint16 width, uint16 height);
void ips200_displayimage032_zoom(uint8 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage032_zoom1(uint8 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom1(uint16 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_grayscale_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height);
void ips200_display_chinese(uint16 x, uint16 y, uint8 size, const uint8 *p, uint8 number, uint16 color);
#endif

View File

@@ -1,180 +0,0 @@
/*/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2020,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>824575535
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file 2.0<EFBFBD><EFBFBD>IPS<EFBFBD><EFBFBD>Ļ
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software ADS v1.2.2
* @Target core TC264D
* @Taobao https://seekfree.taobao.com/
* @date 2020-3-23
* @note
<09><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------
ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <09><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
D0 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D0_PIN <20><EFBFBD><EAB6A8>
D1 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D1_PIN <20><EFBFBD><EAB6A8>
D2 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D2_PIN <20><EFBFBD><EAB6A8>
D3 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D3_PIN <20><EFBFBD><EAB6A8>
D4 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D4_PIN <20><EFBFBD><EAB6A8>
D5 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D5_PIN <20><EFBFBD><EAB6A8>
D6 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D6_PIN <20><EFBFBD><EAB6A8>
D7 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D7_PIN <20><EFBFBD><EAB6A8>
BL <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_BL_PIN <20><EFBFBD><EAB6A8>
CS <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_CS_PIN <20><EFBFBD><EAB6A8>
RD <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RD_PIN <20><EFBFBD><EAB6A8>
WR <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_WR_PIN <20><EFBFBD><EAB6A8>
RS <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RS_PIN <20><EFBFBD><EAB6A8>
RST <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RST_PIN <20><EFBFBD><EAB6A8>
<09><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
VCC 3.3V<EFBFBD><EFBFBD>Դ
GND <20><>Դ<EFBFBD><D4B4>
<09><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>240*320
------------------------------------
********************************************************************************************************************/
#ifndef _SEEKFREE_IPS200PARALLEL8_H
#define _SEEKFREE_IPS200PARALLEL8_H
#include "common.h"
#include "SEEKFREE_FONT.h"
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>SEEKFREE_FONT.h<>ļ<EFBFBD><C4BC>ж<EFBFBD><D0B6><EFBFBD>----------
//#define RED 0xF800 //<2F><>ɫ
//#define BLUE 0x001F //<2F><>ɫ
//#define YELLOW 0xFFE0 //<2F><>ɫ
//#define GREEN 0x07E0 //<2F><>ɫ
//#define WHITE 0xFFFF //<2F><>ɫ
//#define BLACK 0x0000 //<2F><>ɫ
//#define GRAY 0X8430 //<2F><>ɫ
//#define BROWN 0XBC40 //<2F><>ɫ
//#define PURPLE 0XF81F //<2F><>ɫ
//#define PINK 0XFE19 //<2F><>ɫ
#define IPS200_BGCOLOR WHITE //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
#define IPS200_PENCOLOR RED //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
//<2F><><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ѡ<EFBFBD><D1A1>B C D<><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><CBBF>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
#define IPS200_RD_PIN P15_3
#define IPS200_WR_PIN P15_5
#define IPS200_RS_PIN P15_1
#define IPS200_RST_PIN P15_0
#define IPS200_CS_PIN P15_2
#define IPS200_BL_PIN P15_4
//D0-D3<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>C0-C3,C1-C4<43>ȵȣ<C8B5>
//D4-D7<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>B0-B3,B1-B4<42>ȵȡ<C8B5>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>ͬ<EFBFBD>˿ڵ<CBBF><DAB5><EFBFBD>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>D0-D3<44><33>C1-C4<43><34><EFBFBD>ӣ<EFBFBD>D4-D7<44><37>B2-B5<42><35><EFBFBD>ӡ<EFBFBD>
//<2F>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD>ע<EFBFBD><D7A2><EFBFBD>޸<EFBFBD>IPS200_DATA_PORT1<54><31>IPS200_DATA_PORT2<54><EFBFBD><EAB6A8>
#define IPS200_D0_PIN P11_9
#define IPS200_D1_PIN P11_10
#define IPS200_D2_PIN P11_11
#define IPS200_D3_PIN P11_12
#define IPS200_D4_PIN P13_0
#define IPS200_D5_PIN P13_1
#define IPS200_D6_PIN P13_2
#define IPS200_D7_PIN P13_3
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ˿<DDB6><CBBF><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>и<EFBFBD><D0B8><EFBFBD>
#define IPS200_DATA_PORT1 3 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT1 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT1].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM1 (IPS200_D0_PIN&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_DATA_PORT2 4 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT2 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT2].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM2 (IPS200_D4_PIN&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_BL(x) gpio_set(IPS200_BL_PIN,x)
#define IPS200_CS(x) gpio_set(IPS200_CS_PIN,x)
#define IPS200_RD(x) gpio_set(IPS200_RD_PIN,x)
#define IPS200_WR(x) gpio_set(IPS200_WR_PIN,x)
#define IPS200_RS(x) gpio_set(IPS200_RS_PIN,x)
#define IPS200_RST(x) gpio_set(IPS200_RST_PIN,x)
#define IPS200_W 240
#define IPS200_H 320
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
//0 <20><><EFBFBD><EFBFBD>ģʽ
//1 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
//2 <20><><EFBFBD><EFBFBD>ģʽ
//3 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
#define IPS200_DISPLAY_DIR 0
#if (0==IPS200_DISPLAY_DIR || 1==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_W //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_H //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#elif (2==IPS200_DISPLAY_DIR || 3==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_H //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_W //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#else
#error "IPS200_DISPLAY_DIR <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#endif
void ips200_init(void); //<2F><>ʼ<EFBFBD><CABC>Ӳ<EFBFBD><D3B2>
void ips200_w_data(uint8 dat);
void ips200_wr_reg(uint8 com);
void ips200_wr_data(uint8 dat);
void ips200_wr_data16(uint16 dat);
void ips200_w_reg(uint8 com,uint8 dat);
void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2);
void ips200_clear(uint16 color);
void ips200_drawpoint(uint16 x,uint16 y,uint16 color);
void ips200_showchar(uint16 x,uint16 y,const int8 dat);
void ips200_showstr(uint16 x,uint16 y,const int8 dat[]);
void ips200_showint8(uint16 x,uint16 y,int8 dat);
void ips200_showuint8(uint16 x,uint16 y,uint8 dat);
void ips200_showint16(uint16 x,uint16 y,int16 dat);
void ips200_showuint16(uint16 x,uint16 y,uint16 dat);
void ips200_showint32(uint16 x,uint16 y,int dat,uint8 num);
void ips200_showfloat(uint16 x,uint16 y,double dat,int8 num,int8 pointnum);
void ips200_showimage(uint16 x,uint16 y,uint16 w,uint16 l,const unsigned char *p);
void ips200_displayimage032(uint8 *p, uint16 width, uint16 height);
void ips200_displayimage032_zoom(uint8 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage032_zoom1(uint8 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom1(uint16 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_grayscale_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height);
void ips200_display_chinese(uint16 x, uint16 y, uint8 size, const uint8 *p, uint8 number, uint16 color);
#endif

View File

@@ -1,3 +1,5 @@
V1.2.9
ɾ<><C9BE>SEEKFREE_IPS200_PARALLEL8<4C>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SEEKFREE_IPS200<30><30><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD>е<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
V1.2.8 V1.2.8
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD><EFBFBD>PCLK_MODE<44><45>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>λ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD><EFBFBD>PCLK_MODE<44><45>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>λ

View File

@@ -61,7 +61,7 @@
#include "SEEKFREE_MMA8451.h" #include "SEEKFREE_MMA8451.h"
#include "SEEKFREE_L3G4200D.h" #include "SEEKFREE_L3G4200D.h"
#include "SEEKFREE_WIRELESS.h" #include "SEEKFREE_WIRELESS.h"
#include "SEEKFREE_IPS200_PARALLEL8.h" #include "SEEKFREE_IPS200.h"
#include "SEEKFREE_7725.h" #include "SEEKFREE_7725.h"
#include "SEEKFREE_RDA5807.h" #include "SEEKFREE_RDA5807.h"
#include "SEEKFREE_7725_UART.h" #include "SEEKFREE_7725_UART.h"

View File

@@ -24,7 +24,7 @@
#include "IfxQspi.h" #include "IfxQspi.h"
#include "zf_assert.h" #include "zf_assert.h"
#include "zf_spi.h" #include "zf_spi.h"
#include "zf_gpio.h"
#define MAX_BAUD 50000000 #define MAX_BAUD 50000000
@@ -183,7 +183,62 @@ void spi_mux(SPIN_enum spi_n, SPI_PIN_enum sck_pin, SPI_PIN_enum mosi_pin, SPI_P
} }
uint8 get_spi_cs_pin(SPI_PIN_enum cs_pin)
{
if (SPI0_CS0_P20_8 == cs_pin) return gpio_get(P20_8);
else if (SPI0_CS1_P20_9 == cs_pin) return gpio_get(P20_9);
else if (SPI0_CS2_P20_13 == cs_pin) return gpio_get(P20_13);
else if (SPI0_CS3_P11_10 == cs_pin) return gpio_get(P11_10);
else if (SPI0_CS4_P11_11 == cs_pin) return gpio_get(P11_11);
else if (SPI0_CS5_P11_2 == cs_pin) return gpio_get(P11_2);
else if (SPI0_CS6_P20_10 == cs_pin) return gpio_get(P20_10);
else if (SPI0_CS7_P33_5 == cs_pin) return gpio_get(P33_5);
else if (SPI0_CS8_P20_6 == cs_pin) return gpio_get(P20_6);
else if (SPI0_CS9_P20_3 == cs_pin) return gpio_get(P20_3);
else if (SPI0_CS13_P15_0 == cs_pin) return gpio_get(P15_0);
else if (SPI1_CS0_P20_8 == cs_pin) return gpio_get(P20_8);
else if (SPI1_CS1_P20_9 == cs_pin) return gpio_get(P20_9);
else if (SPI1_CS2_P20_13 == cs_pin) return gpio_get(P20_13);
else if (SPI1_CS3_P11_10 == cs_pin) return gpio_get(P11_10);
else if (SPI1_CS4_P11_11 == cs_pin) return gpio_get(P11_11);
else if (SPI1_CS5_P11_2 == cs_pin) return gpio_get(P11_2);
else if (SPI1_CS6_P33_10 == cs_pin) return gpio_get(P33_10);
else if (SPI1_CS7_P33_5 == cs_pin) return gpio_get(P33_5);
else if (SPI1_CS8_P10_4 == cs_pin) return gpio_get(P10_4);
else if (SPI1_CS9_P10_5 == cs_pin) return gpio_get(P10_5);
else if (SPI1_CS10_P10_0 == cs_pin) return gpio_get(P10_0);
else if (SPI2_CS0_P15_2 == cs_pin) return gpio_get(P15_2);
else if (SPI2_CS1_P14_2 == cs_pin) return gpio_get(P14_2);
else if (SPI2_CS2_P14_6 == cs_pin) return gpio_get(P14_6);
else if (SPI2_CS3_P14_3 == cs_pin) return gpio_get(P14_3);
else if (SPI2_CS5_P15_1 == cs_pin) return gpio_get(P15_1);
else if (SPI2_CS6_P33_13 == cs_pin) return gpio_get(P33_13);
else if (SPI2_CS7_P20_10 == cs_pin) return gpio_get(P20_10);
else if (SPI2_CS8_P20_6 == cs_pin) return gpio_get(P20_6);
else if (SPI2_CS9_P20_3 == cs_pin) return gpio_get(P20_3);
else if (SPI3_CS0_P02_4 == cs_pin) return gpio_get(P02_4);
else if (SPI3_CS1_P02_0 == cs_pin) return gpio_get(P02_0);
else if (SPI3_CS1_P33_9 == cs_pin) return gpio_get(P33_9);
else if (SPI3_CS2_P02_1 == cs_pin) return gpio_get(P02_1);
else if (SPI3_CS2_P33_8 == cs_pin) return gpio_get(P33_8);
else if (SPI3_CS3_P02_2 == cs_pin) return gpio_get(P02_2);
else if (SPI3_CS4_P02_3 == cs_pin) return gpio_get(P02_3);
else if (SPI3_CS4_P23_5 == cs_pin) return gpio_get(P23_5);
else if (SPI3_CS5_P02_8 == cs_pin) return gpio_get(P02_8);
else if (SPI3_CS6_P00_8 == cs_pin) return gpio_get(P00_8);
else if (SPI3_CS7_P00_9 == cs_pin) return gpio_get(P00_9);
else if (SPI3_CS7_P33_7 == cs_pin) return gpio_get(P33_7);
else if (SPI3_CS8_P10_5 == cs_pin) return gpio_get(P10_5);
else if (SPI3_CS11_P33_10 == cs_pin) return gpio_get(P33_10);
else if (SPI3_CS12_P22_2 == cs_pin) return gpio_get(P22_2);
else if (SPI3_CS13_P23_1 == cs_pin) return gpio_get(P23_1);
else
{
ZF_ASSERT(FALSE);
return 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>CS<43><53><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>
}
}
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
@@ -335,6 +390,7 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
while(moudle->STATUS.B.RXFIFOLEVEL == 0); while(moudle->STATUS.B.RXFIFOLEVEL == 0);
*midata = (uint8)IfxQspi_readReceiveFifo(moudle); *midata = (uint8)IfxQspi_readReceiveFifo(moudle);
} }
while(!get_spi_cs_pin(cs_pin));
} }

View File

@@ -264,7 +264,7 @@ void lcd_init(void)
lcd_writeData(0x05); lcd_writeData(0x05);
lcd_writeIndex(0x29); lcd_writeIndex(0x29);
lcd_clear(WHITE);//ȫ<><C8AB> lcd_clear(RGB565_WHITE);//ȫ<><C8AB>
} }
@@ -550,7 +550,7 @@ void showimage(const unsigned char *p)
{ {
int i,j,k; int i,j,k;
unsigned char picH,picL; unsigned char picH,picL;
lcd_clear(WHITE); //<2F><><EFBFBD><EFBFBD> lcd_clear(RGB565_WHITE); //<2F><><EFBFBD><EFBFBD>
for(k=0;k<4;k++) for(k=0;k<4;k++)
{ {
@@ -716,8 +716,8 @@ void lcd_displayimage7725(uint8 *p, uint16 width, uint16 height)
p++; p++;
for(j=0; j<8; j++) for(j=0; j<8; j++)
{ {
if( (temp<<j)&0x80 ) lcd_writedata_16bit(WHITE); if( (temp<<j)&0x80 ) lcd_writedata_16bit(RGB565_WHITE);
else lcd_writedata_16bit(BLACK); else lcd_writedata_16bit(RGB565_BLACK);
} }
} }
} }

View File

@@ -78,10 +78,10 @@
//<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ
#define TFT_PENCOLOR RED #define TFT_PENCOLOR RGB565_RED
//<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ
#define TFT_BGCOLOR WHITE #define TFT_BGCOLOR RGB565_WHITE

View File

@@ -26,16 +26,16 @@
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ---------- //-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ----------
#define RED 0xF800 //<2F><>ɫ #define RGB565_RED 0xF800 //<2F><>ɫ
#define BLUE 0x001F //<2F><>ɫ #define RGB565_BLUE 0x001F //<2F><>ɫ
#define YELLOW 0xFFE0 //<2F><>ɫ #define RGB565_YELLOW 0xFFE0 //<2F><>ɫ
#define GREEN 0x07E0 //<2F><>ɫ #define RGB565_GREEN 0x07E0 //<2F><>ɫ
#define WHITE 0xFFFF //<2F><>ɫ #define RGB565_WHITE 0xFFFF //<2F><>ɫ
#define BLACK 0x0000 //<2F><>ɫ #define RGB565_BLACK 0x0000 //<2F><>ɫ
#define GRAY 0X8430 //<2F><>ɫ #define RGB565_GRAY 0X8430 //<2F><>ɫ
#define BROWN 0XBC40 //<2F><>ɫ #define RGB565_BROWN 0XBC40 //<2F><>ɫ
#define PURPLE 0XF81F //<2F><>ɫ #define RGB565_PURPLE 0XF81F //<2F><>ɫ
#define PINK 0XFE19 //<2F><>ɫ #define RGB565_PINK 0XFE19 //<2F><>ɫ
extern const uint8 tft_ascii[95][16]; extern const uint8 tft_ascii[95][16];

View File

@@ -726,8 +726,8 @@ void ips114_displayimage7725(uint8 *p, uint16 width, uint16 height)
p++; p++;
for(j=0; j<8; j++) for(j=0; j<8; j++)
{ {
if( (temp<<j)&0x80 ) ips114_writedata_16bit(WHITE); if( (temp<<j)&0x80 ) ips114_writedata_16bit(RGB565_WHITE);
else ips114_writedata_16bit(BLACK); else ips114_writedata_16bit(RGB565_BLACK);
} }
} }
} }

View File

@@ -77,10 +77,10 @@
//<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ
#define IPS114_PENCOLOR RED #define IPS114_PENCOLOR RGB565_RED
//<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ
#define IPS114_BGCOLOR WHITE #define IPS114_BGCOLOR RGB565_WHITE

View File

@@ -11,56 +11,50 @@
* @company * @company
* @author (QQ3184284598) * @author (QQ3184284598)
* @version doc内version文件 * @version doc内version文件
* @Software ADS v1.2.2 * @Software ADS v1.5.2
* @Target core TC264D * @Target core TC264
* @Taobao https://seekfree.taobao.com/ * @Taobao https://seekfree.taobao.com/
* @date 2020-3-23 * @date 2022-05-07
* @note * @note
线 线
------------------------------------ ------------------------------------------------------------------------
*
D0 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D0_PIN * // 双排排针 并口两寸屏 硬件引脚
D1 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D1_PIN * RD SEEKFREE_IPS200.h IPS200_RD_PIN_PARALLEL8
D2 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D2_PIN * WR SEEKFREE_IPS200.h IPS200_WR_PIN_PARALLEL8
D3 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D3_PIN * RS SEEKFREE_IPS200.h IPS200_RS_PIN_PARALLEL8
D4 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D4_PIN * RST SEEKFREE_IPS200.h IPS200_RST_PIN_PARALLEL8
D5 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D5_PIN * CS SEEKFREE_IPS200.h IPS200_CS_PIN_PARALLEL8
D6 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D6_PIN * BL SEEKFREE_IPS200.h IPS200_BL_PIN_PARALLEL8
D7 SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_D7_PIN * D0-D7 SEEKFREE_IPS200.h IPS200_Dx_PIN_PARALLEL8
* VCC 3.3V电源
BL SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_BL_PIN * GND
CS SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_CS_PIN * // 单排排针 SPI 两寸屏 硬件引脚
RD SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_RD_PIN * SCL SEEKFREE_IPS200.h IPS200_SCL_PIN_SPI
WR SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_WR_PIN * SDA SEEKFREE_IPS200.h IPS200_SDA_PIN_SPI
RS SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_RS_PIN * RST SEEKFREE_IPS200.h IPS200_RST_PIN_SPI
RST SEEKFREE_IPS200_PARALLEL8.H文件内的IPS200_RST_PIN * DC SEEKFREE_IPS200.h IPS200_DC_PIN_SPI
* CS SEEKFREE_IPS200.h IPS200_CS_PIN_SPI
* BL SEEKFREE_IPS200.h IPS200_BL_PIN_SPI
VCC 3.3V电源 * VCC 3.3V电源
GND * GND
240*320 * 320 * 240
------------------------------------ * ------------------------------------------------------------------------
********************************************************************************************************************/ ********************************************************************************************************************/
#include "stdlib.h" #include "SEEKFREE_IPS200.h"
#include "string.h"
#include "stdio.h"
#include "zf_stm_systick.h"
#include "zf_gpio.h"
#include "zf_assert.h"
#include "SEEKFREE_PRINTF.h"
#include "SEEKFREE_IPS200_PARALLEL8.h"
static ips200_type_enum ips200_display_type = IPS200_TYPE_SPI;
static PIN_enum ips_rst_pin = IPS200_RST_PIN_SPI;
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心 // @brief 内部调用,用户无需关心
// @param void // @param dat 数据
// @return // @return
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
void ips200_w_data(uint8 dat) //写数据 void ips200_w_data(uint8 dat) //写数据
{ {
IPS200_DATAPORT1 = (dat << DATA_START_NUM1) | (IPS200_DATAPORT1 & ~((uint32)(0x0F << DATA_START_NUM1)) ); IPS200_DATAPORT1 = (dat << DATA_START_NUM1) | (IPS200_DATAPORT1 & ~((uint32)(0x0F << DATA_START_NUM1)) );
IPS200_DATAPORT2 = ((dat>>4) << DATA_START_NUM2) | (IPS200_DATAPORT2 & ~((uint32)(0x0F << DATA_START_NUM2)) ); IPS200_DATAPORT2 = ((dat>>4) << DATA_START_NUM2) | (IPS200_DATAPORT2 & ~((uint32)(0x0F << DATA_START_NUM2)) );
@@ -69,67 +63,94 @@ void ips200_w_data(uint8 dat) //д
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心 // @brief 内部调用,用户无需关心
// @param void // @param command 命令
// @return // @return
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
void ips200_wr_reg(uint8 command) //写命令 void ips200_wr_reg(uint8 command) //写命令
{ {
IPS200_CS(0); if(IPS200_TYPE_SPI == ips200_display_type)
IPS200_RS(0); {
IPS200_RD(1); IPS200_DC(0);
IPS200_WR(0); spi_mosi(IPS200_SPIN,IPS200_CS_PIN_SPI,&command,NULL,1,1);
ips200_w_data(command); IPS200_DC(1);
IPS200_WR(1); }
IPS200_CS(1); else
{
IPS200_CS(0);
IPS200_RS(0);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(command);
IPS200_WR(1);
IPS200_CS(1);
}
} }
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心 // @brief 内部调用,用户无需关心
// @param void // @param dat 8位数据
// @return // @return
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
void ips200_wr_data(uint8 dat) //向液晶屏写一个8位数据 void ips200_wr_data(uint8 dat) //向液晶屏写一个8位数据
{ {
IPS200_CS(0); if(IPS200_TYPE_SPI == ips200_display_type)
IPS200_RS(1); {
IPS200_RD(1); spi_mosi(IPS200_SPIN,IPS200_CS_PIN_SPI,&dat,NULL,1,1);
IPS200_WR(0); }
ips200_w_data(dat); else
IPS200_WR(1); {
IPS200_CS(1); IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(dat);
IPS200_WR(1);
IPS200_CS(1);
}
} }
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心 // @brief 内部调用,用户无需关心
// @param void // @param dat 16位数据
// @return // @return
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
void ips200_wr_data16(uint16 dat) //向液晶屏写一个16位数据 void ips200_wr_data16(uint16 dat) //向液晶屏写一个16位数据
{ {
IPS200_CS(0); if(IPS200_TYPE_SPI == ips200_display_type)
IPS200_RS(1); {
IPS200_RD(1); uint8 dat1[2];
IPS200_WR(0); dat1[0] = dat >> 8;
ips200_w_data((uint8)(dat>>8)); dat1[1] = (uint8)dat;
IPS200_WR(1); spi_mosi(IPS200_SPIN,IPS200_CS_PIN_SPI,dat1,NULL,2,1);
IPS200_WR(0); }
ips200_w_data((uint8)(dat)); else
IPS200_WR(1); {
IPS200_CS(1); IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat>>8));
IPS200_WR(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat));
IPS200_WR(1);
IPS200_CS(1);
}
} }
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心 // @brief 内部调用,用户无需关心
// @param void // @param com 命令
// @param dat 数据
// @return // @return
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
@@ -143,8 +164,11 @@ void ips200_w_reg(uint8 com,uint8 dat) //д
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 内部调用,用户无需关心 // @brief 设置显示区域 内部调用
// @param void // @param x1 起始x轴坐标
// @param y1 起始y轴坐标
// @param x2 结束x轴坐标
// @param y2 结束y轴坐标
// @return // @return
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
@@ -165,28 +189,42 @@ void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2)
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// @brief 2.0寸 IPS液晶初始化 // @brief 2.0寸 IPS液晶初始化
// @return void // @return type_select 并口或者串口选择
// @since v1.0 // @since v1.0
// Sample usage: // Sample usage:
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
void ips200_init(void) void ips200_init(ips200_type_enum type_select)
{ {
gpio_init(IPS200_D0_PIN, GPO, 0, PUSHPULL); if(IPS200_TYPE_SPI == type_select)
gpio_init(IPS200_D1_PIN, GPO, 0, PUSHPULL); {
gpio_init(IPS200_D2_PIN, GPO, 0, PUSHPULL); ips200_display_type = IPS200_TYPE_SPI;
gpio_init(IPS200_D3_PIN, GPO, 0, PUSHPULL); ips_rst_pin = IPS200_RST_PIN_SPI;
gpio_init(IPS200_D4_PIN, GPO, 0, PUSHPULL); spi_init(IPS200_SPIN, IPS200_SCL_PIN_SPI, IPS200_SDA_PIN_SPI, IPS200_SDA_IN_PIN_SPI, IPS200_CS_PIN_SPI, 0, 30*1000*1000);//硬件SPI初始化
gpio_init(IPS200_D5_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D6_PIN, GPO, 0, PUSHPULL); gpio_init(IPS200_BL_PIN_SPI,GPO,1,PUSHPULL);
gpio_init(IPS200_D7_PIN, GPO, 0, PUSHPULL); gpio_init(IPS200_DC_PIN_SPI,GPO,0,PUSHPULL);
gpio_init(ips_rst_pin,GPO,0,PUSHPULL);
gpio_init(IPS200_BL_PIN, GPO, 0, PUSHPULL); }
gpio_init(IPS200_CS_PIN, GPO, 0, PUSHPULL); else
gpio_init(IPS200_RST_PIN, GPO, 0, PUSHPULL); {
gpio_init(IPS200_RS_PIN, GPO, 0, PUSHPULL); ips200_display_type = IPS200_TYPE_PARALLEL8;
gpio_init(IPS200_WR_PIN, GPO, 0, PUSHPULL); ips_rst_pin = IPS200_RST_PIN_PARALLEL8;
gpio_init(IPS200_RD_PIN, GPO, 0, PUSHPULL); gpio_init(IPS200_D0_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D1_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D2_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D3_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D4_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D5_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D6_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D7_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_BL_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_CS_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(ips_rst_pin, GPO, 0, PUSHPULL);
gpio_init(IPS200_RS_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_WR_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_RD_PIN_PARALLEL8, GPO, 0, PUSHPULL);
}
IPS200_BL(1); IPS200_BL(1);
IPS200_RST(0); IPS200_RST(0);
systick_delay_ms(STM0, 5); systick_delay_ms(STM0, 5);
@@ -203,9 +241,6 @@ void ips200_init(void)
else ips200_wr_data(0xA0); else ips200_wr_data(0xA0);
ips200_wr_reg(0x3A); ips200_wr_reg(0x3A);
ips200_wr_data(0x05); ips200_wr_data(0x05);
@@ -276,7 +311,7 @@ void ips200_init(void)
ips200_wr_reg(0x21); ips200_wr_reg(0x21);
ips200_wr_reg(0x29); ips200_wr_reg(0x29);
ips200_clear(IPS200_BGCOLOR); //初始化为白屏 ips200_clear(IPS200_BGCOLOR); //初始化为白屏
} }
@@ -844,8 +879,8 @@ void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height)
p++; p++;
for(j=0; j<8; j++) for(j=0; j<8; j++)
{ {
if( (temp<<j)&0x80 ) ips200_wr_data16(WHITE); if( (temp<<j)&0x80 ) ips200_wr_data16(RGB565_WHITE);
else ips200_wr_data16(BLACK); else ips200_wr_data16(RGB565_BLACK);
} }
} }
} }

View File

@@ -0,0 +1,199 @@
/*/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2020,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>824575535
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file 2.0<EFBFBD><EFBFBD>IPS<EFBFBD><EFBFBD>Ļ
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software ADS v1.5.2
* @Target core TC264
* @Taobao https://seekfree.taobao.com/
* @date 2020-05-07
* @note
<20><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------
* ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
* // ˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* RD <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RD_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* WR <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_WR_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* RS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RS_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* RST <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RST_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* CS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_CS_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* BL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_BL_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* D0-D7 <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_Dx_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* SCL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_SCL_PIN_SPI <20><EFBFBD><EAB6A8>
* SDA <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_SDA_PIN_SPI <20><EFBFBD><EAB6A8>
* RST <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RST_PIN_SPI <20><EFBFBD><EAB6A8>
* DC <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_DC_PIN_SPI <20><EFBFBD><EAB6A8>
* CS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_CS_PIN_SPI <20><EFBFBD><EAB6A8>
* BL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_BL_PIN_SPI <20><EFBFBD><EAB6A8>
* <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
* VCC 3.3V<EFBFBD><EFBFBD>Դ
* GND <20><>Դ<EFBFBD><D4B4>
* <20><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD> 320 * 240
* ------------------------------------
********************************************************************************************************************/
#ifndef _SEEKFREE_IPS200_H
#define _SEEKFREE_IPS200_H
#include "common.h"
#include "stdlib.h"
#include "string.h"
#include "stdio.h"
#include "zf_stm_systick.h"
#include "zf_gpio.h"
#include "zf_assert.h"
#include "SEEKFREE_PRINTF.h"
#include "zf_spi.h"
#include "SEEKFREE_FUN.h"
#include "SEEKFREE_FONT.h"
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>SEEKFREE_FONT.h<>ļ<EFBFBD><C4BC>ж<EFBFBD><D0B6><EFBFBD>----------
//#define RED 0xF800 //<2F><>ɫ
//#define BLUE 0x001F //<2F><>ɫ
//#define YELLOW 0xFFE0 //<2F><>ɫ
//#define GREEN 0x07E0 //<2F><>ɫ
//#define WHITE 0xFFFF //<2F><>ɫ
//#define BLACK 0x0000 //<2F><>ɫ
//#define GRAY 0X8430 //<2F><>ɫ
//#define BROWN 0XBC40 //<2F><>ɫ
//#define PURPLE 0XF81F //<2F><>ɫ
//#define PINK 0XFE19 //<2F><>ɫ
#define IPS200_BGCOLOR RGB565_WHITE //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
#define IPS200_PENCOLOR RGB565_RED //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
// <20><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
#define IPS200_SPIN SPI_2 //<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD>SPI<50><49>
#define IPS200_SCL_PIN_SPI SPI2_SCLK_P15_3 //<2F><><EFBFBD><EFBFBD>SPI_SCK<43><4B><EFBFBD><EFBFBD>
#define IPS200_SDA_PIN_SPI SPI2_MOSI_P15_5 //<2F><><EFBFBD><EFBFBD>SPI_MOSI<53><49><EFBFBD><EFBFBD>
#define IPS200_SDA_IN_PIN_SPI SPI2_MISO_P15_4 //<2F><><EFBFBD><EFBFBD>SPI_MISO<53><4F><EFBFBD><EFBFBD> IPSû<53><C3BB>MISO<53><4F><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><E5A3AC>spi<70>ij<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1>Ҫʹ<D2AA><CAB9>
#define IPS200_CS_PIN_SPI SPI2_CS0_P15_2 //<2F><><EFBFBD><EFBFBD>SPI_CS<43><53><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
#define IPS200_RST_PIN_SPI P15_1 // Һ<><D2BA><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD>
#define IPS200_DC_PIN_SPI P15_0
#define IPS200_BL_PIN_SPI P15_4
//<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
//<2F><><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ѡ<EFBFBD><D1A1>B C D<><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><CBBF>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
#define IPS200_RD_PIN_PARALLEL8 P15_3
#define IPS200_WR_PIN_PARALLEL8 P15_5
#define IPS200_RS_PIN_PARALLEL8 P15_1
#define IPS200_RST_PIN_PARALLEL8 P15_0
#define IPS200_CS_PIN_PARALLEL8 P15_2
#define IPS200_BL_PIN_PARALLEL8 P15_4
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õõ<C3B5>
//D0-D3<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>C0-C3,C1-C4<43>ȵȣ<C8B5>
//D4-D7<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>B0-B3,B1-B4<42>ȵȡ<C8B5>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>ͬ<EFBFBD>˿ڵ<CBBF><DAB5><EFBFBD>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>D0-D3<44><33>C1-C4<43><34><EFBFBD>ӣ<EFBFBD>D4-D7<44><37>B2-B5<42><35><EFBFBD>ӡ<EFBFBD>
//<2F>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD>ע<EFBFBD><D7A2><EFBFBD>޸<EFBFBD>IPS200_DATA_PORT1<54><31>IPS200_DATA_PORT2<54><EFBFBD><EAB6A8>
#define IPS200_D0_PIN_PARALLEL8 P11_9
#define IPS200_D1_PIN_PARALLEL8 P11_10
#define IPS200_D2_PIN_PARALLEL8 P11_11
#define IPS200_D3_PIN_PARALLEL8 P11_12
#define IPS200_D4_PIN_PARALLEL8 P13_0
#define IPS200_D5_PIN_PARALLEL8 P13_1
#define IPS200_D6_PIN_PARALLEL8 P13_2
#define IPS200_D7_PIN_PARALLEL8 P13_3
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ˿<DDB6><CBBF><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>и<EFBFBD><D0B8><EFBFBD>
#define IPS200_DATA_PORT1 3 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT1 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT1].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM1 (IPS200_D0_PIN_PARALLEL8&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_DATA_PORT2 4 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT2 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT2].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM2 (IPS200_D4_PIN_PARALLEL8&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_BL(x) gpio_set(IPS200_BL_PIN_PARALLEL8,x)
#define IPS200_CS(x) gpio_set(IPS200_CS_PIN_PARALLEL8,x)
#define IPS200_RD(x) gpio_set(IPS200_RD_PIN_PARALLEL8,x)
#define IPS200_WR(x) gpio_set(IPS200_WR_PIN_PARALLEL8,x)
#define IPS200_RS(x) gpio_set(IPS200_RS_PIN_PARALLEL8,x)
#define IPS200_RST(x) gpio_set(ips_rst_pin,x)
#define IPS200_DC(x) gpio_set(IPS200_DC_PIN_SPI,x)
#define IPS200_W 240
#define IPS200_H 320
typedef enum
{
IPS200_TYPE_SPI, // SPI <20><><EFBFBD><EFBFBD>
IPS200_TYPE_PARALLEL8, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}ips200_type_enum;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
//0 <20><><EFBFBD><EFBFBD>ģʽ
//1 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
//2 <20><><EFBFBD><EFBFBD>ģʽ
//3 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
#define IPS200_DISPLAY_DIR 0
#if (0==IPS200_DISPLAY_DIR || 1==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_W //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_H //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#elif (2==IPS200_DISPLAY_DIR || 3==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_H //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_W //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#else
#error "IPS200_DISPLAY_DIR <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#endif
void ips200_init(ips200_type_enum type_select); //<2F><>ʼ<EFBFBD><CABC>Ӳ<EFBFBD><D3B2>
void ips200_w_data(uint8 dat);
void ips200_wr_reg(uint8 com);
void ips200_wr_data(uint8 dat);
void ips200_wr_data16(uint16 dat);
void ips200_w_reg(uint8 com,uint8 dat);
void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2);
void ips200_clear(uint16 color);
void ips200_drawpoint(uint16 x,uint16 y,uint16 color);
void ips200_showchar(uint16 x,uint16 y,const int8 dat);
void ips200_showstr(uint16 x,uint16 y,const int8 dat[]);
void ips200_showint8(uint16 x,uint16 y,int8 dat);
void ips200_showuint8(uint16 x,uint16 y,uint8 dat);
void ips200_showint16(uint16 x,uint16 y,int16 dat);
void ips200_showuint16(uint16 x,uint16 y,uint16 dat);
void ips200_showint32(uint16 x,uint16 y,int dat,uint8 num);
void ips200_showfloat(uint16 x,uint16 y,double dat,int8 num,int8 pointnum);
void ips200_showimage(uint16 x,uint16 y,uint16 w,uint16 l,const unsigned char *p);
void ips200_displayimage032(uint8 *p, uint16 width, uint16 height);
void ips200_displayimage032_zoom(uint8 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage032_zoom1(uint8 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom1(uint16 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_grayscale_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height);
void ips200_display_chinese(uint16 x, uint16 y, uint8 size, const uint8 *p, uint8 number, uint16 color);
#endif

View File

@@ -1,180 +0,0 @@
/*/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2020,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>824575535
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file 2.0<EFBFBD><EFBFBD>IPS<EFBFBD><EFBFBD>Ļ
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software ADS v1.2.2
* @Target core TC264D
* @Taobao https://seekfree.taobao.com/
* @date 2020-3-23
* @note
<09><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------
ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <09><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
D0 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D0_PIN <20><EFBFBD><EAB6A8>
D1 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D1_PIN <20><EFBFBD><EAB6A8>
D2 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D2_PIN <20><EFBFBD><EAB6A8>
D3 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D3_PIN <20><EFBFBD><EAB6A8>
D4 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D4_PIN <20><EFBFBD><EAB6A8>
D5 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D5_PIN <20><EFBFBD><EAB6A8>
D6 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D6_PIN <20><EFBFBD><EAB6A8>
D7 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D7_PIN <20><EFBFBD><EAB6A8>
BL <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_BL_PIN <20><EFBFBD><EAB6A8>
CS <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_CS_PIN <20><EFBFBD><EAB6A8>
RD <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RD_PIN <20><EFBFBD><EAB6A8>
WR <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_WR_PIN <20><EFBFBD><EAB6A8>
RS <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RS_PIN <20><EFBFBD><EAB6A8>
RST <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RST_PIN <20><EFBFBD><EAB6A8>
<09><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
VCC 3.3V<EFBFBD><EFBFBD>Դ
GND <20><>Դ<EFBFBD><D4B4>
<09><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>240*320
------------------------------------
********************************************************************************************************************/
#ifndef _SEEKFREE_IPS200PARALLEL8_H
#define _SEEKFREE_IPS200PARALLEL8_H
#include "common.h"
#include "SEEKFREE_FONT.h"
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>SEEKFREE_FONT.h<>ļ<EFBFBD><C4BC>ж<EFBFBD><D0B6><EFBFBD>----------
//#define RED 0xF800 //<2F><>ɫ
//#define BLUE 0x001F //<2F><>ɫ
//#define YELLOW 0xFFE0 //<2F><>ɫ
//#define GREEN 0x07E0 //<2F><>ɫ
//#define WHITE 0xFFFF //<2F><>ɫ
//#define BLACK 0x0000 //<2F><>ɫ
//#define GRAY 0X8430 //<2F><>ɫ
//#define BROWN 0XBC40 //<2F><>ɫ
//#define PURPLE 0XF81F //<2F><>ɫ
//#define PINK 0XFE19 //<2F><>ɫ
#define IPS200_BGCOLOR WHITE //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
#define IPS200_PENCOLOR RED //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
//<2F><><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ѡ<EFBFBD><D1A1>B C D<><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><CBBF>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
#define IPS200_RD_PIN P15_3
#define IPS200_WR_PIN P15_5
#define IPS200_RS_PIN P15_1
#define IPS200_RST_PIN P15_0
#define IPS200_CS_PIN P15_2
#define IPS200_BL_PIN P15_4
//D0-D3<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>C0-C3,C1-C4<43>ȵȣ<C8B5>
//D4-D7<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>B0-B3,B1-B4<42>ȵȡ<C8B5>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>ͬ<EFBFBD>˿ڵ<CBBF><DAB5><EFBFBD>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>D0-D3<44><33>C1-C4<43><34><EFBFBD>ӣ<EFBFBD>D4-D7<44><37>B2-B5<42><35><EFBFBD>ӡ<EFBFBD>
//<2F>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD>ע<EFBFBD><D7A2><EFBFBD>޸<EFBFBD>IPS200_DATA_PORT1<54><31>IPS200_DATA_PORT2<54><EFBFBD><EAB6A8>
#define IPS200_D0_PIN P11_9
#define IPS200_D1_PIN P11_10
#define IPS200_D2_PIN P11_11
#define IPS200_D3_PIN P11_12
#define IPS200_D4_PIN P13_0
#define IPS200_D5_PIN P13_1
#define IPS200_D6_PIN P13_2
#define IPS200_D7_PIN P13_3
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ˿<DDB6><CBBF><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>и<EFBFBD><D0B8><EFBFBD>
#define IPS200_DATA_PORT1 3 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT1 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT1].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM1 (IPS200_D0_PIN&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_DATA_PORT2 4 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT2 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT2].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM2 (IPS200_D4_PIN&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_BL(x) gpio_set(IPS200_BL_PIN,x)
#define IPS200_CS(x) gpio_set(IPS200_CS_PIN,x)
#define IPS200_RD(x) gpio_set(IPS200_RD_PIN,x)
#define IPS200_WR(x) gpio_set(IPS200_WR_PIN,x)
#define IPS200_RS(x) gpio_set(IPS200_RS_PIN,x)
#define IPS200_RST(x) gpio_set(IPS200_RST_PIN,x)
#define IPS200_W 240
#define IPS200_H 320
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
//0 <20><><EFBFBD><EFBFBD>ģʽ
//1 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
//2 <20><><EFBFBD><EFBFBD>ģʽ
//3 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
#define IPS200_DISPLAY_DIR 0
#if (0==IPS200_DISPLAY_DIR || 1==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_W //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_H //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#elif (2==IPS200_DISPLAY_DIR || 3==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_H //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_W //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#else
#error "IPS200_DISPLAY_DIR <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#endif
void ips200_init(void); //<2F><>ʼ<EFBFBD><CABC>Ӳ<EFBFBD><D3B2>
void ips200_w_data(uint8 dat);
void ips200_wr_reg(uint8 com);
void ips200_wr_data(uint8 dat);
void ips200_wr_data16(uint16 dat);
void ips200_w_reg(uint8 com,uint8 dat);
void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2);
void ips200_clear(uint16 color);
void ips200_drawpoint(uint16 x,uint16 y,uint16 color);
void ips200_showchar(uint16 x,uint16 y,const int8 dat);
void ips200_showstr(uint16 x,uint16 y,const int8 dat[]);
void ips200_showint8(uint16 x,uint16 y,int8 dat);
void ips200_showuint8(uint16 x,uint16 y,uint8 dat);
void ips200_showint16(uint16 x,uint16 y,int16 dat);
void ips200_showuint16(uint16 x,uint16 y,uint16 dat);
void ips200_showint32(uint16 x,uint16 y,int dat,uint8 num);
void ips200_showfloat(uint16 x,uint16 y,double dat,int8 num,int8 pointnum);
void ips200_showimage(uint16 x,uint16 y,uint16 w,uint16 l,const unsigned char *p);
void ips200_displayimage032(uint8 *p, uint16 width, uint16 height);
void ips200_displayimage032_zoom(uint8 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage032_zoom1(uint8 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom1(uint16 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_grayscale_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height);
void ips200_display_chinese(uint16 x, uint16 y, uint8 size, const uint8 *p, uint8 number, uint16 color);
#endif

View File

@@ -1,3 +1,5 @@
V1.2.9
ɾ<><C9BE>SEEKFREE_IPS200_PARALLEL8<4C>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SEEKFREE_IPS200<30><30><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD>е<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
V1.2.8 V1.2.8
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD><EFBFBD>PCLK_MODE<44><45>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>λ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD><EFBFBD>PCLK_MODE<44><45>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>λ

View File

@@ -61,7 +61,7 @@
#include "SEEKFREE_MMA8451.h" #include "SEEKFREE_MMA8451.h"
#include "SEEKFREE_L3G4200D.h" #include "SEEKFREE_L3G4200D.h"
#include "SEEKFREE_WIRELESS.h" #include "SEEKFREE_WIRELESS.h"
#include "SEEKFREE_IPS200_PARALLEL8.h" #include "SEEKFREE_IPS200.h"
#include "SEEKFREE_7725.h" #include "SEEKFREE_7725.h"
#include "SEEKFREE_RDA5807.h" #include "SEEKFREE_RDA5807.h"
#include "SEEKFREE_7725_UART.h" #include "SEEKFREE_7725_UART.h"

View File

@@ -24,7 +24,7 @@
#include "IfxQspi.h" #include "IfxQspi.h"
#include "zf_assert.h" #include "zf_assert.h"
#include "zf_spi.h" #include "zf_spi.h"
#include "zf_gpio.h"
#define MAX_BAUD 50000000 #define MAX_BAUD 50000000
@@ -183,7 +183,62 @@ void spi_mux(SPIN_enum spi_n, SPI_PIN_enum sck_pin, SPI_PIN_enum mosi_pin, SPI_P
} }
uint8 get_spi_cs_pin(SPI_PIN_enum cs_pin)
{
if (SPI0_CS0_P20_8 == cs_pin) return gpio_get(P20_8);
else if (SPI0_CS1_P20_9 == cs_pin) return gpio_get(P20_9);
else if (SPI0_CS2_P20_13 == cs_pin) return gpio_get(P20_13);
else if (SPI0_CS3_P11_10 == cs_pin) return gpio_get(P11_10);
else if (SPI0_CS4_P11_11 == cs_pin) return gpio_get(P11_11);
else if (SPI0_CS5_P11_2 == cs_pin) return gpio_get(P11_2);
else if (SPI0_CS6_P20_10 == cs_pin) return gpio_get(P20_10);
else if (SPI0_CS7_P33_5 == cs_pin) return gpio_get(P33_5);
else if (SPI0_CS8_P20_6 == cs_pin) return gpio_get(P20_6);
else if (SPI0_CS9_P20_3 == cs_pin) return gpio_get(P20_3);
else if (SPI0_CS13_P15_0 == cs_pin) return gpio_get(P15_0);
else if (SPI1_CS0_P20_8 == cs_pin) return gpio_get(P20_8);
else if (SPI1_CS1_P20_9 == cs_pin) return gpio_get(P20_9);
else if (SPI1_CS2_P20_13 == cs_pin) return gpio_get(P20_13);
else if (SPI1_CS3_P11_10 == cs_pin) return gpio_get(P11_10);
else if (SPI1_CS4_P11_11 == cs_pin) return gpio_get(P11_11);
else if (SPI1_CS5_P11_2 == cs_pin) return gpio_get(P11_2);
else if (SPI1_CS6_P33_10 == cs_pin) return gpio_get(P33_10);
else if (SPI1_CS7_P33_5 == cs_pin) return gpio_get(P33_5);
else if (SPI1_CS8_P10_4 == cs_pin) return gpio_get(P10_4);
else if (SPI1_CS9_P10_5 == cs_pin) return gpio_get(P10_5);
else if (SPI1_CS10_P10_0 == cs_pin) return gpio_get(P10_0);
else if (SPI2_CS0_P15_2 == cs_pin) return gpio_get(P15_2);
else if (SPI2_CS1_P14_2 == cs_pin) return gpio_get(P14_2);
else if (SPI2_CS2_P14_6 == cs_pin) return gpio_get(P14_6);
else if (SPI2_CS3_P14_3 == cs_pin) return gpio_get(P14_3);
else if (SPI2_CS5_P15_1 == cs_pin) return gpio_get(P15_1);
else if (SPI2_CS6_P33_13 == cs_pin) return gpio_get(P33_13);
else if (SPI2_CS7_P20_10 == cs_pin) return gpio_get(P20_10);
else if (SPI2_CS8_P20_6 == cs_pin) return gpio_get(P20_6);
else if (SPI2_CS9_P20_3 == cs_pin) return gpio_get(P20_3);
else if (SPI3_CS0_P02_4 == cs_pin) return gpio_get(P02_4);
else if (SPI3_CS1_P02_0 == cs_pin) return gpio_get(P02_0);
else if (SPI3_CS1_P33_9 == cs_pin) return gpio_get(P33_9);
else if (SPI3_CS2_P02_1 == cs_pin) return gpio_get(P02_1);
else if (SPI3_CS2_P33_8 == cs_pin) return gpio_get(P33_8);
else if (SPI3_CS3_P02_2 == cs_pin) return gpio_get(P02_2);
else if (SPI3_CS4_P02_3 == cs_pin) return gpio_get(P02_3);
else if (SPI3_CS4_P23_5 == cs_pin) return gpio_get(P23_5);
else if (SPI3_CS5_P02_8 == cs_pin) return gpio_get(P02_8);
else if (SPI3_CS6_P00_8 == cs_pin) return gpio_get(P00_8);
else if (SPI3_CS7_P00_9 == cs_pin) return gpio_get(P00_9);
else if (SPI3_CS7_P33_7 == cs_pin) return gpio_get(P33_7);
else if (SPI3_CS8_P10_5 == cs_pin) return gpio_get(P10_5);
else if (SPI3_CS11_P33_10 == cs_pin) return gpio_get(P33_10);
else if (SPI3_CS12_P22_2 == cs_pin) return gpio_get(P22_2);
else if (SPI3_CS13_P23_1 == cs_pin) return gpio_get(P23_1);
else
{
ZF_ASSERT(FALSE);
return 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>CS<43><53><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>
}
}
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
@@ -335,6 +390,7 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
while(moudle->STATUS.B.RXFIFOLEVEL == 0); while(moudle->STATUS.B.RXFIFOLEVEL == 0);
*midata = (uint8)IfxQspi_readReceiveFifo(moudle); *midata = (uint8)IfxQspi_readReceiveFifo(moudle);
} }
while(!get_spi_cs_pin(cs_pin));
} }

View File

@@ -264,7 +264,7 @@ void lcd_init(void)
lcd_writeData(0x05); lcd_writeData(0x05);
lcd_writeIndex(0x29); lcd_writeIndex(0x29);
lcd_clear(WHITE);//ȫ<><C8AB> lcd_clear(RGB565_WHITE);//ȫ<><C8AB>
} }
@@ -550,7 +550,7 @@ void showimage(const unsigned char *p)
{ {
int i,j,k; int i,j,k;
unsigned char picH,picL; unsigned char picH,picL;
lcd_clear(WHITE); //<2F><><EFBFBD><EFBFBD> lcd_clear(RGB565_WHITE); //<2F><><EFBFBD><EFBFBD>
for(k=0;k<4;k++) for(k=0;k<4;k++)
{ {
@@ -716,8 +716,8 @@ void lcd_displayimage7725(uint8 *p, uint16 width, uint16 height)
p++; p++;
for(j=0; j<8; j++) for(j=0; j<8; j++)
{ {
if( (temp<<j)&0x80 ) lcd_writedata_16bit(WHITE); if( (temp<<j)&0x80 ) lcd_writedata_16bit(RGB565_WHITE);
else lcd_writedata_16bit(BLACK); else lcd_writedata_16bit(RGB565_BLACK);
} }
} }
} }

View File

@@ -78,10 +78,10 @@
//<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ
#define TFT_PENCOLOR RED #define TFT_PENCOLOR RGB565_RED
//<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ
#define TFT_BGCOLOR WHITE #define TFT_BGCOLOR RGB565_WHITE

View File

@@ -26,16 +26,16 @@
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ---------- //-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ----------
#define RED 0xF800 //<2F><>ɫ #define RGB565_RED 0xF800 //<2F><>ɫ
#define BLUE 0x001F //<2F><>ɫ #define RGB565_BLUE 0x001F //<2F><>ɫ
#define YELLOW 0xFFE0 //<2F><>ɫ #define RGB565_YELLOW 0xFFE0 //<2F><>ɫ
#define GREEN 0x07E0 //<2F><>ɫ #define RGB565_GREEN 0x07E0 //<2F><>ɫ
#define WHITE 0xFFFF //<2F><>ɫ #define RGB565_WHITE 0xFFFF //<2F><>ɫ
#define BLACK 0x0000 //<2F><>ɫ #define RGB565_BLACK 0x0000 //<2F><>ɫ
#define GRAY 0X8430 //<2F><>ɫ #define RGB565_GRAY 0X8430 //<2F><>ɫ
#define BROWN 0XBC40 //<2F><>ɫ #define RGB565_BROWN 0XBC40 //<2F><>ɫ
#define PURPLE 0XF81F //<2F><>ɫ #define RGB565_PURPLE 0XF81F //<2F><>ɫ
#define PINK 0XFE19 //<2F><>ɫ #define RGB565_PINK 0XFE19 //<2F><>ɫ
extern const uint8 tft_ascii[95][16]; extern const uint8 tft_ascii[95][16];

View File

@@ -726,8 +726,8 @@ void ips114_displayimage7725(uint8 *p, uint16 width, uint16 height)
p++; p++;
for(j=0; j<8; j++) for(j=0; j<8; j++)
{ {
if( (temp<<j)&0x80 ) ips114_writedata_16bit(WHITE); if( (temp<<j)&0x80 ) ips114_writedata_16bit(RGB565_WHITE);
else ips114_writedata_16bit(BLACK); else ips114_writedata_16bit(RGB565_BLACK);
} }
} }
} }

View File

@@ -77,10 +77,10 @@
//<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ
#define IPS114_PENCOLOR RED #define IPS114_PENCOLOR RGB565_RED
//<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ
#define IPS114_BGCOLOR WHITE #define IPS114_BGCOLOR RGB565_WHITE

View File

@@ -0,0 +1,931 @@
/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2020,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>824575535
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file 2.0<EFBFBD><EFBFBD>IPS<EFBFBD><EFBFBD>Ļ
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software ADS v1.5.2
* @Target core TC264
* @Taobao https://seekfree.taobao.com/
* @date 2022-05-07
* @note
<20><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------------------------------------------
* ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
* // ˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* RD <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RD_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* WR <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_WR_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* RS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RS_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* RST <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RST_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* CS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_CS_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* BL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_BL_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* D0-D7 <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_Dx_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* VCC 3.3V<EFBFBD><EFBFBD>Դ
* GND <20><>Դ<EFBFBD><D4B4>
* // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* SCL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_SCL_PIN_SPI <20><EFBFBD><EAB6A8>
* SDA <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_SDA_PIN_SPI <20><EFBFBD><EAB6A8>
* RST <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RST_PIN_SPI <20><EFBFBD><EAB6A8>
* DC <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_DC_PIN_SPI <20><EFBFBD><EAB6A8>
* CS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_CS_PIN_SPI <20><EFBFBD><EAB6A8>
* BL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_BL_PIN_SPI <20><EFBFBD><EAB6A8>
* VCC 3.3V<EFBFBD><EFBFBD>Դ
* GND <20><>Դ<EFBFBD><D4B4>
* <20><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD> 320 * 240
* ------------------------------------------------------------------------
********************************************************************************************************************/
#include "SEEKFREE_IPS200.h"
static ips200_type_enum ips200_display_type = IPS200_TYPE_SPI;
static PIN_enum ips_rst_pin = IPS200_RST_PIN_SPI;
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dat <20><><EFBFBD><EFBFBD>
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_w_data(uint8 dat) //д<><D0B4><EFBFBD><EFBFBD>
{
IPS200_DATAPORT1 = (dat << DATA_START_NUM1) | (IPS200_DATAPORT1 & ~((uint32)(0x0F << DATA_START_NUM1)) );
IPS200_DATAPORT2 = ((dat>>4) << DATA_START_NUM2) | (IPS200_DATAPORT2 & ~((uint32)(0x0F << DATA_START_NUM2)) );
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param command <20><><EFBFBD><EFBFBD>
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_wr_reg(uint8 command) //д<><D0B4><EFBFBD><EFBFBD>
{
if(IPS200_TYPE_SPI == ips200_display_type)
{
IPS200_DC(0);
spi_mosi(IPS200_SPIN,IPS200_CS_PIN_SPI,&command,NULL,1,1);
IPS200_DC(1);
}
else
{
IPS200_CS(0);
IPS200_RS(0);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(command);
IPS200_WR(1);
IPS200_CS(1);
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dat 8λ<38><CEBB><EFBFBD><EFBFBD>
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_wr_data(uint8 dat) //<2F><>Һ<EFBFBD><D2BA><EFBFBD><EFBFBD>дһ<D0B4><D2BB><38><CEBB><EFBFBD><EFBFBD>
{
if(IPS200_TYPE_SPI == ips200_display_type)
{
spi_mosi(IPS200_SPIN,IPS200_CS_PIN_SPI,&dat,NULL,1,1);
}
else
{
IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(dat);
IPS200_WR(1);
IPS200_CS(1);
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dat 16λ<36><CEBB><EFBFBD><EFBFBD>
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_wr_data16(uint16 dat) //<2F><>Һ<EFBFBD><D2BA><EFBFBD><EFBFBD>дһ<D0B4><D2BB>16λ<36><CEBB><EFBFBD><EFBFBD>
{
if(IPS200_TYPE_SPI == ips200_display_type)
{
uint8 dat1[2];
dat1[0] = dat >> 8;
dat1[1] = (uint8)dat;
spi_mosi(IPS200_SPIN,IPS200_CS_PIN_SPI,dat1,NULL,2,1);
}
else
{
IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat>>8));
IPS200_WR(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat));
IPS200_WR(1);
IPS200_CS(1);
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param com <20><><EFBFBD><EFBFBD>
// @param dat <20><><EFBFBD><EFBFBD>
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_w_reg(uint8 com,uint8 dat) //д<>Ĵ<EFBFBD><C4B4><EFBFBD>
{
ips200_wr_reg(com);
ips200_wr_data(dat);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
// @param x1 <20><>ʼx<CABC><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param y1 <20><>ʼy<CABC><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param x2 <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param y2 <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2)
{
ips200_wr_reg(0x2a);
ips200_wr_data16(x1);
ips200_wr_data16(x2);
ips200_wr_reg(0x2b);
ips200_wr_data16(y1);
ips200_wr_data16(y2);
ips200_wr_reg(0x2c);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief 2.0<EFBFBD><EFBFBD> IPSҺ<53><D2BA><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
// @return type_select <20><><EFBFBD>ڻ<EFBFBD><DABB>ߴ<EFBFBD><DFB4><EFBFBD>ѡ<EFBFBD><D1A1>
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_init(ips200_type_enum type_select)
{
if(IPS200_TYPE_SPI == type_select)
{
ips200_display_type = IPS200_TYPE_SPI;
ips_rst_pin = IPS200_RST_PIN_SPI;
spi_init(IPS200_SPIN, IPS200_SCL_PIN_SPI, IPS200_SDA_PIN_SPI, IPS200_SDA_IN_PIN_SPI, IPS200_CS_PIN_SPI, 0, 30*1000*1000);//Ӳ<><D3B2>SPI<50><49>ʼ<EFBFBD><CABC>
gpio_init(IPS200_BL_PIN_SPI,GPO,1,PUSHPULL);
gpio_init(IPS200_DC_PIN_SPI,GPO,0,PUSHPULL);
gpio_init(ips_rst_pin,GPO,0,PUSHPULL);
}
else
{
ips200_display_type = IPS200_TYPE_PARALLEL8;
ips_rst_pin = IPS200_RST_PIN_PARALLEL8;
gpio_init(IPS200_D0_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D1_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D2_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D3_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D4_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D5_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D6_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D7_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_BL_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_CS_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(ips_rst_pin, GPO, 0, PUSHPULL);
gpio_init(IPS200_RS_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_WR_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_RD_PIN_PARALLEL8, GPO, 0, PUSHPULL);
}
IPS200_BL(1);
IPS200_RST(0);
systick_delay_ms(STM0, 5);
IPS200_RST(1);
systick_delay_ms(STM0, 5);
ips200_wr_reg(0x11);
systick_delay_ms(STM0, 120);
ips200_wr_reg(0x36);
if (IPS200_DISPLAY_DIR==0) ips200_wr_data(0x00);
else if (IPS200_DISPLAY_DIR==1) ips200_wr_data(0xC0);
else if (IPS200_DISPLAY_DIR==2) ips200_wr_data(0x70);
else ips200_wr_data(0xA0);
ips200_wr_reg(0x3A);
ips200_wr_data(0x05);
ips200_wr_reg(0xB2);
ips200_wr_data(0x0C);
ips200_wr_data(0x0C);
ips200_wr_data(0x00);
ips200_wr_data(0x33);
ips200_wr_data(0x33);
ips200_wr_reg(0xB7);
ips200_wr_data(0x35);
ips200_wr_reg(0xBB);
ips200_wr_data(0x29); //32 Vcom=1.35V
ips200_wr_reg(0xC2);
ips200_wr_data(0x01);
ips200_wr_reg(0xC3);
ips200_wr_data(0x19); //GVDD=4.8V
ips200_wr_reg(0xC4);
ips200_wr_data(0x20); //VDV, 0x20:0v
ips200_wr_reg(0xC5);
ips200_wr_data(0x1A);//VCOM Offset Set
ips200_wr_reg(0xC6);
ips200_wr_data(0x01F); //0x0F:60Hz
ips200_wr_reg(0xD0);
ips200_wr_data(0xA4);
ips200_wr_data(0xA1);
ips200_wr_reg(0xE0);
ips200_wr_data(0xD0);
ips200_wr_data(0x08);
ips200_wr_data(0x0E);
ips200_wr_data(0x09);
ips200_wr_data(0x09);
ips200_wr_data(0x05);
ips200_wr_data(0x31);
ips200_wr_data(0x33);
ips200_wr_data(0x48);
ips200_wr_data(0x17);
ips200_wr_data(0x14);
ips200_wr_data(0x15);
ips200_wr_data(0x31);
ips200_wr_data(0x34);
ips200_wr_reg(0xE1);
ips200_wr_data(0xD0);
ips200_wr_data(0x08);
ips200_wr_data(0x0E);
ips200_wr_data(0x09);
ips200_wr_data(0x09);
ips200_wr_data(0x15);
ips200_wr_data(0x31);
ips200_wr_data(0x33);
ips200_wr_data(0x48);
ips200_wr_data(0x17);
ips200_wr_data(0x14);
ips200_wr_data(0x15);
ips200_wr_data(0x31);
ips200_wr_data(0x34);
ips200_wr_reg(0x21);
ips200_wr_reg(0x29);
ips200_clear(IPS200_BGCOLOR); //<2F><>ʼ<EFBFBD><CABC>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param color <09><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_clear(YELLOW);// ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ɫ
//-------------------------------------------------------------------------------------------------------------------
void ips200_clear(uint16 color)
{
uint16 i,j;
ips200_address_set(0,0,IPS200_X_MAX-1,IPS200_Y_MAX-1);
for(i=0;i<IPS200_X_MAX;i++)
{
for (j=0;j<IPS200_Y_MAX;j++)
{
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ɫ
// @return void
// @since v1.0
// Sample usage: ips200_drawpoint(0,0,RED); //<2F><><EFBFBD><EFBFBD>0,0<><30>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ɫ<EFBFBD>ĵ<EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_drawpoint(uint16 x,uint16 y,uint16 color)
{
ips200_address_set(x,y,x,y);
ips200_wr_data16(color);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD>ַ<EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_X_MAX-1)
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_Y_MAX/16-1)
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD>ַ<EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_showchar(0,0,'x');//<2F><><EFBFBD><EFBFBD>0,0дһ<D0B4><D2BB><EFBFBD>ַ<EFBFBD>x
//-------------------------------------------------------------------------------------------------------------------
void ips200_showchar(uint16 x,uint16 y,const int8 dat)
{
uint8 i,j;
uint8 temp;
for(i=0; i<16; i++)
{
ips200_address_set(x,y+i,x+7,y+i);
temp = tft_ascii[(uint16)dat-32][i];//<2F><>32<33><32>Ϊ<EFBFBD><CEAA>ȡģ<C8A1>Ǵӿո<D3BF><D5B8><EFBFBD>ʼȡ<CABC><C8A1> <20>ո<EFBFBD><D5B8><EFBFBD>ascii<69><69><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>32
for(j=0; j<8; j++)
{
if(temp&0x01) ips200_wr_data16(IPS200_PENCOLOR);
else ips200_wr_data16(IPS200_BGCOLOR);
temp>>=1;
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_X_MAX-1)
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_Y_MAX/16-1)
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_showstr(0,0,"seekfree");
//-------------------------------------------------------------------------------------------------------------------
void ips200_showstr(uint16 x,uint16 y,const int8 dat[])
{
uint16 j;
j = 0;
while(dat[j] != '\0')
{
ips200_showchar(x+8*j,y*16,dat[j]);
j++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<38>з<EFBFBD><D0B7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>int8
// @return void
// @since v1.0
// Sample usage: ips200_showint8(0,0,x);//xΪint8<74><38><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showint8(uint16 x,uint16 y,int8 dat)
{
uint8 a[3];
uint8 i;
if(dat<0)
{
ips200_showchar(x,y*16,'-');
dat = -dat;
}
else ips200_showchar(x,y*16,' ');
a[0] = dat/100;
a[1] = dat/10%10;
a[2] = dat%10;
i = 0;
while(i<3)
{
ips200_showchar(x+(8*(i+1)),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<38>޷<EFBFBD><DEB7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uint8
// @return void
// @since v1.0
// Sample usage: ips200_showuint8(0,0,x);//xΪuint8<74><38><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showuint8(uint16 x,uint16 y,uint8 dat)
{
uint8 a[3];
uint8 i;
a[0] = dat/100;
a[1] = dat/10%10;
a[2] = dat%10;
i = 0;
while(i<3)
{
ips200_showchar(x+(8*i),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ16λ<36>з<EFBFBD><D0B7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>int16
// @return void
// @since v1.0
// Sample usage: ips200_showint16(0,0,x);//xΪint16<31><36><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showint16(uint16 x,uint16 y,int16 dat)
{
uint8 a[5];
uint8 i;
if(dat<0)
{
ips200_showchar(x,y*16,'-');
dat = -dat;
}
else ips200_showchar(x,y*16,' ');
a[0] = dat/10000;
a[1] = dat/1000%10;
a[2] = dat/100%10;
a[3] = dat/10%10;
a[4] = dat%10;
i = 0;
while(i<5)
{
ips200_showchar(x+(8*(i+1)),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ16λ<36>޷<EFBFBD><DEB7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uint16
// @return void
// @since v1.0
// Sample usage: ips200_showuint16(0,0,x);//xΪuint16<31><36><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showuint16(uint16 x,uint16 y,uint16 dat)
{
uint8 a[5];
uint8 i;
a[0] = dat/10000;
a[1] = dat/1000%10;
a[2] = dat/100%10;
a[3] = dat/10%10;
a[4] = dat%10;
i = 0;
while(i<5)
{
ips200_showchar(x+(8*i),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ32λ<32>з<EFBFBD><D0B7><EFBFBD><><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>0)
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uint32
// @param num <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE>λ<EFBFBD><CEBB> <20><><EFBFBD><EFBFBD>10λ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_showint32(0,0,x,3);//x<><78><EFBFBD><EFBFBD>Ϊint32 uint16 int16 uint8 int8<74><38><EFBFBD><EFBFBD>
// Sample usage: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB> <20><>-<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB><EFBFBD>ո<EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showint32(uint16 x,uint16 y,int dat,uint8 num)
{
int8 buff[34];
uint32 length;
if(10<num) num = 10;
num++;
if(0>dat) length = zf_sprintf(&buff[0],"%d",dat);//<2F><><EFBFBD><EFBFBD>
else
{
buff[0] = ' ';
length = zf_sprintf(&buff[1],"%d",dat);
length++;
}
while(length < num)
{
buff[length] = ' ';
length++;
}
buff[num] = '\0';
ips200_showstr(x, y, buff); //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>0)
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>float<61><74>double
// @param num <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>10λ
// @param pointnum С<><D0A1>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips_showfloat(0,0,x,2,3);//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾС<><D0A1><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>λ
// @note <20>ر<EFBFBD>ע<EFBFBD><EFBFBD><E2B5B1><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD>µģ<C2B5><C4A3><EFBFBD><E2B2A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A3AC><EFBFBD><EFBFBD><EFBFBD>аٶ<D0B0>ѧϰ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB> <20><>-<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB><EFBFBD>ո<EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showfloat(uint16 x,uint16 y,double dat,int8 num,int8 pointnum)
{
uint32 length;
int8 buff[34];
int8 start,end,point;
if(6<pointnum) pointnum = 6;
if(10<num) num = 10;
if(0>dat) length = zf_sprintf( &buff[0],"%f",dat);//<2F><><EFBFBD><EFBFBD>
else
{
length = zf_sprintf( &buff[1],"%f",dat);
length++;
}
point = (int8)(length - 7); //<2F><><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
start = point - num - 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼλ
end = point + pointnum + 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
while(0>start)//<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> ĩβӦ<CEB2><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ո<EFBFBD>
{
buff[end] = ' ';
end++;
start++;
}
if(0>dat) buff[start] = '-';
else buff[start] = ' ';
buff[end] = '\0';
ips200_showstr(x, y, buff); //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<38>޷<EFBFBD><DEB7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param w ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param l ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @return void
// @since v1.0
// Sample usage: ips200_showimage(0,0,10,20,&image);//ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(0,0)<29><><EFBFBD><EFBFBD>10<31><30><EFBFBD><EFBFBD>20<32><30>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showimage(uint16 x,uint16 y,uint16 w,uint16 l,const unsigned char *p)
{
int i;
unsigned char picH,picL;
ips200_address_set(x,y,x+w-1,y+l-1);
for(i=0;i<w*l;i++)
{
picL=*(p+i*2);
picH=*(p+i*2+1);
ips200_wr_data16(picH<<8|picL);
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage032(mt9v03x_csi_image[0], MT9V03X_CSI_W, MT9V03X_CSI_H)//<2F><>ʾ<EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
// @note ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage032(uint8 *p, uint16 width, uint16 height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
uint16 coord_x = 0;
uint16 coord_y = 0;
coord_x = width>IPS200_X_MAX?IPS200_X_MAX:width;
coord_y = height>IPS200_Y_MAX?IPS200_Y_MAX:height;
ips200_address_set(0,0,coord_x-1,coord_y-1);
for(j=0;j<coord_y;j++)
{
for(i=0;i<coord_x;i++)
{
temp = *(p+j*width+i*width/coord_x);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 0 -<2D><>IPS200_X_MAX-1<><31>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 0 -<2D><>IPS200_Y_MAX-1<><31>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage032_zoom(mt9v03x_csi_image[0], MT9V03X_CSI_W, MT9V03X_CSI_H, MT9V03X_CSI_W, MT9V03X_CSI_H)//<2F><>ʾ<EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
// @note ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage032_zoom(uint8 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
ips200_address_set(0,0,dis_width-1,dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
temp = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param start_x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param start_y <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 1 -<2D><>TFT_X_MAX<41><58>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 1 -<2D><>TFT_Y_MAX<41><58>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage032_zoom1(mt9v03x_csi_image[0], MT9V03X_CSI_W, MT9V03X_CSI_H, 0, 0, MT9V03X_CSI_W, MT9V03X_CSI_H)//<2F><>ʾ<EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage032_zoom1(uint8 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD>Ƿ񳬹<C7B7><F1B3ACB9><EFBFBD>Ļ<EFBFBD>ķֱ<C4B7><D6B1><EFBFBD>
if((start_x+dis_width)>IPS200_X_MAX) ZF_ASSERT(0);
if((start_y+dis_height)>IPS200_Y_MAX) ZF_ASSERT(0);
ips200_address_set(start_x,start_y,start_x+dis_width-1,start_y+dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
temp = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><>ͫ(<28><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 0 -<2D><>TFT_X_MAX-1<><31>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 0 -<2D><>TFT_Y_MAX-1<><31>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage8660_zoom(scc8660_csi_image[0], SCC8660_CSI_PIC_W, SCC8660_CSI_PIC_H, 320, 240);//<2F><>ʾ<EFBFBD><CABE>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
// @note <20>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ݸ<EFBFBD>ʽ(SCC8660_DATA_FORMAT)<29><><EFBFBD><EFBFBD>Ϊ0ʱ<30><CAB1><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ɫͼ<C9AB><CDBC>
// ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage8660_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
ips200_address_set(0,0,dis_width-1,dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
color = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color = ((color&0xff)<<8) | (color>>8);
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><>ͫ(<28><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param start_x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param start_y <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 1 -<2D><>TFT_X_MAX<41><58>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 1 -<2D><>TFT_Y_MAX<41><58>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage8660_zoom1(scc8660_csi_image[0], SCC8660_CSI_PIC_W, SCC8660_CSI_PIC_H, 0, 0, 320, 240);
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage8660_zoom1(uint16 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD>Ƿ񳬹<C7B7><F1B3ACB9><EFBFBD>Ļ<EFBFBD>ķֱ<C4B7><D6B1><EFBFBD>
if((start_x+dis_width)>IPS200_X_MAX) ZF_ASSERT(0);
if((start_y+dis_height)>IPS200_Y_MAX) ZF_ASSERT(0);
ips200_address_set(start_x,start_y,start_x+dis_width-1,start_y+dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
color = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color = ((color&0xff)<<8) | (color>>8);
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><>ͫ(<28><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>(<28><>ʾ<EFBFBD>Ҷ<EFBFBD>)
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 0 -<2D><>TFT_X_MAX-1<><31>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 0 -<2D><>TFT_Y_MAX-1<><31>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage8660_grayscale_zoom(scc8660_csi_image[0], SCC8660_CSI_PIC_W, SCC8660_CSI_PIC_H, 320, 240)//<2F><>ʾ<EFBFBD><CABE>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷͼ<CDB7><CDBC> <20><>ʾY<CABE><59><EFBFBD><EFBFBD>
// @note <20>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ݸ<EFBFBD>ʽ(SCC8660_DATA_FORMAT)<29><><EFBFBD><EFBFBD>Ϊ2ʱ<32><CAB1><EFBFBD><EFBFBD>ȡY<C8A1><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>Ҷ<EFBFBD>ͼ<EFBFBD><CDBC>
// ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage8660_grayscale_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
ips200_address_set(0,0,dis_width-1,dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
temp = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
temp = temp&0xff;
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief С<><D0A1><EFBFBD><EFBFBD>(<28><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @return void
// @since v1.0
// @note ͼ<><CDBC><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>120(<28><>)*160(<28><>)<29><><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height)
{
int i,j;
uint16 temp = 0;
ips200_address_set(0,0,width-1,height-1);
for(i=0;i<height * (width/8);i++)
{
temp = *p;
p++;
for(j=0; j<8; j++)
{
if( (temp<<j)&0x80 ) ips200_wr_data16(RGB565_WHITE);
else ips200_wr_data16(RGB565_BLACK);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
// @param x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0-<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0-<2D><>IPS200_Y_MAX-1<><31>
// @param size ȡģ<C8A1><C4A3>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>õĵ<C3B5><C4B5>󳤿<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ٸ<EFBFBD><D9B8>㣬ȡģ<C8A1><C4A3>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ġ<EFBFBD>
// @param *p <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param number <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>λ
// @param color <20><>ʾ<EFBFBD><CABE>ɫ
// @return void
// @since v1.0
// Sample usage: ips200_display_chinese(0,0,16,chinese_test[0],4,RED);//<2F><>ʾfont<6E>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ʾ<><CABE>
// @Note ʹ<><CAB9>PCtoLCD2002<30><32><EFBFBD><EFBFBD>ȡģ <20><><EFBFBD><EFBFBD><EBA1A2><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>˳<EFBFBD><CBB3> 16*16
//-------------------------------------------------------------------------------------------------------------------
void ips200_display_chinese(uint16 x, uint16 y, uint8 size, const uint8 *p, uint8 number, uint16 color)
{
int i, j, k;
uint8 temp, temp1, temp2;
const uint8 *p_data;
temp2 = size/8;
ips200_address_set(x,y,number*size-1+x,y+size-1);
for(i=0;i<size;i++)
{
temp1 = number;
p_data = p+i*temp2;
while(temp1--)
{
for(k=0;k<temp2;k++)
{
for(j=8;j>0;j--)
{
temp = (*p_data>>(j-1)) & 0x01;
if(temp) ips200_wr_data16(color);
else ips200_wr_data16(IPS200_BGCOLOR);
}
p_data++;
}
p_data = p_data - temp2 + temp2*size;
}
}
}

View File

@@ -0,0 +1,199 @@
/*/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2020,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>824575535
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file 2.0<EFBFBD><EFBFBD>IPS<EFBFBD><EFBFBD>Ļ
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software ADS v1.5.2
* @Target core TC264
* @Taobao https://seekfree.taobao.com/
* @date 2020-05-07
* @note
<20><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------
* ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
* // ˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* RD <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RD_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* WR <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_WR_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* RS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RS_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* RST <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RST_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* CS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_CS_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* BL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_BL_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* D0-D7 <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_Dx_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* SCL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_SCL_PIN_SPI <20><EFBFBD><EAB6A8>
* SDA <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_SDA_PIN_SPI <20><EFBFBD><EAB6A8>
* RST <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RST_PIN_SPI <20><EFBFBD><EAB6A8>
* DC <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_DC_PIN_SPI <20><EFBFBD><EAB6A8>
* CS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_CS_PIN_SPI <20><EFBFBD><EAB6A8>
* BL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_BL_PIN_SPI <20><EFBFBD><EAB6A8>
* <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
* VCC 3.3V<EFBFBD><EFBFBD>Դ
* GND <20><>Դ<EFBFBD><D4B4>
* <20><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD> 320 * 240
* ------------------------------------
********************************************************************************************************************/
#ifndef _SEEKFREE_IPS200_H
#define _SEEKFREE_IPS200_H
#include "common.h"
#include "stdlib.h"
#include "string.h"
#include "stdio.h"
#include "zf_stm_systick.h"
#include "zf_gpio.h"
#include "zf_assert.h"
#include "SEEKFREE_PRINTF.h"
#include "zf_spi.h"
#include "SEEKFREE_FUN.h"
#include "SEEKFREE_FONT.h"
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>SEEKFREE_FONT.h<>ļ<EFBFBD><C4BC>ж<EFBFBD><D0B6><EFBFBD>----------
//#define RED 0xF800 //<2F><>ɫ
//#define BLUE 0x001F //<2F><>ɫ
//#define YELLOW 0xFFE0 //<2F><>ɫ
//#define GREEN 0x07E0 //<2F><>ɫ
//#define WHITE 0xFFFF //<2F><>ɫ
//#define BLACK 0x0000 //<2F><>ɫ
//#define GRAY 0X8430 //<2F><>ɫ
//#define BROWN 0XBC40 //<2F><>ɫ
//#define PURPLE 0XF81F //<2F><>ɫ
//#define PINK 0XFE19 //<2F><>ɫ
#define IPS200_BGCOLOR RGB565_WHITE //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
#define IPS200_PENCOLOR RGB565_RED //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
// <20><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
#define IPS200_SPIN SPI_2 //<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD>SPI<50><49>
#define IPS200_SCL_PIN_SPI SPI2_SCLK_P15_3 //<2F><><EFBFBD><EFBFBD>SPI_SCK<43><4B><EFBFBD><EFBFBD>
#define IPS200_SDA_PIN_SPI SPI2_MOSI_P15_5 //<2F><><EFBFBD><EFBFBD>SPI_MOSI<53><49><EFBFBD><EFBFBD>
#define IPS200_SDA_IN_PIN_SPI SPI2_MISO_P15_4 //<2F><><EFBFBD><EFBFBD>SPI_MISO<53><4F><EFBFBD><EFBFBD> IPSû<53><C3BB>MISO<53><4F><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><E5A3AC>spi<70>ij<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1>Ҫʹ<D2AA><CAB9>
#define IPS200_CS_PIN_SPI SPI2_CS0_P15_2 //<2F><><EFBFBD><EFBFBD>SPI_CS<43><53><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
#define IPS200_RST_PIN_SPI P15_1 // Һ<><D2BA><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD>
#define IPS200_DC_PIN_SPI P15_0
#define IPS200_BL_PIN_SPI P15_4
//<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
//<2F><><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ѡ<EFBFBD><D1A1>B C D<><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><CBBF>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
#define IPS200_RD_PIN_PARALLEL8 P15_3
#define IPS200_WR_PIN_PARALLEL8 P15_5
#define IPS200_RS_PIN_PARALLEL8 P15_1
#define IPS200_RST_PIN_PARALLEL8 P15_0
#define IPS200_CS_PIN_PARALLEL8 P15_2
#define IPS200_BL_PIN_PARALLEL8 P15_4
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õõ<C3B5>
//D0-D3<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>C0-C3,C1-C4<43>ȵȣ<C8B5>
//D4-D7<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>B0-B3,B1-B4<42>ȵȡ<C8B5>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>ͬ<EFBFBD>˿ڵ<CBBF><DAB5><EFBFBD>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>D0-D3<44><33>C1-C4<43><34><EFBFBD>ӣ<EFBFBD>D4-D7<44><37>B2-B5<42><35><EFBFBD>ӡ<EFBFBD>
//<2F>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD>ע<EFBFBD><D7A2><EFBFBD>޸<EFBFBD>IPS200_DATA_PORT1<54><31>IPS200_DATA_PORT2<54><EFBFBD><EAB6A8>
#define IPS200_D0_PIN_PARALLEL8 P11_9
#define IPS200_D1_PIN_PARALLEL8 P11_10
#define IPS200_D2_PIN_PARALLEL8 P11_11
#define IPS200_D3_PIN_PARALLEL8 P11_12
#define IPS200_D4_PIN_PARALLEL8 P13_0
#define IPS200_D5_PIN_PARALLEL8 P13_1
#define IPS200_D6_PIN_PARALLEL8 P13_2
#define IPS200_D7_PIN_PARALLEL8 P13_3
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ˿<DDB6><CBBF><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>и<EFBFBD><D0B8><EFBFBD>
#define IPS200_DATA_PORT1 3 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT1 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT1].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM1 (IPS200_D0_PIN_PARALLEL8&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_DATA_PORT2 4 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT2 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT2].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM2 (IPS200_D4_PIN_PARALLEL8&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_BL(x) gpio_set(IPS200_BL_PIN_PARALLEL8,x)
#define IPS200_CS(x) gpio_set(IPS200_CS_PIN_PARALLEL8,x)
#define IPS200_RD(x) gpio_set(IPS200_RD_PIN_PARALLEL8,x)
#define IPS200_WR(x) gpio_set(IPS200_WR_PIN_PARALLEL8,x)
#define IPS200_RS(x) gpio_set(IPS200_RS_PIN_PARALLEL8,x)
#define IPS200_RST(x) gpio_set(ips_rst_pin,x)
#define IPS200_DC(x) gpio_set(IPS200_DC_PIN_SPI,x)
#define IPS200_W 240
#define IPS200_H 320
typedef enum
{
IPS200_TYPE_SPI, // SPI <20><><EFBFBD><EFBFBD>
IPS200_TYPE_PARALLEL8, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}ips200_type_enum;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
//0 <20><><EFBFBD><EFBFBD>ģʽ
//1 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
//2 <20><><EFBFBD><EFBFBD>ģʽ
//3 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
#define IPS200_DISPLAY_DIR 0
#if (0==IPS200_DISPLAY_DIR || 1==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_W //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_H //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#elif (2==IPS200_DISPLAY_DIR || 3==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_H //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_W //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#else
#error "IPS200_DISPLAY_DIR <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#endif
void ips200_init(ips200_type_enum type_select); //<2F><>ʼ<EFBFBD><CABC>Ӳ<EFBFBD><D3B2>
void ips200_w_data(uint8 dat);
void ips200_wr_reg(uint8 com);
void ips200_wr_data(uint8 dat);
void ips200_wr_data16(uint16 dat);
void ips200_w_reg(uint8 com,uint8 dat);
void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2);
void ips200_clear(uint16 color);
void ips200_drawpoint(uint16 x,uint16 y,uint16 color);
void ips200_showchar(uint16 x,uint16 y,const int8 dat);
void ips200_showstr(uint16 x,uint16 y,const int8 dat[]);
void ips200_showint8(uint16 x,uint16 y,int8 dat);
void ips200_showuint8(uint16 x,uint16 y,uint8 dat);
void ips200_showint16(uint16 x,uint16 y,int16 dat);
void ips200_showuint16(uint16 x,uint16 y,uint16 dat);
void ips200_showint32(uint16 x,uint16 y,int dat,uint8 num);
void ips200_showfloat(uint16 x,uint16 y,double dat,int8 num,int8 pointnum);
void ips200_showimage(uint16 x,uint16 y,uint16 w,uint16 l,const unsigned char *p);
void ips200_displayimage032(uint8 *p, uint16 width, uint16 height);
void ips200_displayimage032_zoom(uint8 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage032_zoom1(uint8 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom1(uint16 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_grayscale_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height);
void ips200_display_chinese(uint16 x, uint16 y, uint8 size, const uint8 *p, uint8 number, uint16 color);
#endif

View File

@@ -1,896 +0,0 @@
/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2020,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>824575535
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file 2.0<EFBFBD><EFBFBD>IPS<EFBFBD><EFBFBD>Ļ
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software ADS v1.2.2
* @Target core TC264D
* @Taobao https://seekfree.taobao.com/
* @date 2020-3-23
* @note
<09><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------
ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <09><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
D0 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D0_PIN <20><EFBFBD><EAB6A8>
D1 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D1_PIN <20><EFBFBD><EAB6A8>
D2 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D2_PIN <20><EFBFBD><EAB6A8>
D3 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D3_PIN <20><EFBFBD><EAB6A8>
D4 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D4_PIN <20><EFBFBD><EAB6A8>
D5 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D5_PIN <20><EFBFBD><EAB6A8>
D6 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D6_PIN <20><EFBFBD><EAB6A8>
D7 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D7_PIN <20><EFBFBD><EAB6A8>
BL <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_BL_PIN <20><EFBFBD><EAB6A8>
CS <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_CS_PIN <20><EFBFBD><EAB6A8>
RD <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RD_PIN <20><EFBFBD><EAB6A8>
WR <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_WR_PIN <20><EFBFBD><EAB6A8>
RS <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RS_PIN <20><EFBFBD><EAB6A8>
RST <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RST_PIN <20><EFBFBD><EAB6A8>
<09><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
VCC 3.3V<EFBFBD><EFBFBD>Դ
GND <20><>Դ<EFBFBD><D4B4>
<09><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>240*320
------------------------------------
********************************************************************************************************************/
#include "stdlib.h"
#include "string.h"
#include "stdio.h"
#include "zf_stm_systick.h"
#include "zf_gpio.h"
#include "zf_assert.h"
#include "SEEKFREE_PRINTF.h"
#include "SEEKFREE_IPS200_PARALLEL8.h"
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param void
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_w_data(uint8 dat) //д<><D0B4><EFBFBD><EFBFBD>
{
IPS200_DATAPORT1 = (dat << DATA_START_NUM1) | (IPS200_DATAPORT1 & ~((uint32)(0x0F << DATA_START_NUM1)) );
IPS200_DATAPORT2 = ((dat>>4) << DATA_START_NUM2) | (IPS200_DATAPORT2 & ~((uint32)(0x0F << DATA_START_NUM2)) );
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param void
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_wr_reg(uint8 command) //д<><D0B4><EFBFBD><EFBFBD>
{
IPS200_CS(0);
IPS200_RS(0);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(command);
IPS200_WR(1);
IPS200_CS(1);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param void
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_wr_data(uint8 dat) //<2F><>Һ<EFBFBD><D2BA><EFBFBD><EFBFBD>дһ<D0B4><D2BB><38><CEBB><EFBFBD><EFBFBD>
{
IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(dat);
IPS200_WR(1);
IPS200_CS(1);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param void
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_wr_data16(uint16 dat) //<2F><>Һ<EFBFBD><D2BA><EFBFBD><EFBFBD>дһ<D0B4><D2BB>16λ<36><CEBB><EFBFBD><EFBFBD>
{
IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat>>8));
IPS200_WR(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat));
IPS200_WR(1);
IPS200_CS(1);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param void
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_w_reg(uint8 com,uint8 dat) //д<>Ĵ<EFBFBD><C4B4><EFBFBD>
{
ips200_wr_reg(com);
ips200_wr_data(dat);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param void
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2)
{
ips200_wr_reg(0x2a);
ips200_wr_data16(x1);
ips200_wr_data16(x2);
ips200_wr_reg(0x2b);
ips200_wr_data16(y1);
ips200_wr_data16(y2);
ips200_wr_reg(0x2c);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief 2.0<EFBFBD><EFBFBD> IPSҺ<53><D2BA><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
// @return void
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_init(void)
{
gpio_init(IPS200_D0_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D1_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D2_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D3_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D4_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D5_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D6_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D7_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_BL_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_CS_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_RST_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_RS_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_WR_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_RD_PIN, GPO, 0, PUSHPULL);
IPS200_BL(1);
IPS200_RST(0);
systick_delay_ms(STM0, 5);
IPS200_RST(1);
systick_delay_ms(STM0, 5);
ips200_wr_reg(0x11);
systick_delay_ms(STM0, 120);
ips200_wr_reg(0x36);
if (IPS200_DISPLAY_DIR==0) ips200_wr_data(0x00);
else if (IPS200_DISPLAY_DIR==1) ips200_wr_data(0xC0);
else if (IPS200_DISPLAY_DIR==2) ips200_wr_data(0x70);
else ips200_wr_data(0xA0);
ips200_wr_reg(0x3A);
ips200_wr_data(0x05);
ips200_wr_reg(0xB2);
ips200_wr_data(0x0C);
ips200_wr_data(0x0C);
ips200_wr_data(0x00);
ips200_wr_data(0x33);
ips200_wr_data(0x33);
ips200_wr_reg(0xB7);
ips200_wr_data(0x35);
ips200_wr_reg(0xBB);
ips200_wr_data(0x29); //32 Vcom=1.35V
ips200_wr_reg(0xC2);
ips200_wr_data(0x01);
ips200_wr_reg(0xC3);
ips200_wr_data(0x19); //GVDD=4.8V
ips200_wr_reg(0xC4);
ips200_wr_data(0x20); //VDV, 0x20:0v
ips200_wr_reg(0xC5);
ips200_wr_data(0x1A);//VCOM Offset Set
ips200_wr_reg(0xC6);
ips200_wr_data(0x01F); //0x0F:60Hz
ips200_wr_reg(0xD0);
ips200_wr_data(0xA4);
ips200_wr_data(0xA1);
ips200_wr_reg(0xE0);
ips200_wr_data(0xD0);
ips200_wr_data(0x08);
ips200_wr_data(0x0E);
ips200_wr_data(0x09);
ips200_wr_data(0x09);
ips200_wr_data(0x05);
ips200_wr_data(0x31);
ips200_wr_data(0x33);
ips200_wr_data(0x48);
ips200_wr_data(0x17);
ips200_wr_data(0x14);
ips200_wr_data(0x15);
ips200_wr_data(0x31);
ips200_wr_data(0x34);
ips200_wr_reg(0xE1);
ips200_wr_data(0xD0);
ips200_wr_data(0x08);
ips200_wr_data(0x0E);
ips200_wr_data(0x09);
ips200_wr_data(0x09);
ips200_wr_data(0x15);
ips200_wr_data(0x31);
ips200_wr_data(0x33);
ips200_wr_data(0x48);
ips200_wr_data(0x17);
ips200_wr_data(0x14);
ips200_wr_data(0x15);
ips200_wr_data(0x31);
ips200_wr_data(0x34);
ips200_wr_reg(0x21);
ips200_wr_reg(0x29);
ips200_clear(IPS200_BGCOLOR); //<2F><>ʼ<EFBFBD><CABC>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param color <09><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_clear(YELLOW);// ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ɫ
//-------------------------------------------------------------------------------------------------------------------
void ips200_clear(uint16 color)
{
uint16 i,j;
ips200_address_set(0,0,IPS200_X_MAX-1,IPS200_Y_MAX-1);
for(i=0;i<IPS200_X_MAX;i++)
{
for (j=0;j<IPS200_Y_MAX;j++)
{
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ɫ
// @return void
// @since v1.0
// Sample usage: ips200_drawpoint(0,0,RED); //<2F><><EFBFBD><EFBFBD>0,0<><30>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ɫ<EFBFBD>ĵ<EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_drawpoint(uint16 x,uint16 y,uint16 color)
{
ips200_address_set(x,y,x,y);
ips200_wr_data16(color);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD>ַ<EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_X_MAX-1)
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_Y_MAX/16-1)
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD>ַ<EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_showchar(0,0,'x');//<2F><><EFBFBD><EFBFBD>0,0дһ<D0B4><D2BB><EFBFBD>ַ<EFBFBD>x
//-------------------------------------------------------------------------------------------------------------------
void ips200_showchar(uint16 x,uint16 y,const int8 dat)
{
uint8 i,j;
uint8 temp;
for(i=0; i<16; i++)
{
ips200_address_set(x,y+i,x+7,y+i);
temp = tft_ascii[(uint16)dat-32][i];//<2F><>32<33><32>Ϊ<EFBFBD><CEAA>ȡģ<C8A1>Ǵӿո<D3BF><D5B8><EFBFBD>ʼȡ<CABC><C8A1> <20>ո<EFBFBD><D5B8><EFBFBD>ascii<69><69><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>32
for(j=0; j<8; j++)
{
if(temp&0x01) ips200_wr_data16(IPS200_PENCOLOR);
else ips200_wr_data16(IPS200_BGCOLOR);
temp>>=1;
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_X_MAX-1)
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_Y_MAX/16-1)
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_showstr(0,0,"seekfree");
//-------------------------------------------------------------------------------------------------------------------
void ips200_showstr(uint16 x,uint16 y,const int8 dat[])
{
uint16 j;
j = 0;
while(dat[j] != '\0')
{
ips200_showchar(x+8*j,y*16,dat[j]);
j++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<38>з<EFBFBD><D0B7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>int8
// @return void
// @since v1.0
// Sample usage: ips200_showint8(0,0,x);//xΪint8<74><38><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showint8(uint16 x,uint16 y,int8 dat)
{
uint8 a[3];
uint8 i;
if(dat<0)
{
ips200_showchar(x,y*16,'-');
dat = -dat;
}
else ips200_showchar(x,y*16,' ');
a[0] = dat/100;
a[1] = dat/10%10;
a[2] = dat%10;
i = 0;
while(i<3)
{
ips200_showchar(x+(8*(i+1)),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<38>޷<EFBFBD><DEB7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uint8
// @return void
// @since v1.0
// Sample usage: ips200_showuint8(0,0,x);//xΪuint8<74><38><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showuint8(uint16 x,uint16 y,uint8 dat)
{
uint8 a[3];
uint8 i;
a[0] = dat/100;
a[1] = dat/10%10;
a[2] = dat%10;
i = 0;
while(i<3)
{
ips200_showchar(x+(8*i),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ16λ<36>з<EFBFBD><D0B7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>int16
// @return void
// @since v1.0
// Sample usage: ips200_showint16(0,0,x);//xΪint16<31><36><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showint16(uint16 x,uint16 y,int16 dat)
{
uint8 a[5];
uint8 i;
if(dat<0)
{
ips200_showchar(x,y*16,'-');
dat = -dat;
}
else ips200_showchar(x,y*16,' ');
a[0] = dat/10000;
a[1] = dat/1000%10;
a[2] = dat/100%10;
a[3] = dat/10%10;
a[4] = dat%10;
i = 0;
while(i<5)
{
ips200_showchar(x+(8*(i+1)),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ16λ<36>޷<EFBFBD><DEB7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uint16
// @return void
// @since v1.0
// Sample usage: ips200_showuint16(0,0,x);//xΪuint16<31><36><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showuint16(uint16 x,uint16 y,uint16 dat)
{
uint8 a[5];
uint8 i;
a[0] = dat/10000;
a[1] = dat/1000%10;
a[2] = dat/100%10;
a[3] = dat/10%10;
a[4] = dat%10;
i = 0;
while(i<5)
{
ips200_showchar(x+(8*i),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ32λ<32>з<EFBFBD><D0B7><EFBFBD><><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>0)
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uint32
// @param num <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE>λ<EFBFBD><CEBB> <20><><EFBFBD><EFBFBD>10λ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_showint32(0,0,x,3);//x<><78><EFBFBD><EFBFBD>Ϊint32 uint16 int16 uint8 int8<74><38><EFBFBD><EFBFBD>
// Sample usage: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB> <20><>-<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB><EFBFBD>ո<EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showint32(uint16 x,uint16 y,int dat,uint8 num)
{
int8 buff[34];
uint32 length;
if(10<num) num = 10;
num++;
if(0>dat) length = zf_sprintf(&buff[0],"%d",dat);//<2F><><EFBFBD><EFBFBD>
else
{
buff[0] = ' ';
length = zf_sprintf(&buff[1],"%d",dat);
length++;
}
while(length < num)
{
buff[length] = ' ';
length++;
}
buff[num] = '\0';
ips200_showstr(x, y, buff); //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>0)
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>float<61><74>double
// @param num <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>10λ
// @param pointnum С<><D0A1>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips_showfloat(0,0,x,2,3);//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾС<><D0A1><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>λ
// @note <20>ر<EFBFBD>ע<EFBFBD><EFBFBD><E2B5B1><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD>µģ<C2B5><C4A3><EFBFBD><E2B2A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A3AC><EFBFBD><EFBFBD><EFBFBD>аٶ<D0B0>ѧϰ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB> <20><>-<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB><EFBFBD>ո<EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showfloat(uint16 x,uint16 y,double dat,int8 num,int8 pointnum)
{
uint32 length;
int8 buff[34];
int8 start,end,point;
if(6<pointnum) pointnum = 6;
if(10<num) num = 10;
if(0>dat) length = zf_sprintf( &buff[0],"%f",dat);//<2F><><EFBFBD><EFBFBD>
else
{
length = zf_sprintf( &buff[1],"%f",dat);
length++;
}
point = (int8)(length - 7); //<2F><><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
start = point - num - 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼλ
end = point + pointnum + 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
while(0>start)//<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> ĩβӦ<CEB2><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ո<EFBFBD>
{
buff[end] = ' ';
end++;
start++;
}
if(0>dat) buff[start] = '-';
else buff[start] = ' ';
buff[end] = '\0';
ips200_showstr(x, y, buff); //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<38>޷<EFBFBD><DEB7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param w ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param l ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @return void
// @since v1.0
// Sample usage: ips200_showimage(0,0,10,20,&image);//ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(0,0)<29><><EFBFBD><EFBFBD>10<31><30><EFBFBD><EFBFBD>20<32><30>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showimage(uint16 x,uint16 y,uint16 w,uint16 l,const unsigned char *p)
{
int i;
unsigned char picH,picL;
ips200_address_set(x,y,x+w-1,y+l-1);
for(i=0;i<w*l;i++)
{
picL=*(p+i*2);
picH=*(p+i*2+1);
ips200_wr_data16(picH<<8|picL);
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage032(mt9v03x_csi_image[0], MT9V03X_CSI_W, MT9V03X_CSI_H)//<2F><>ʾ<EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
// @note ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage032(uint8 *p, uint16 width, uint16 height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
uint16 coord_x = 0;
uint16 coord_y = 0;
coord_x = width>IPS200_X_MAX?IPS200_X_MAX:width;
coord_y = height>IPS200_Y_MAX?IPS200_Y_MAX:height;
ips200_address_set(0,0,coord_x-1,coord_y-1);
for(j=0;j<coord_y;j++)
{
for(i=0;i<coord_x;i++)
{
temp = *(p+j*width+i*width/coord_x);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 0 -<2D><>IPS200_X_MAX-1<><31>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 0 -<2D><>IPS200_Y_MAX-1<><31>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage032_zoom(mt9v03x_csi_image[0], MT9V03X_CSI_W, MT9V03X_CSI_H, MT9V03X_CSI_W, MT9V03X_CSI_H)//<2F><>ʾ<EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
// @note ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage032_zoom(uint8 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
ips200_address_set(0,0,dis_width-1,dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
temp = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param start_x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param start_y <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 1 -<2D><>TFT_X_MAX<41><58>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 1 -<2D><>TFT_Y_MAX<41><58>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage032_zoom1(mt9v03x_csi_image[0], MT9V03X_CSI_W, MT9V03X_CSI_H, 0, 0, MT9V03X_CSI_W, MT9V03X_CSI_H)//<2F><>ʾ<EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage032_zoom1(uint8 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD>Ƿ񳬹<C7B7><F1B3ACB9><EFBFBD>Ļ<EFBFBD>ķֱ<C4B7><D6B1><EFBFBD>
if((start_x+dis_width)>IPS200_X_MAX) ZF_ASSERT(0);
if((start_y+dis_height)>IPS200_Y_MAX) ZF_ASSERT(0);
ips200_address_set(start_x,start_y,start_x+dis_width-1,start_y+dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
temp = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><>ͫ(<28><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 0 -<2D><>TFT_X_MAX-1<><31>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 0 -<2D><>TFT_Y_MAX-1<><31>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage8660_zoom(scc8660_csi_image[0], SCC8660_CSI_PIC_W, SCC8660_CSI_PIC_H, 320, 240);//<2F><>ʾ<EFBFBD><CABE>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
// @note <20>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ݸ<EFBFBD>ʽ(SCC8660_DATA_FORMAT)<29><><EFBFBD><EFBFBD>Ϊ0ʱ<30><CAB1><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ɫͼ<C9AB><CDBC>
// ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage8660_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
ips200_address_set(0,0,dis_width-1,dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
color = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color = ((color&0xff)<<8) | (color>>8);
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><>ͫ(<28><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param start_x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param start_y <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 1 -<2D><>TFT_X_MAX<41><58>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 1 -<2D><>TFT_Y_MAX<41><58>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage8660_zoom1(scc8660_csi_image[0], SCC8660_CSI_PIC_W, SCC8660_CSI_PIC_H, 0, 0, 320, 240);
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage8660_zoom1(uint16 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD>Ƿ񳬹<C7B7><F1B3ACB9><EFBFBD>Ļ<EFBFBD>ķֱ<C4B7><D6B1><EFBFBD>
if((start_x+dis_width)>IPS200_X_MAX) ZF_ASSERT(0);
if((start_y+dis_height)>IPS200_Y_MAX) ZF_ASSERT(0);
ips200_address_set(start_x,start_y,start_x+dis_width-1,start_y+dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
color = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color = ((color&0xff)<<8) | (color>>8);
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><>ͫ(<28><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>(<28><>ʾ<EFBFBD>Ҷ<EFBFBD>)
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 0 -<2D><>TFT_X_MAX-1<><31>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 0 -<2D><>TFT_Y_MAX-1<><31>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage8660_grayscale_zoom(scc8660_csi_image[0], SCC8660_CSI_PIC_W, SCC8660_CSI_PIC_H, 320, 240)//<2F><>ʾ<EFBFBD><CABE>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷͼ<CDB7><CDBC> <20><>ʾY<CABE><59><EFBFBD><EFBFBD>
// @note <20>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ݸ<EFBFBD>ʽ(SCC8660_DATA_FORMAT)<29><><EFBFBD><EFBFBD>Ϊ2ʱ<32><CAB1><EFBFBD><EFBFBD>ȡY<C8A1><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>Ҷ<EFBFBD>ͼ<EFBFBD><CDBC>
// ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage8660_grayscale_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
ips200_address_set(0,0,dis_width-1,dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
temp = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
temp = temp&0xff;
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief С<><D0A1><EFBFBD><EFBFBD>(<28><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @return void
// @since v1.0
// @note ͼ<><CDBC><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>120(<28><>)*160(<28><>)<29><><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height)
{
int i,j;
uint16 temp = 0;
ips200_address_set(0,0,width-1,height-1);
for(i=0;i<height * (width/8);i++)
{
temp = *p;
p++;
for(j=0; j<8; j++)
{
if( (temp<<j)&0x80 ) ips200_wr_data16(WHITE);
else ips200_wr_data16(BLACK);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
// @param x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0-<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0-<2D><>IPS200_Y_MAX-1<><31>
// @param size ȡģ<C8A1><C4A3>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>õĵ<C3B5><C4B5>󳤿<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ٸ<EFBFBD><D9B8>㣬ȡģ<C8A1><C4A3>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ġ<EFBFBD>
// @param *p <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param number <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>λ
// @param color <20><>ʾ<EFBFBD><CABE>ɫ
// @return void
// @since v1.0
// Sample usage: ips200_display_chinese(0,0,16,chinese_test[0],4,RED);//<2F><>ʾfont<6E>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ʾ<><CABE>
// @Note ʹ<><CAB9>PCtoLCD2002<30><32><EFBFBD><EFBFBD>ȡģ <20><><EFBFBD><EFBFBD><EBA1A2><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>˳<EFBFBD><CBB3> 16*16
//-------------------------------------------------------------------------------------------------------------------
void ips200_display_chinese(uint16 x, uint16 y, uint8 size, const uint8 *p, uint8 number, uint16 color)
{
int i, j, k;
uint8 temp, temp1, temp2;
const uint8 *p_data;
temp2 = size/8;
ips200_address_set(x,y,number*size-1+x,y+size-1);
for(i=0;i<size;i++)
{
temp1 = number;
p_data = p+i*temp2;
while(temp1--)
{
for(k=0;k<temp2;k++)
{
for(j=8;j>0;j--)
{
temp = (*p_data>>(j-1)) & 0x01;
if(temp) ips200_wr_data16(color);
else ips200_wr_data16(IPS200_BGCOLOR);
}
p_data++;
}
p_data = p_data - temp2 + temp2*size;
}
}
}

View File

@@ -1,180 +0,0 @@
/*/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2020,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>824575535
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file 2.0<EFBFBD><EFBFBD>IPS<EFBFBD><EFBFBD>Ļ
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software ADS v1.2.2
* @Target core TC264D
* @Taobao https://seekfree.taobao.com/
* @date 2020-3-23
* @note
<09><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------
ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <09><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
D0 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D0_PIN <20><EFBFBD><EAB6A8>
D1 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D1_PIN <20><EFBFBD><EAB6A8>
D2 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D2_PIN <20><EFBFBD><EAB6A8>
D3 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D3_PIN <20><EFBFBD><EAB6A8>
D4 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D4_PIN <20><EFBFBD><EAB6A8>
D5 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D5_PIN <20><EFBFBD><EAB6A8>
D6 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D6_PIN <20><EFBFBD><EAB6A8>
D7 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D7_PIN <20><EFBFBD><EAB6A8>
BL <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_BL_PIN <20><EFBFBD><EAB6A8>
CS <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_CS_PIN <20><EFBFBD><EAB6A8>
RD <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RD_PIN <20><EFBFBD><EAB6A8>
WR <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_WR_PIN <20><EFBFBD><EAB6A8>
RS <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RS_PIN <20><EFBFBD><EAB6A8>
RST <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RST_PIN <20><EFBFBD><EAB6A8>
<09><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
VCC 3.3V<EFBFBD><EFBFBD>Դ
GND <20><>Դ<EFBFBD><D4B4>
<09><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>240*320
------------------------------------
********************************************************************************************************************/
#ifndef _SEEKFREE_IPS200PARALLEL8_H
#define _SEEKFREE_IPS200PARALLEL8_H
#include "common.h"
#include "SEEKFREE_FONT.h"
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>SEEKFREE_FONT.h<>ļ<EFBFBD><C4BC>ж<EFBFBD><D0B6><EFBFBD>----------
//#define RED 0xF800 //<2F><>ɫ
//#define BLUE 0x001F //<2F><>ɫ
//#define YELLOW 0xFFE0 //<2F><>ɫ
//#define GREEN 0x07E0 //<2F><>ɫ
//#define WHITE 0xFFFF //<2F><>ɫ
//#define BLACK 0x0000 //<2F><>ɫ
//#define GRAY 0X8430 //<2F><>ɫ
//#define BROWN 0XBC40 //<2F><>ɫ
//#define PURPLE 0XF81F //<2F><>ɫ
//#define PINK 0XFE19 //<2F><>ɫ
#define IPS200_BGCOLOR WHITE //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
#define IPS200_PENCOLOR RED //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
//<2F><><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ѡ<EFBFBD><D1A1>B C D<><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><CBBF>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
#define IPS200_RD_PIN P15_3
#define IPS200_WR_PIN P15_5
#define IPS200_RS_PIN P15_1
#define IPS200_RST_PIN P15_0
#define IPS200_CS_PIN P15_2
#define IPS200_BL_PIN P15_4
//D0-D3<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>C0-C3,C1-C4<43>ȵȣ<C8B5>
//D4-D7<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>B0-B3,B1-B4<42>ȵȡ<C8B5>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>ͬ<EFBFBD>˿ڵ<CBBF><DAB5><EFBFBD>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>D0-D3<44><33>C1-C4<43><34><EFBFBD>ӣ<EFBFBD>D4-D7<44><37>B2-B5<42><35><EFBFBD>ӡ<EFBFBD>
//<2F>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD>ע<EFBFBD><D7A2><EFBFBD>޸<EFBFBD>IPS200_DATA_PORT1<54><31>IPS200_DATA_PORT2<54><EFBFBD><EAB6A8>
#define IPS200_D0_PIN P11_9
#define IPS200_D1_PIN P11_10
#define IPS200_D2_PIN P11_11
#define IPS200_D3_PIN P11_12
#define IPS200_D4_PIN P13_0
#define IPS200_D5_PIN P13_1
#define IPS200_D6_PIN P13_2
#define IPS200_D7_PIN P13_3
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ˿<DDB6><CBBF><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>и<EFBFBD><D0B8><EFBFBD>
#define IPS200_DATA_PORT1 3 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT1 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT1].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM1 (IPS200_D0_PIN&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_DATA_PORT2 4 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT2 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT2].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM2 (IPS200_D4_PIN&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_BL(x) gpio_set(IPS200_BL_PIN,x)
#define IPS200_CS(x) gpio_set(IPS200_CS_PIN,x)
#define IPS200_RD(x) gpio_set(IPS200_RD_PIN,x)
#define IPS200_WR(x) gpio_set(IPS200_WR_PIN,x)
#define IPS200_RS(x) gpio_set(IPS200_RS_PIN,x)
#define IPS200_RST(x) gpio_set(IPS200_RST_PIN,x)
#define IPS200_W 240
#define IPS200_H 320
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
//0 <20><><EFBFBD><EFBFBD>ģʽ
//1 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
//2 <20><><EFBFBD><EFBFBD>ģʽ
//3 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
#define IPS200_DISPLAY_DIR 0
#if (0==IPS200_DISPLAY_DIR || 1==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_W //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_H //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#elif (2==IPS200_DISPLAY_DIR || 3==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_H //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_W //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#else
#error "IPS200_DISPLAY_DIR <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#endif
void ips200_init(void); //<2F><>ʼ<EFBFBD><CABC>Ӳ<EFBFBD><D3B2>
void ips200_w_data(uint8 dat);
void ips200_wr_reg(uint8 com);
void ips200_wr_data(uint8 dat);
void ips200_wr_data16(uint16 dat);
void ips200_w_reg(uint8 com,uint8 dat);
void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2);
void ips200_clear(uint16 color);
void ips200_drawpoint(uint16 x,uint16 y,uint16 color);
void ips200_showchar(uint16 x,uint16 y,const int8 dat);
void ips200_showstr(uint16 x,uint16 y,const int8 dat[]);
void ips200_showint8(uint16 x,uint16 y,int8 dat);
void ips200_showuint8(uint16 x,uint16 y,uint8 dat);
void ips200_showint16(uint16 x,uint16 y,int16 dat);
void ips200_showuint16(uint16 x,uint16 y,uint16 dat);
void ips200_showint32(uint16 x,uint16 y,int dat,uint8 num);
void ips200_showfloat(uint16 x,uint16 y,double dat,int8 num,int8 pointnum);
void ips200_showimage(uint16 x,uint16 y,uint16 w,uint16 l,const unsigned char *p);
void ips200_displayimage032(uint8 *p, uint16 width, uint16 height);
void ips200_displayimage032_zoom(uint8 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage032_zoom1(uint8 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom1(uint16 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_grayscale_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height);
void ips200_display_chinese(uint16 x, uint16 y, uint8 size, const uint8 *p, uint8 number, uint16 color);
#endif

View File

@@ -1,3 +1,5 @@
V1.2.9
ɾ<><C9BE>SEEKFREE_IPS200_PARALLEL8<4C>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SEEKFREE_IPS200<30><30><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD>е<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
V1.2.8 V1.2.8
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD><EFBFBD>PCLK_MODE<44><45>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>λ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD><EFBFBD>PCLK_MODE<44><45>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>λ

View File

@@ -61,7 +61,7 @@
#include "SEEKFREE_MMA8451.h" #include "SEEKFREE_MMA8451.h"
#include "SEEKFREE_L3G4200D.h" #include "SEEKFREE_L3G4200D.h"
#include "SEEKFREE_WIRELESS.h" #include "SEEKFREE_WIRELESS.h"
#include "SEEKFREE_IPS200_PARALLEL8.h" #include "SEEKFREE_IPS200.h"
#include "SEEKFREE_7725.h" #include "SEEKFREE_7725.h"
#include "SEEKFREE_RDA5807.h" #include "SEEKFREE_RDA5807.h"
#include "SEEKFREE_7725_UART.h" #include "SEEKFREE_7725_UART.h"

View File

@@ -24,7 +24,7 @@
#include "IfxQspi.h" #include "IfxQspi.h"
#include "zf_assert.h" #include "zf_assert.h"
#include "zf_spi.h" #include "zf_spi.h"
#include "zf_gpio.h"
#define MAX_BAUD 50000000 #define MAX_BAUD 50000000
@@ -183,7 +183,62 @@ void spi_mux(SPIN_enum spi_n, SPI_PIN_enum sck_pin, SPI_PIN_enum mosi_pin, SPI_P
} }
uint8 get_spi_cs_pin(SPI_PIN_enum cs_pin)
{
if (SPI0_CS0_P20_8 == cs_pin) return gpio_get(P20_8);
else if (SPI0_CS1_P20_9 == cs_pin) return gpio_get(P20_9);
else if (SPI0_CS2_P20_13 == cs_pin) return gpio_get(P20_13);
else if (SPI0_CS3_P11_10 == cs_pin) return gpio_get(P11_10);
else if (SPI0_CS4_P11_11 == cs_pin) return gpio_get(P11_11);
else if (SPI0_CS5_P11_2 == cs_pin) return gpio_get(P11_2);
else if (SPI0_CS6_P20_10 == cs_pin) return gpio_get(P20_10);
else if (SPI0_CS7_P33_5 == cs_pin) return gpio_get(P33_5);
else if (SPI0_CS8_P20_6 == cs_pin) return gpio_get(P20_6);
else if (SPI0_CS9_P20_3 == cs_pin) return gpio_get(P20_3);
else if (SPI0_CS13_P15_0 == cs_pin) return gpio_get(P15_0);
else if (SPI1_CS0_P20_8 == cs_pin) return gpio_get(P20_8);
else if (SPI1_CS1_P20_9 == cs_pin) return gpio_get(P20_9);
else if (SPI1_CS2_P20_13 == cs_pin) return gpio_get(P20_13);
else if (SPI1_CS3_P11_10 == cs_pin) return gpio_get(P11_10);
else if (SPI1_CS4_P11_11 == cs_pin) return gpio_get(P11_11);
else if (SPI1_CS5_P11_2 == cs_pin) return gpio_get(P11_2);
else if (SPI1_CS6_P33_10 == cs_pin) return gpio_get(P33_10);
else if (SPI1_CS7_P33_5 == cs_pin) return gpio_get(P33_5);
else if (SPI1_CS8_P10_4 == cs_pin) return gpio_get(P10_4);
else if (SPI1_CS9_P10_5 == cs_pin) return gpio_get(P10_5);
else if (SPI1_CS10_P10_0 == cs_pin) return gpio_get(P10_0);
else if (SPI2_CS0_P15_2 == cs_pin) return gpio_get(P15_2);
else if (SPI2_CS1_P14_2 == cs_pin) return gpio_get(P14_2);
else if (SPI2_CS2_P14_6 == cs_pin) return gpio_get(P14_6);
else if (SPI2_CS3_P14_3 == cs_pin) return gpio_get(P14_3);
else if (SPI2_CS5_P15_1 == cs_pin) return gpio_get(P15_1);
else if (SPI2_CS6_P33_13 == cs_pin) return gpio_get(P33_13);
else if (SPI2_CS7_P20_10 == cs_pin) return gpio_get(P20_10);
else if (SPI2_CS8_P20_6 == cs_pin) return gpio_get(P20_6);
else if (SPI2_CS9_P20_3 == cs_pin) return gpio_get(P20_3);
else if (SPI3_CS0_P02_4 == cs_pin) return gpio_get(P02_4);
else if (SPI3_CS1_P02_0 == cs_pin) return gpio_get(P02_0);
else if (SPI3_CS1_P33_9 == cs_pin) return gpio_get(P33_9);
else if (SPI3_CS2_P02_1 == cs_pin) return gpio_get(P02_1);
else if (SPI3_CS2_P33_8 == cs_pin) return gpio_get(P33_8);
else if (SPI3_CS3_P02_2 == cs_pin) return gpio_get(P02_2);
else if (SPI3_CS4_P02_3 == cs_pin) return gpio_get(P02_3);
else if (SPI3_CS4_P23_5 == cs_pin) return gpio_get(P23_5);
else if (SPI3_CS5_P02_8 == cs_pin) return gpio_get(P02_8);
else if (SPI3_CS6_P00_8 == cs_pin) return gpio_get(P00_8);
else if (SPI3_CS7_P00_9 == cs_pin) return gpio_get(P00_9);
else if (SPI3_CS7_P33_7 == cs_pin) return gpio_get(P33_7);
else if (SPI3_CS8_P10_5 == cs_pin) return gpio_get(P10_5);
else if (SPI3_CS11_P33_10 == cs_pin) return gpio_get(P33_10);
else if (SPI3_CS12_P22_2 == cs_pin) return gpio_get(P22_2);
else if (SPI3_CS13_P23_1 == cs_pin) return gpio_get(P23_1);
else
{
ZF_ASSERT(FALSE);
return 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>CS<43><53><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>
}
}
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
@@ -335,6 +390,7 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
while(moudle->STATUS.B.RXFIFOLEVEL == 0); while(moudle->STATUS.B.RXFIFOLEVEL == 0);
*midata = (uint8)IfxQspi_readReceiveFifo(moudle); *midata = (uint8)IfxQspi_readReceiveFifo(moudle);
} }
while(!get_spi_cs_pin(cs_pin));
} }

View File

@@ -264,7 +264,7 @@ void lcd_init(void)
lcd_writeData(0x05); lcd_writeData(0x05);
lcd_writeIndex(0x29); lcd_writeIndex(0x29);
lcd_clear(WHITE);//ȫ<><C8AB> lcd_clear(RGB565_WHITE);//ȫ<><C8AB>
} }
@@ -550,7 +550,7 @@ void showimage(const unsigned char *p)
{ {
int i,j,k; int i,j,k;
unsigned char picH,picL; unsigned char picH,picL;
lcd_clear(WHITE); //<2F><><EFBFBD><EFBFBD> lcd_clear(RGB565_WHITE); //<2F><><EFBFBD><EFBFBD>
for(k=0;k<4;k++) for(k=0;k<4;k++)
{ {
@@ -716,8 +716,8 @@ void lcd_displayimage7725(uint8 *p, uint16 width, uint16 height)
p++; p++;
for(j=0; j<8; j++) for(j=0; j<8; j++)
{ {
if( (temp<<j)&0x80 ) lcd_writedata_16bit(WHITE); if( (temp<<j)&0x80 ) lcd_writedata_16bit(RGB565_WHITE);
else lcd_writedata_16bit(BLACK); else lcd_writedata_16bit(RGB565_BLACK);
} }
} }
} }

View File

@@ -78,10 +78,10 @@
//<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ
#define TFT_PENCOLOR RED #define TFT_PENCOLOR RGB565_RED
//<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ
#define TFT_BGCOLOR WHITE #define TFT_BGCOLOR RGB565_WHITE

View File

@@ -26,16 +26,16 @@
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ---------- //-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ----------
#define RED 0xF800 //<2F><>ɫ #define RGB565_RED 0xF800 //<2F><>ɫ
#define BLUE 0x001F //<2F><>ɫ #define RGB565_BLUE 0x001F //<2F><>ɫ
#define YELLOW 0xFFE0 //<2F><>ɫ #define RGB565_YELLOW 0xFFE0 //<2F><>ɫ
#define GREEN 0x07E0 //<2F><>ɫ #define RGB565_GREEN 0x07E0 //<2F><>ɫ
#define WHITE 0xFFFF //<2F><>ɫ #define RGB565_WHITE 0xFFFF //<2F><>ɫ
#define BLACK 0x0000 //<2F><>ɫ #define RGB565_BLACK 0x0000 //<2F><>ɫ
#define GRAY 0X8430 //<2F><>ɫ #define RGB565_GRAY 0X8430 //<2F><>ɫ
#define BROWN 0XBC40 //<2F><>ɫ #define RGB565_BROWN 0XBC40 //<2F><>ɫ
#define PURPLE 0XF81F //<2F><>ɫ #define RGB565_PURPLE 0XF81F //<2F><>ɫ
#define PINK 0XFE19 //<2F><>ɫ #define RGB565_PINK 0XFE19 //<2F><>ɫ
extern const uint8 tft_ascii[95][16]; extern const uint8 tft_ascii[95][16];

View File

@@ -726,8 +726,8 @@ void ips114_displayimage7725(uint8 *p, uint16 width, uint16 height)
p++; p++;
for(j=0; j<8; j++) for(j=0; j<8; j++)
{ {
if( (temp<<j)&0x80 ) ips114_writedata_16bit(WHITE); if( (temp<<j)&0x80 ) ips114_writedata_16bit(RGB565_WHITE);
else ips114_writedata_16bit(BLACK); else ips114_writedata_16bit(RGB565_BLACK);
} }
} }
} }

View File

@@ -77,10 +77,10 @@
//<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ
#define IPS114_PENCOLOR RED #define IPS114_PENCOLOR RGB565_RED
//<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ
#define IPS114_BGCOLOR WHITE #define IPS114_BGCOLOR RGB565_WHITE

View File

@@ -0,0 +1,931 @@
/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2020,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>824575535
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file 2.0<EFBFBD><EFBFBD>IPS<EFBFBD><EFBFBD>Ļ
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software ADS v1.5.2
* @Target core TC264
* @Taobao https://seekfree.taobao.com/
* @date 2022-05-07
* @note
<20><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------------------------------------------
* ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
* // ˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* RD <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RD_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* WR <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_WR_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* RS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RS_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* RST <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RST_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* CS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_CS_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* BL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_BL_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* D0-D7 <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_Dx_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* VCC 3.3V<EFBFBD><EFBFBD>Դ
* GND <20><>Դ<EFBFBD><D4B4>
* // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* SCL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_SCL_PIN_SPI <20><EFBFBD><EAB6A8>
* SDA <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_SDA_PIN_SPI <20><EFBFBD><EAB6A8>
* RST <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RST_PIN_SPI <20><EFBFBD><EAB6A8>
* DC <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_DC_PIN_SPI <20><EFBFBD><EAB6A8>
* CS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_CS_PIN_SPI <20><EFBFBD><EAB6A8>
* BL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_BL_PIN_SPI <20><EFBFBD><EAB6A8>
* VCC 3.3V<EFBFBD><EFBFBD>Դ
* GND <20><>Դ<EFBFBD><D4B4>
* <20><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD> 320 * 240
* ------------------------------------------------------------------------
********************************************************************************************************************/
#include "SEEKFREE_IPS200.h"
static ips200_type_enum ips200_display_type = IPS200_TYPE_SPI;
static PIN_enum ips_rst_pin = IPS200_RST_PIN_SPI;
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dat <20><><EFBFBD><EFBFBD>
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_w_data(uint8 dat) //д<><D0B4><EFBFBD><EFBFBD>
{
IPS200_DATAPORT1 = (dat << DATA_START_NUM1) | (IPS200_DATAPORT1 & ~((uint32)(0x0F << DATA_START_NUM1)) );
IPS200_DATAPORT2 = ((dat>>4) << DATA_START_NUM2) | (IPS200_DATAPORT2 & ~((uint32)(0x0F << DATA_START_NUM2)) );
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param command <20><><EFBFBD><EFBFBD>
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_wr_reg(uint8 command) //д<><D0B4><EFBFBD><EFBFBD>
{
if(IPS200_TYPE_SPI == ips200_display_type)
{
IPS200_DC(0);
spi_mosi(IPS200_SPIN,IPS200_CS_PIN_SPI,&command,NULL,1,1);
IPS200_DC(1);
}
else
{
IPS200_CS(0);
IPS200_RS(0);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(command);
IPS200_WR(1);
IPS200_CS(1);
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dat 8λ<38><CEBB><EFBFBD><EFBFBD>
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_wr_data(uint8 dat) //<2F><>Һ<EFBFBD><D2BA><EFBFBD><EFBFBD>дһ<D0B4><D2BB><38><CEBB><EFBFBD><EFBFBD>
{
if(IPS200_TYPE_SPI == ips200_display_type)
{
spi_mosi(IPS200_SPIN,IPS200_CS_PIN_SPI,&dat,NULL,1,1);
}
else
{
IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(dat);
IPS200_WR(1);
IPS200_CS(1);
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dat 16λ<36><CEBB><EFBFBD><EFBFBD>
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_wr_data16(uint16 dat) //<2F><>Һ<EFBFBD><D2BA><EFBFBD><EFBFBD>дһ<D0B4><D2BB>16λ<36><CEBB><EFBFBD><EFBFBD>
{
if(IPS200_TYPE_SPI == ips200_display_type)
{
uint8 dat1[2];
dat1[0] = dat >> 8;
dat1[1] = (uint8)dat;
spi_mosi(IPS200_SPIN,IPS200_CS_PIN_SPI,dat1,NULL,2,1);
}
else
{
IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat>>8));
IPS200_WR(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat));
IPS200_WR(1);
IPS200_CS(1);
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param com <20><><EFBFBD><EFBFBD>
// @param dat <20><><EFBFBD><EFBFBD>
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_w_reg(uint8 com,uint8 dat) //д<>Ĵ<EFBFBD><C4B4><EFBFBD>
{
ips200_wr_reg(com);
ips200_wr_data(dat);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
// @param x1 <20><>ʼx<CABC><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param y1 <20><>ʼy<CABC><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param x2 <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param y2 <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2)
{
ips200_wr_reg(0x2a);
ips200_wr_data16(x1);
ips200_wr_data16(x2);
ips200_wr_reg(0x2b);
ips200_wr_data16(y1);
ips200_wr_data16(y2);
ips200_wr_reg(0x2c);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief 2.0<EFBFBD><EFBFBD> IPSҺ<53><D2BA><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
// @return type_select <20><><EFBFBD>ڻ<EFBFBD><DABB>ߴ<EFBFBD><DFB4><EFBFBD>ѡ<EFBFBD><D1A1>
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_init(ips200_type_enum type_select)
{
if(IPS200_TYPE_SPI == type_select)
{
ips200_display_type = IPS200_TYPE_SPI;
ips_rst_pin = IPS200_RST_PIN_SPI;
spi_init(IPS200_SPIN, IPS200_SCL_PIN_SPI, IPS200_SDA_PIN_SPI, IPS200_SDA_IN_PIN_SPI, IPS200_CS_PIN_SPI, 0, 30*1000*1000);//Ӳ<><D3B2>SPI<50><49>ʼ<EFBFBD><CABC>
gpio_init(IPS200_BL_PIN_SPI,GPO,1,PUSHPULL);
gpio_init(IPS200_DC_PIN_SPI,GPO,0,PUSHPULL);
gpio_init(ips_rst_pin,GPO,0,PUSHPULL);
}
else
{
ips200_display_type = IPS200_TYPE_PARALLEL8;
ips_rst_pin = IPS200_RST_PIN_PARALLEL8;
gpio_init(IPS200_D0_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D1_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D2_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D3_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D4_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D5_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D6_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D7_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_BL_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_CS_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(ips_rst_pin, GPO, 0, PUSHPULL);
gpio_init(IPS200_RS_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_WR_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_RD_PIN_PARALLEL8, GPO, 0, PUSHPULL);
}
IPS200_BL(1);
IPS200_RST(0);
systick_delay_ms(STM0, 5);
IPS200_RST(1);
systick_delay_ms(STM0, 5);
ips200_wr_reg(0x11);
systick_delay_ms(STM0, 120);
ips200_wr_reg(0x36);
if (IPS200_DISPLAY_DIR==0) ips200_wr_data(0x00);
else if (IPS200_DISPLAY_DIR==1) ips200_wr_data(0xC0);
else if (IPS200_DISPLAY_DIR==2) ips200_wr_data(0x70);
else ips200_wr_data(0xA0);
ips200_wr_reg(0x3A);
ips200_wr_data(0x05);
ips200_wr_reg(0xB2);
ips200_wr_data(0x0C);
ips200_wr_data(0x0C);
ips200_wr_data(0x00);
ips200_wr_data(0x33);
ips200_wr_data(0x33);
ips200_wr_reg(0xB7);
ips200_wr_data(0x35);
ips200_wr_reg(0xBB);
ips200_wr_data(0x29); //32 Vcom=1.35V
ips200_wr_reg(0xC2);
ips200_wr_data(0x01);
ips200_wr_reg(0xC3);
ips200_wr_data(0x19); //GVDD=4.8V
ips200_wr_reg(0xC4);
ips200_wr_data(0x20); //VDV, 0x20:0v
ips200_wr_reg(0xC5);
ips200_wr_data(0x1A);//VCOM Offset Set
ips200_wr_reg(0xC6);
ips200_wr_data(0x01F); //0x0F:60Hz
ips200_wr_reg(0xD0);
ips200_wr_data(0xA4);
ips200_wr_data(0xA1);
ips200_wr_reg(0xE0);
ips200_wr_data(0xD0);
ips200_wr_data(0x08);
ips200_wr_data(0x0E);
ips200_wr_data(0x09);
ips200_wr_data(0x09);
ips200_wr_data(0x05);
ips200_wr_data(0x31);
ips200_wr_data(0x33);
ips200_wr_data(0x48);
ips200_wr_data(0x17);
ips200_wr_data(0x14);
ips200_wr_data(0x15);
ips200_wr_data(0x31);
ips200_wr_data(0x34);
ips200_wr_reg(0xE1);
ips200_wr_data(0xD0);
ips200_wr_data(0x08);
ips200_wr_data(0x0E);
ips200_wr_data(0x09);
ips200_wr_data(0x09);
ips200_wr_data(0x15);
ips200_wr_data(0x31);
ips200_wr_data(0x33);
ips200_wr_data(0x48);
ips200_wr_data(0x17);
ips200_wr_data(0x14);
ips200_wr_data(0x15);
ips200_wr_data(0x31);
ips200_wr_data(0x34);
ips200_wr_reg(0x21);
ips200_wr_reg(0x29);
ips200_clear(IPS200_BGCOLOR); //<2F><>ʼ<EFBFBD><CABC>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param color <09><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_clear(YELLOW);// ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ɫ
//-------------------------------------------------------------------------------------------------------------------
void ips200_clear(uint16 color)
{
uint16 i,j;
ips200_address_set(0,0,IPS200_X_MAX-1,IPS200_Y_MAX-1);
for(i=0;i<IPS200_X_MAX;i++)
{
for (j=0;j<IPS200_Y_MAX;j++)
{
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ɫ
// @return void
// @since v1.0
// Sample usage: ips200_drawpoint(0,0,RED); //<2F><><EFBFBD><EFBFBD>0,0<><30>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ɫ<EFBFBD>ĵ<EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_drawpoint(uint16 x,uint16 y,uint16 color)
{
ips200_address_set(x,y,x,y);
ips200_wr_data16(color);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD>ַ<EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_X_MAX-1)
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_Y_MAX/16-1)
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD>ַ<EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_showchar(0,0,'x');//<2F><><EFBFBD><EFBFBD>0,0дһ<D0B4><D2BB><EFBFBD>ַ<EFBFBD>x
//-------------------------------------------------------------------------------------------------------------------
void ips200_showchar(uint16 x,uint16 y,const int8 dat)
{
uint8 i,j;
uint8 temp;
for(i=0; i<16; i++)
{
ips200_address_set(x,y+i,x+7,y+i);
temp = tft_ascii[(uint16)dat-32][i];//<2F><>32<33><32>Ϊ<EFBFBD><CEAA>ȡģ<C8A1>Ǵӿո<D3BF><D5B8><EFBFBD>ʼȡ<CABC><C8A1> <20>ո<EFBFBD><D5B8><EFBFBD>ascii<69><69><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>32
for(j=0; j<8; j++)
{
if(temp&0x01) ips200_wr_data16(IPS200_PENCOLOR);
else ips200_wr_data16(IPS200_BGCOLOR);
temp>>=1;
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_X_MAX-1)
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_Y_MAX/16-1)
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_showstr(0,0,"seekfree");
//-------------------------------------------------------------------------------------------------------------------
void ips200_showstr(uint16 x,uint16 y,const int8 dat[])
{
uint16 j;
j = 0;
while(dat[j] != '\0')
{
ips200_showchar(x+8*j,y*16,dat[j]);
j++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<38>з<EFBFBD><D0B7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>int8
// @return void
// @since v1.0
// Sample usage: ips200_showint8(0,0,x);//xΪint8<74><38><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showint8(uint16 x,uint16 y,int8 dat)
{
uint8 a[3];
uint8 i;
if(dat<0)
{
ips200_showchar(x,y*16,'-');
dat = -dat;
}
else ips200_showchar(x,y*16,' ');
a[0] = dat/100;
a[1] = dat/10%10;
a[2] = dat%10;
i = 0;
while(i<3)
{
ips200_showchar(x+(8*(i+1)),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<38>޷<EFBFBD><DEB7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uint8
// @return void
// @since v1.0
// Sample usage: ips200_showuint8(0,0,x);//xΪuint8<74><38><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showuint8(uint16 x,uint16 y,uint8 dat)
{
uint8 a[3];
uint8 i;
a[0] = dat/100;
a[1] = dat/10%10;
a[2] = dat%10;
i = 0;
while(i<3)
{
ips200_showchar(x+(8*i),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ16λ<36>з<EFBFBD><D0B7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>int16
// @return void
// @since v1.0
// Sample usage: ips200_showint16(0,0,x);//xΪint16<31><36><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showint16(uint16 x,uint16 y,int16 dat)
{
uint8 a[5];
uint8 i;
if(dat<0)
{
ips200_showchar(x,y*16,'-');
dat = -dat;
}
else ips200_showchar(x,y*16,' ');
a[0] = dat/10000;
a[1] = dat/1000%10;
a[2] = dat/100%10;
a[3] = dat/10%10;
a[4] = dat%10;
i = 0;
while(i<5)
{
ips200_showchar(x+(8*(i+1)),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ16λ<36>޷<EFBFBD><DEB7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uint16
// @return void
// @since v1.0
// Sample usage: ips200_showuint16(0,0,x);//xΪuint16<31><36><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showuint16(uint16 x,uint16 y,uint16 dat)
{
uint8 a[5];
uint8 i;
a[0] = dat/10000;
a[1] = dat/1000%10;
a[2] = dat/100%10;
a[3] = dat/10%10;
a[4] = dat%10;
i = 0;
while(i<5)
{
ips200_showchar(x+(8*i),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ32λ<32>з<EFBFBD><D0B7><EFBFBD><><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>0)
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uint32
// @param num <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE>λ<EFBFBD><CEBB> <20><><EFBFBD><EFBFBD>10λ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_showint32(0,0,x,3);//x<><78><EFBFBD><EFBFBD>Ϊint32 uint16 int16 uint8 int8<74><38><EFBFBD><EFBFBD>
// Sample usage: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB> <20><>-<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB><EFBFBD>ո<EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showint32(uint16 x,uint16 y,int dat,uint8 num)
{
int8 buff[34];
uint32 length;
if(10<num) num = 10;
num++;
if(0>dat) length = zf_sprintf(&buff[0],"%d",dat);//<2F><><EFBFBD><EFBFBD>
else
{
buff[0] = ' ';
length = zf_sprintf(&buff[1],"%d",dat);
length++;
}
while(length < num)
{
buff[length] = ' ';
length++;
}
buff[num] = '\0';
ips200_showstr(x, y, buff); //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>0)
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>float<61><74>double
// @param num <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>10λ
// @param pointnum С<><D0A1>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips_showfloat(0,0,x,2,3);//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾС<><D0A1><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>λ
// @note <20>ر<EFBFBD>ע<EFBFBD><EFBFBD><E2B5B1><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD>µģ<C2B5><C4A3><EFBFBD><E2B2A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A3AC><EFBFBD><EFBFBD><EFBFBD>аٶ<D0B0>ѧϰ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB> <20><>-<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB><EFBFBD>ո<EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showfloat(uint16 x,uint16 y,double dat,int8 num,int8 pointnum)
{
uint32 length;
int8 buff[34];
int8 start,end,point;
if(6<pointnum) pointnum = 6;
if(10<num) num = 10;
if(0>dat) length = zf_sprintf( &buff[0],"%f",dat);//<2F><><EFBFBD><EFBFBD>
else
{
length = zf_sprintf( &buff[1],"%f",dat);
length++;
}
point = (int8)(length - 7); //<2F><><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
start = point - num - 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼλ
end = point + pointnum + 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
while(0>start)//<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> ĩβӦ<CEB2><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ո<EFBFBD>
{
buff[end] = ' ';
end++;
start++;
}
if(0>dat) buff[start] = '-';
else buff[start] = ' ';
buff[end] = '\0';
ips200_showstr(x, y, buff); //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<38>޷<EFBFBD><DEB7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param w ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param l ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @return void
// @since v1.0
// Sample usage: ips200_showimage(0,0,10,20,&image);//ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(0,0)<29><><EFBFBD><EFBFBD>10<31><30><EFBFBD><EFBFBD>20<32><30>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showimage(uint16 x,uint16 y,uint16 w,uint16 l,const unsigned char *p)
{
int i;
unsigned char picH,picL;
ips200_address_set(x,y,x+w-1,y+l-1);
for(i=0;i<w*l;i++)
{
picL=*(p+i*2);
picH=*(p+i*2+1);
ips200_wr_data16(picH<<8|picL);
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage032(mt9v03x_csi_image[0], MT9V03X_CSI_W, MT9V03X_CSI_H)//<2F><>ʾ<EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
// @note ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage032(uint8 *p, uint16 width, uint16 height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
uint16 coord_x = 0;
uint16 coord_y = 0;
coord_x = width>IPS200_X_MAX?IPS200_X_MAX:width;
coord_y = height>IPS200_Y_MAX?IPS200_Y_MAX:height;
ips200_address_set(0,0,coord_x-1,coord_y-1);
for(j=0;j<coord_y;j++)
{
for(i=0;i<coord_x;i++)
{
temp = *(p+j*width+i*width/coord_x);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 0 -<2D><>IPS200_X_MAX-1<><31>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 0 -<2D><>IPS200_Y_MAX-1<><31>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage032_zoom(mt9v03x_csi_image[0], MT9V03X_CSI_W, MT9V03X_CSI_H, MT9V03X_CSI_W, MT9V03X_CSI_H)//<2F><>ʾ<EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
// @note ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage032_zoom(uint8 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
ips200_address_set(0,0,dis_width-1,dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
temp = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param start_x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param start_y <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 1 -<2D><>TFT_X_MAX<41><58>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 1 -<2D><>TFT_Y_MAX<41><58>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage032_zoom1(mt9v03x_csi_image[0], MT9V03X_CSI_W, MT9V03X_CSI_H, 0, 0, MT9V03X_CSI_W, MT9V03X_CSI_H)//<2F><>ʾ<EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage032_zoom1(uint8 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD>Ƿ񳬹<C7B7><F1B3ACB9><EFBFBD>Ļ<EFBFBD>ķֱ<C4B7><D6B1><EFBFBD>
if((start_x+dis_width)>IPS200_X_MAX) ZF_ASSERT(0);
if((start_y+dis_height)>IPS200_Y_MAX) ZF_ASSERT(0);
ips200_address_set(start_x,start_y,start_x+dis_width-1,start_y+dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
temp = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><>ͫ(<28><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 0 -<2D><>TFT_X_MAX-1<><31>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 0 -<2D><>TFT_Y_MAX-1<><31>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage8660_zoom(scc8660_csi_image[0], SCC8660_CSI_PIC_W, SCC8660_CSI_PIC_H, 320, 240);//<2F><>ʾ<EFBFBD><CABE>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
// @note <20>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ݸ<EFBFBD>ʽ(SCC8660_DATA_FORMAT)<29><><EFBFBD><EFBFBD>Ϊ0ʱ<30><CAB1><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ɫͼ<C9AB><CDBC>
// ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage8660_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
ips200_address_set(0,0,dis_width-1,dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
color = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color = ((color&0xff)<<8) | (color>>8);
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><>ͫ(<28><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param start_x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param start_y <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 1 -<2D><>TFT_X_MAX<41><58>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 1 -<2D><>TFT_Y_MAX<41><58>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage8660_zoom1(scc8660_csi_image[0], SCC8660_CSI_PIC_W, SCC8660_CSI_PIC_H, 0, 0, 320, 240);
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage8660_zoom1(uint16 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD>Ƿ񳬹<C7B7><F1B3ACB9><EFBFBD>Ļ<EFBFBD>ķֱ<C4B7><D6B1><EFBFBD>
if((start_x+dis_width)>IPS200_X_MAX) ZF_ASSERT(0);
if((start_y+dis_height)>IPS200_Y_MAX) ZF_ASSERT(0);
ips200_address_set(start_x,start_y,start_x+dis_width-1,start_y+dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
color = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color = ((color&0xff)<<8) | (color>>8);
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><>ͫ(<28><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>(<28><>ʾ<EFBFBD>Ҷ<EFBFBD>)
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 0 -<2D><>TFT_X_MAX-1<><31>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 0 -<2D><>TFT_Y_MAX-1<><31>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage8660_grayscale_zoom(scc8660_csi_image[0], SCC8660_CSI_PIC_W, SCC8660_CSI_PIC_H, 320, 240)//<2F><>ʾ<EFBFBD><CABE>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷͼ<CDB7><CDBC> <20><>ʾY<CABE><59><EFBFBD><EFBFBD>
// @note <20>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ݸ<EFBFBD>ʽ(SCC8660_DATA_FORMAT)<29><><EFBFBD><EFBFBD>Ϊ2ʱ<32><CAB1><EFBFBD><EFBFBD>ȡY<C8A1><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>Ҷ<EFBFBD>ͼ<EFBFBD><CDBC>
// ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage8660_grayscale_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
ips200_address_set(0,0,dis_width-1,dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
temp = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
temp = temp&0xff;
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief С<><D0A1><EFBFBD><EFBFBD>(<28><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @return void
// @since v1.0
// @note ͼ<><CDBC><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>120(<28><>)*160(<28><>)<29><><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height)
{
int i,j;
uint16 temp = 0;
ips200_address_set(0,0,width-1,height-1);
for(i=0;i<height * (width/8);i++)
{
temp = *p;
p++;
for(j=0; j<8; j++)
{
if( (temp<<j)&0x80 ) ips200_wr_data16(RGB565_WHITE);
else ips200_wr_data16(RGB565_BLACK);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
// @param x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0-<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0-<2D><>IPS200_Y_MAX-1<><31>
// @param size ȡģ<C8A1><C4A3>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>õĵ<C3B5><C4B5>󳤿<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ٸ<EFBFBD><D9B8>㣬ȡģ<C8A1><C4A3>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ġ<EFBFBD>
// @param *p <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param number <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>λ
// @param color <20><>ʾ<EFBFBD><CABE>ɫ
// @return void
// @since v1.0
// Sample usage: ips200_display_chinese(0,0,16,chinese_test[0],4,RED);//<2F><>ʾfont<6E>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ʾ<><CABE>
// @Note ʹ<><CAB9>PCtoLCD2002<30><32><EFBFBD><EFBFBD>ȡģ <20><><EFBFBD><EFBFBD><EBA1A2><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>˳<EFBFBD><CBB3> 16*16
//-------------------------------------------------------------------------------------------------------------------
void ips200_display_chinese(uint16 x, uint16 y, uint8 size, const uint8 *p, uint8 number, uint16 color)
{
int i, j, k;
uint8 temp, temp1, temp2;
const uint8 *p_data;
temp2 = size/8;
ips200_address_set(x,y,number*size-1+x,y+size-1);
for(i=0;i<size;i++)
{
temp1 = number;
p_data = p+i*temp2;
while(temp1--)
{
for(k=0;k<temp2;k++)
{
for(j=8;j>0;j--)
{
temp = (*p_data>>(j-1)) & 0x01;
if(temp) ips200_wr_data16(color);
else ips200_wr_data16(IPS200_BGCOLOR);
}
p_data++;
}
p_data = p_data - temp2 + temp2*size;
}
}
}

View File

@@ -0,0 +1,199 @@
/*/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2020,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>824575535
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file 2.0<EFBFBD><EFBFBD>IPS<EFBFBD><EFBFBD>Ļ
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software ADS v1.5.2
* @Target core TC264
* @Taobao https://seekfree.taobao.com/
* @date 2020-05-07
* @note
<20><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------
* ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
* // ˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* RD <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RD_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* WR <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_WR_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* RS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RS_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* RST <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RST_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* CS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_CS_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* BL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_BL_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* D0-D7 <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_Dx_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* SCL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_SCL_PIN_SPI <20><EFBFBD><EAB6A8>
* SDA <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_SDA_PIN_SPI <20><EFBFBD><EAB6A8>
* RST <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RST_PIN_SPI <20><EFBFBD><EAB6A8>
* DC <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_DC_PIN_SPI <20><EFBFBD><EAB6A8>
* CS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_CS_PIN_SPI <20><EFBFBD><EAB6A8>
* BL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_BL_PIN_SPI <20><EFBFBD><EAB6A8>
* <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
* VCC 3.3V<EFBFBD><EFBFBD>Դ
* GND <20><>Դ<EFBFBD><D4B4>
* <20><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD> 320 * 240
* ------------------------------------
********************************************************************************************************************/
#ifndef _SEEKFREE_IPS200_H
#define _SEEKFREE_IPS200_H
#include "common.h"
#include "stdlib.h"
#include "string.h"
#include "stdio.h"
#include "zf_stm_systick.h"
#include "zf_gpio.h"
#include "zf_assert.h"
#include "SEEKFREE_PRINTF.h"
#include "zf_spi.h"
#include "SEEKFREE_FUN.h"
#include "SEEKFREE_FONT.h"
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>SEEKFREE_FONT.h<>ļ<EFBFBD><C4BC>ж<EFBFBD><D0B6><EFBFBD>----------
//#define RED 0xF800 //<2F><>ɫ
//#define BLUE 0x001F //<2F><>ɫ
//#define YELLOW 0xFFE0 //<2F><>ɫ
//#define GREEN 0x07E0 //<2F><>ɫ
//#define WHITE 0xFFFF //<2F><>ɫ
//#define BLACK 0x0000 //<2F><>ɫ
//#define GRAY 0X8430 //<2F><>ɫ
//#define BROWN 0XBC40 //<2F><>ɫ
//#define PURPLE 0XF81F //<2F><>ɫ
//#define PINK 0XFE19 //<2F><>ɫ
#define IPS200_BGCOLOR RGB565_WHITE //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
#define IPS200_PENCOLOR RGB565_RED //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
// <20><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
#define IPS200_SPIN SPI_2 //<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD>SPI<50><49>
#define IPS200_SCL_PIN_SPI SPI2_SCLK_P15_3 //<2F><><EFBFBD><EFBFBD>SPI_SCK<43><4B><EFBFBD><EFBFBD>
#define IPS200_SDA_PIN_SPI SPI2_MOSI_P15_5 //<2F><><EFBFBD><EFBFBD>SPI_MOSI<53><49><EFBFBD><EFBFBD>
#define IPS200_SDA_IN_PIN_SPI SPI2_MISO_P15_4 //<2F><><EFBFBD><EFBFBD>SPI_MISO<53><4F><EFBFBD><EFBFBD> IPSû<53><C3BB>MISO<53><4F><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><E5A3AC>spi<70>ij<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1>Ҫʹ<D2AA><CAB9>
#define IPS200_CS_PIN_SPI SPI2_CS0_P15_2 //<2F><><EFBFBD><EFBFBD>SPI_CS<43><53><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
#define IPS200_RST_PIN_SPI P15_1 // Һ<><D2BA><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD>
#define IPS200_DC_PIN_SPI P15_0
#define IPS200_BL_PIN_SPI P15_4
//<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
//<2F><><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ѡ<EFBFBD><D1A1>B C D<><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><CBBF>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
#define IPS200_RD_PIN_PARALLEL8 P15_3
#define IPS200_WR_PIN_PARALLEL8 P15_5
#define IPS200_RS_PIN_PARALLEL8 P15_1
#define IPS200_RST_PIN_PARALLEL8 P15_0
#define IPS200_CS_PIN_PARALLEL8 P15_2
#define IPS200_BL_PIN_PARALLEL8 P15_4
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õõ<C3B5>
//D0-D3<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>C0-C3,C1-C4<43>ȵȣ<C8B5>
//D4-D7<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>B0-B3,B1-B4<42>ȵȡ<C8B5>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>ͬ<EFBFBD>˿ڵ<CBBF><DAB5><EFBFBD>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>D0-D3<44><33>C1-C4<43><34><EFBFBD>ӣ<EFBFBD>D4-D7<44><37>B2-B5<42><35><EFBFBD>ӡ<EFBFBD>
//<2F>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD>ע<EFBFBD><D7A2><EFBFBD>޸<EFBFBD>IPS200_DATA_PORT1<54><31>IPS200_DATA_PORT2<54><EFBFBD><EAB6A8>
#define IPS200_D0_PIN_PARALLEL8 P11_9
#define IPS200_D1_PIN_PARALLEL8 P11_10
#define IPS200_D2_PIN_PARALLEL8 P11_11
#define IPS200_D3_PIN_PARALLEL8 P11_12
#define IPS200_D4_PIN_PARALLEL8 P13_0
#define IPS200_D5_PIN_PARALLEL8 P13_1
#define IPS200_D6_PIN_PARALLEL8 P13_2
#define IPS200_D7_PIN_PARALLEL8 P13_3
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ˿<DDB6><CBBF><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>и<EFBFBD><D0B8><EFBFBD>
#define IPS200_DATA_PORT1 3 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT1 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT1].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM1 (IPS200_D0_PIN_PARALLEL8&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_DATA_PORT2 4 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT2 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT2].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM2 (IPS200_D4_PIN_PARALLEL8&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_BL(x) gpio_set(IPS200_BL_PIN_PARALLEL8,x)
#define IPS200_CS(x) gpio_set(IPS200_CS_PIN_PARALLEL8,x)
#define IPS200_RD(x) gpio_set(IPS200_RD_PIN_PARALLEL8,x)
#define IPS200_WR(x) gpio_set(IPS200_WR_PIN_PARALLEL8,x)
#define IPS200_RS(x) gpio_set(IPS200_RS_PIN_PARALLEL8,x)
#define IPS200_RST(x) gpio_set(ips_rst_pin,x)
#define IPS200_DC(x) gpio_set(IPS200_DC_PIN_SPI,x)
#define IPS200_W 240
#define IPS200_H 320
typedef enum
{
IPS200_TYPE_SPI, // SPI <20><><EFBFBD><EFBFBD>
IPS200_TYPE_PARALLEL8, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}ips200_type_enum;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
//0 <20><><EFBFBD><EFBFBD>ģʽ
//1 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
//2 <20><><EFBFBD><EFBFBD>ģʽ
//3 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
#define IPS200_DISPLAY_DIR 0
#if (0==IPS200_DISPLAY_DIR || 1==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_W //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_H //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#elif (2==IPS200_DISPLAY_DIR || 3==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_H //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_W //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#else
#error "IPS200_DISPLAY_DIR <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#endif
void ips200_init(ips200_type_enum type_select); //<2F><>ʼ<EFBFBD><CABC>Ӳ<EFBFBD><D3B2>
void ips200_w_data(uint8 dat);
void ips200_wr_reg(uint8 com);
void ips200_wr_data(uint8 dat);
void ips200_wr_data16(uint16 dat);
void ips200_w_reg(uint8 com,uint8 dat);
void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2);
void ips200_clear(uint16 color);
void ips200_drawpoint(uint16 x,uint16 y,uint16 color);
void ips200_showchar(uint16 x,uint16 y,const int8 dat);
void ips200_showstr(uint16 x,uint16 y,const int8 dat[]);
void ips200_showint8(uint16 x,uint16 y,int8 dat);
void ips200_showuint8(uint16 x,uint16 y,uint8 dat);
void ips200_showint16(uint16 x,uint16 y,int16 dat);
void ips200_showuint16(uint16 x,uint16 y,uint16 dat);
void ips200_showint32(uint16 x,uint16 y,int dat,uint8 num);
void ips200_showfloat(uint16 x,uint16 y,double dat,int8 num,int8 pointnum);
void ips200_showimage(uint16 x,uint16 y,uint16 w,uint16 l,const unsigned char *p);
void ips200_displayimage032(uint8 *p, uint16 width, uint16 height);
void ips200_displayimage032_zoom(uint8 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage032_zoom1(uint8 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom1(uint16 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_grayscale_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height);
void ips200_display_chinese(uint16 x, uint16 y, uint8 size, const uint8 *p, uint8 number, uint16 color);
#endif

View File

@@ -1,896 +0,0 @@
/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2020,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>824575535
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file 2.0<EFBFBD><EFBFBD>IPS<EFBFBD><EFBFBD>Ļ
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software ADS v1.2.2
* @Target core TC264D
* @Taobao https://seekfree.taobao.com/
* @date 2020-3-23
* @note
<09><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------
ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <09><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
D0 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D0_PIN <20><EFBFBD><EAB6A8>
D1 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D1_PIN <20><EFBFBD><EAB6A8>
D2 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D2_PIN <20><EFBFBD><EAB6A8>
D3 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D3_PIN <20><EFBFBD><EAB6A8>
D4 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D4_PIN <20><EFBFBD><EAB6A8>
D5 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D5_PIN <20><EFBFBD><EAB6A8>
D6 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D6_PIN <20><EFBFBD><EAB6A8>
D7 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D7_PIN <20><EFBFBD><EAB6A8>
BL <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_BL_PIN <20><EFBFBD><EAB6A8>
CS <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_CS_PIN <20><EFBFBD><EAB6A8>
RD <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RD_PIN <20><EFBFBD><EAB6A8>
WR <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_WR_PIN <20><EFBFBD><EAB6A8>
RS <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RS_PIN <20><EFBFBD><EAB6A8>
RST <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RST_PIN <20><EFBFBD><EAB6A8>
<09><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
VCC 3.3V<EFBFBD><EFBFBD>Դ
GND <20><>Դ<EFBFBD><D4B4>
<09><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>240*320
------------------------------------
********************************************************************************************************************/
#include "stdlib.h"
#include "string.h"
#include "stdio.h"
#include "zf_stm_systick.h"
#include "zf_gpio.h"
#include "zf_assert.h"
#include "SEEKFREE_PRINTF.h"
#include "SEEKFREE_IPS200_PARALLEL8.h"
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param void
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_w_data(uint8 dat) //д<><D0B4><EFBFBD><EFBFBD>
{
IPS200_DATAPORT1 = (dat << DATA_START_NUM1) | (IPS200_DATAPORT1 & ~((uint32)(0x0F << DATA_START_NUM1)) );
IPS200_DATAPORT2 = ((dat>>4) << DATA_START_NUM2) | (IPS200_DATAPORT2 & ~((uint32)(0x0F << DATA_START_NUM2)) );
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param void
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_wr_reg(uint8 command) //д<><D0B4><EFBFBD><EFBFBD>
{
IPS200_CS(0);
IPS200_RS(0);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(command);
IPS200_WR(1);
IPS200_CS(1);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param void
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_wr_data(uint8 dat) //<2F><>Һ<EFBFBD><D2BA><EFBFBD><EFBFBD>дһ<D0B4><D2BB><38><CEBB><EFBFBD><EFBFBD>
{
IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(dat);
IPS200_WR(1);
IPS200_CS(1);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param void
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_wr_data16(uint16 dat) //<2F><>Һ<EFBFBD><D2BA><EFBFBD><EFBFBD>дһ<D0B4><D2BB>16λ<36><CEBB><EFBFBD><EFBFBD>
{
IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat>>8));
IPS200_WR(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat));
IPS200_WR(1);
IPS200_CS(1);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param void
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_w_reg(uint8 com,uint8 dat) //д<>Ĵ<EFBFBD><C4B4><EFBFBD>
{
ips200_wr_reg(com);
ips200_wr_data(dat);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param void
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2)
{
ips200_wr_reg(0x2a);
ips200_wr_data16(x1);
ips200_wr_data16(x2);
ips200_wr_reg(0x2b);
ips200_wr_data16(y1);
ips200_wr_data16(y2);
ips200_wr_reg(0x2c);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief 2.0<EFBFBD><EFBFBD> IPSҺ<53><D2BA><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
// @return void
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_init(void)
{
gpio_init(IPS200_D0_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D1_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D2_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D3_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D4_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D5_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D6_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D7_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_BL_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_CS_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_RST_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_RS_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_WR_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_RD_PIN, GPO, 0, PUSHPULL);
IPS200_BL(1);
IPS200_RST(0);
systick_delay_ms(STM0, 5);
IPS200_RST(1);
systick_delay_ms(STM0, 5);
ips200_wr_reg(0x11);
systick_delay_ms(STM0, 120);
ips200_wr_reg(0x36);
if (IPS200_DISPLAY_DIR==0) ips200_wr_data(0x00);
else if (IPS200_DISPLAY_DIR==1) ips200_wr_data(0xC0);
else if (IPS200_DISPLAY_DIR==2) ips200_wr_data(0x70);
else ips200_wr_data(0xA0);
ips200_wr_reg(0x3A);
ips200_wr_data(0x05);
ips200_wr_reg(0xB2);
ips200_wr_data(0x0C);
ips200_wr_data(0x0C);
ips200_wr_data(0x00);
ips200_wr_data(0x33);
ips200_wr_data(0x33);
ips200_wr_reg(0xB7);
ips200_wr_data(0x35);
ips200_wr_reg(0xBB);
ips200_wr_data(0x29); //32 Vcom=1.35V
ips200_wr_reg(0xC2);
ips200_wr_data(0x01);
ips200_wr_reg(0xC3);
ips200_wr_data(0x19); //GVDD=4.8V
ips200_wr_reg(0xC4);
ips200_wr_data(0x20); //VDV, 0x20:0v
ips200_wr_reg(0xC5);
ips200_wr_data(0x1A);//VCOM Offset Set
ips200_wr_reg(0xC6);
ips200_wr_data(0x01F); //0x0F:60Hz
ips200_wr_reg(0xD0);
ips200_wr_data(0xA4);
ips200_wr_data(0xA1);
ips200_wr_reg(0xE0);
ips200_wr_data(0xD0);
ips200_wr_data(0x08);
ips200_wr_data(0x0E);
ips200_wr_data(0x09);
ips200_wr_data(0x09);
ips200_wr_data(0x05);
ips200_wr_data(0x31);
ips200_wr_data(0x33);
ips200_wr_data(0x48);
ips200_wr_data(0x17);
ips200_wr_data(0x14);
ips200_wr_data(0x15);
ips200_wr_data(0x31);
ips200_wr_data(0x34);
ips200_wr_reg(0xE1);
ips200_wr_data(0xD0);
ips200_wr_data(0x08);
ips200_wr_data(0x0E);
ips200_wr_data(0x09);
ips200_wr_data(0x09);
ips200_wr_data(0x15);
ips200_wr_data(0x31);
ips200_wr_data(0x33);
ips200_wr_data(0x48);
ips200_wr_data(0x17);
ips200_wr_data(0x14);
ips200_wr_data(0x15);
ips200_wr_data(0x31);
ips200_wr_data(0x34);
ips200_wr_reg(0x21);
ips200_wr_reg(0x29);
ips200_clear(IPS200_BGCOLOR); //<2F><>ʼ<EFBFBD><CABC>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param color <09><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_clear(YELLOW);// ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ɫ
//-------------------------------------------------------------------------------------------------------------------
void ips200_clear(uint16 color)
{
uint16 i,j;
ips200_address_set(0,0,IPS200_X_MAX-1,IPS200_Y_MAX-1);
for(i=0;i<IPS200_X_MAX;i++)
{
for (j=0;j<IPS200_Y_MAX;j++)
{
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ɫ
// @return void
// @since v1.0
// Sample usage: ips200_drawpoint(0,0,RED); //<2F><><EFBFBD><EFBFBD>0,0<><30>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ɫ<EFBFBD>ĵ<EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_drawpoint(uint16 x,uint16 y,uint16 color)
{
ips200_address_set(x,y,x,y);
ips200_wr_data16(color);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD>ַ<EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_X_MAX-1)
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_Y_MAX/16-1)
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD>ַ<EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_showchar(0,0,'x');//<2F><><EFBFBD><EFBFBD>0,0дһ<D0B4><D2BB><EFBFBD>ַ<EFBFBD>x
//-------------------------------------------------------------------------------------------------------------------
void ips200_showchar(uint16 x,uint16 y,const int8 dat)
{
uint8 i,j;
uint8 temp;
for(i=0; i<16; i++)
{
ips200_address_set(x,y+i,x+7,y+i);
temp = tft_ascii[(uint16)dat-32][i];//<2F><>32<33><32>Ϊ<EFBFBD><CEAA>ȡģ<C8A1>Ǵӿո<D3BF><D5B8><EFBFBD>ʼȡ<CABC><C8A1> <20>ո<EFBFBD><D5B8><EFBFBD>ascii<69><69><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>32
for(j=0; j<8; j++)
{
if(temp&0x01) ips200_wr_data16(IPS200_PENCOLOR);
else ips200_wr_data16(IPS200_BGCOLOR);
temp>>=1;
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_X_MAX-1)
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_Y_MAX/16-1)
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_showstr(0,0,"seekfree");
//-------------------------------------------------------------------------------------------------------------------
void ips200_showstr(uint16 x,uint16 y,const int8 dat[])
{
uint16 j;
j = 0;
while(dat[j] != '\0')
{
ips200_showchar(x+8*j,y*16,dat[j]);
j++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<38>з<EFBFBD><D0B7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>int8
// @return void
// @since v1.0
// Sample usage: ips200_showint8(0,0,x);//xΪint8<74><38><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showint8(uint16 x,uint16 y,int8 dat)
{
uint8 a[3];
uint8 i;
if(dat<0)
{
ips200_showchar(x,y*16,'-');
dat = -dat;
}
else ips200_showchar(x,y*16,' ');
a[0] = dat/100;
a[1] = dat/10%10;
a[2] = dat%10;
i = 0;
while(i<3)
{
ips200_showchar(x+(8*(i+1)),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<38>޷<EFBFBD><DEB7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uint8
// @return void
// @since v1.0
// Sample usage: ips200_showuint8(0,0,x);//xΪuint8<74><38><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showuint8(uint16 x,uint16 y,uint8 dat)
{
uint8 a[3];
uint8 i;
a[0] = dat/100;
a[1] = dat/10%10;
a[2] = dat%10;
i = 0;
while(i<3)
{
ips200_showchar(x+(8*i),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ16λ<36>з<EFBFBD><D0B7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>int16
// @return void
// @since v1.0
// Sample usage: ips200_showint16(0,0,x);//xΪint16<31><36><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showint16(uint16 x,uint16 y,int16 dat)
{
uint8 a[5];
uint8 i;
if(dat<0)
{
ips200_showchar(x,y*16,'-');
dat = -dat;
}
else ips200_showchar(x,y*16,' ');
a[0] = dat/10000;
a[1] = dat/1000%10;
a[2] = dat/100%10;
a[3] = dat/10%10;
a[4] = dat%10;
i = 0;
while(i<5)
{
ips200_showchar(x+(8*(i+1)),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ16λ<36>޷<EFBFBD><DEB7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uint16
// @return void
// @since v1.0
// Sample usage: ips200_showuint16(0,0,x);//xΪuint16<31><36><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showuint16(uint16 x,uint16 y,uint16 dat)
{
uint8 a[5];
uint8 i;
a[0] = dat/10000;
a[1] = dat/1000%10;
a[2] = dat/100%10;
a[3] = dat/10%10;
a[4] = dat%10;
i = 0;
while(i<5)
{
ips200_showchar(x+(8*i),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ32λ<32>з<EFBFBD><D0B7><EFBFBD><><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>0)
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uint32
// @param num <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE>λ<EFBFBD><CEBB> <20><><EFBFBD><EFBFBD>10λ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_showint32(0,0,x,3);//x<><78><EFBFBD><EFBFBD>Ϊint32 uint16 int16 uint8 int8<74><38><EFBFBD><EFBFBD>
// Sample usage: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB> <20><>-<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB><EFBFBD>ո<EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showint32(uint16 x,uint16 y,int dat,uint8 num)
{
int8 buff[34];
uint32 length;
if(10<num) num = 10;
num++;
if(0>dat) length = zf_sprintf(&buff[0],"%d",dat);//<2F><><EFBFBD><EFBFBD>
else
{
buff[0] = ' ';
length = zf_sprintf(&buff[1],"%d",dat);
length++;
}
while(length < num)
{
buff[length] = ' ';
length++;
}
buff[num] = '\0';
ips200_showstr(x, y, buff); //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>0)
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>float<61><74>double
// @param num <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>10λ
// @param pointnum С<><D0A1>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips_showfloat(0,0,x,2,3);//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾС<><D0A1><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>λ
// @note <20>ر<EFBFBD>ע<EFBFBD><EFBFBD><E2B5B1><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD>µģ<C2B5><C4A3><EFBFBD><E2B2A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A3AC><EFBFBD><EFBFBD><EFBFBD>аٶ<D0B0>ѧϰ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB> <20><>-<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB><EFBFBD>ո<EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showfloat(uint16 x,uint16 y,double dat,int8 num,int8 pointnum)
{
uint32 length;
int8 buff[34];
int8 start,end,point;
if(6<pointnum) pointnum = 6;
if(10<num) num = 10;
if(0>dat) length = zf_sprintf( &buff[0],"%f",dat);//<2F><><EFBFBD><EFBFBD>
else
{
length = zf_sprintf( &buff[1],"%f",dat);
length++;
}
point = (int8)(length - 7); //<2F><><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
start = point - num - 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼλ
end = point + pointnum + 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
while(0>start)//<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> ĩβӦ<CEB2><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ո<EFBFBD>
{
buff[end] = ' ';
end++;
start++;
}
if(0>dat) buff[start] = '-';
else buff[start] = ' ';
buff[end] = '\0';
ips200_showstr(x, y, buff); //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<38>޷<EFBFBD><DEB7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param w ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param l ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @return void
// @since v1.0
// Sample usage: ips200_showimage(0,0,10,20,&image);//ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(0,0)<29><><EFBFBD><EFBFBD>10<31><30><EFBFBD><EFBFBD>20<32><30>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showimage(uint16 x,uint16 y,uint16 w,uint16 l,const unsigned char *p)
{
int i;
unsigned char picH,picL;
ips200_address_set(x,y,x+w-1,y+l-1);
for(i=0;i<w*l;i++)
{
picL=*(p+i*2);
picH=*(p+i*2+1);
ips200_wr_data16(picH<<8|picL);
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage032(mt9v03x_csi_image[0], MT9V03X_CSI_W, MT9V03X_CSI_H)//<2F><>ʾ<EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
// @note ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage032(uint8 *p, uint16 width, uint16 height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
uint16 coord_x = 0;
uint16 coord_y = 0;
coord_x = width>IPS200_X_MAX?IPS200_X_MAX:width;
coord_y = height>IPS200_Y_MAX?IPS200_Y_MAX:height;
ips200_address_set(0,0,coord_x-1,coord_y-1);
for(j=0;j<coord_y;j++)
{
for(i=0;i<coord_x;i++)
{
temp = *(p+j*width+i*width/coord_x);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 0 -<2D><>IPS200_X_MAX-1<><31>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 0 -<2D><>IPS200_Y_MAX-1<><31>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage032_zoom(mt9v03x_csi_image[0], MT9V03X_CSI_W, MT9V03X_CSI_H, MT9V03X_CSI_W, MT9V03X_CSI_H)//<2F><>ʾ<EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
// @note ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage032_zoom(uint8 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
ips200_address_set(0,0,dis_width-1,dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
temp = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param start_x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param start_y <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 1 -<2D><>TFT_X_MAX<41><58>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 1 -<2D><>TFT_Y_MAX<41><58>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage032_zoom1(mt9v03x_csi_image[0], MT9V03X_CSI_W, MT9V03X_CSI_H, 0, 0, MT9V03X_CSI_W, MT9V03X_CSI_H)//<2F><>ʾ<EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage032_zoom1(uint8 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD>Ƿ񳬹<C7B7><F1B3ACB9><EFBFBD>Ļ<EFBFBD>ķֱ<C4B7><D6B1><EFBFBD>
if((start_x+dis_width)>IPS200_X_MAX) ZF_ASSERT(0);
if((start_y+dis_height)>IPS200_Y_MAX) ZF_ASSERT(0);
ips200_address_set(start_x,start_y,start_x+dis_width-1,start_y+dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
temp = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><>ͫ(<28><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 0 -<2D><>TFT_X_MAX-1<><31>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 0 -<2D><>TFT_Y_MAX-1<><31>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage8660_zoom(scc8660_csi_image[0], SCC8660_CSI_PIC_W, SCC8660_CSI_PIC_H, 320, 240);//<2F><>ʾ<EFBFBD><CABE>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
// @note <20>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ݸ<EFBFBD>ʽ(SCC8660_DATA_FORMAT)<29><><EFBFBD><EFBFBD>Ϊ0ʱ<30><CAB1><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ɫͼ<C9AB><CDBC>
// ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage8660_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
ips200_address_set(0,0,dis_width-1,dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
color = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color = ((color&0xff)<<8) | (color>>8);
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><>ͫ(<28><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param start_x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param start_y <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 1 -<2D><>TFT_X_MAX<41><58>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 1 -<2D><>TFT_Y_MAX<41><58>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage8660_zoom1(scc8660_csi_image[0], SCC8660_CSI_PIC_W, SCC8660_CSI_PIC_H, 0, 0, 320, 240);
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage8660_zoom1(uint16 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD>Ƿ񳬹<C7B7><F1B3ACB9><EFBFBD>Ļ<EFBFBD>ķֱ<C4B7><D6B1><EFBFBD>
if((start_x+dis_width)>IPS200_X_MAX) ZF_ASSERT(0);
if((start_y+dis_height)>IPS200_Y_MAX) ZF_ASSERT(0);
ips200_address_set(start_x,start_y,start_x+dis_width-1,start_y+dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
color = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color = ((color&0xff)<<8) | (color>>8);
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><>ͫ(<28><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>(<28><>ʾ<EFBFBD>Ҷ<EFBFBD>)
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 0 -<2D><>TFT_X_MAX-1<><31>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 0 -<2D><>TFT_Y_MAX-1<><31>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage8660_grayscale_zoom(scc8660_csi_image[0], SCC8660_CSI_PIC_W, SCC8660_CSI_PIC_H, 320, 240)//<2F><>ʾ<EFBFBD><CABE>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷͼ<CDB7><CDBC> <20><>ʾY<CABE><59><EFBFBD><EFBFBD>
// @note <20>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ݸ<EFBFBD>ʽ(SCC8660_DATA_FORMAT)<29><><EFBFBD><EFBFBD>Ϊ2ʱ<32><CAB1><EFBFBD><EFBFBD>ȡY<C8A1><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>Ҷ<EFBFBD>ͼ<EFBFBD><CDBC>
// ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage8660_grayscale_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
ips200_address_set(0,0,dis_width-1,dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
temp = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
temp = temp&0xff;
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief С<><D0A1><EFBFBD><EFBFBD>(<28><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @return void
// @since v1.0
// @note ͼ<><CDBC><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>120(<28><>)*160(<28><>)<29><><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height)
{
int i,j;
uint16 temp = 0;
ips200_address_set(0,0,width-1,height-1);
for(i=0;i<height * (width/8);i++)
{
temp = *p;
p++;
for(j=0; j<8; j++)
{
if( (temp<<j)&0x80 ) ips200_wr_data16(WHITE);
else ips200_wr_data16(BLACK);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
// @param x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0-<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0-<2D><>IPS200_Y_MAX-1<><31>
// @param size ȡģ<C8A1><C4A3>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>õĵ<C3B5><C4B5>󳤿<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ٸ<EFBFBD><D9B8>㣬ȡģ<C8A1><C4A3>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ġ<EFBFBD>
// @param *p <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param number <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>λ
// @param color <20><>ʾ<EFBFBD><CABE>ɫ
// @return void
// @since v1.0
// Sample usage: ips200_display_chinese(0,0,16,chinese_test[0],4,RED);//<2F><>ʾfont<6E>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ʾ<><CABE>
// @Note ʹ<><CAB9>PCtoLCD2002<30><32><EFBFBD><EFBFBD>ȡģ <20><><EFBFBD><EFBFBD><EBA1A2><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>˳<EFBFBD><CBB3> 16*16
//-------------------------------------------------------------------------------------------------------------------
void ips200_display_chinese(uint16 x, uint16 y, uint8 size, const uint8 *p, uint8 number, uint16 color)
{
int i, j, k;
uint8 temp, temp1, temp2;
const uint8 *p_data;
temp2 = size/8;
ips200_address_set(x,y,number*size-1+x,y+size-1);
for(i=0;i<size;i++)
{
temp1 = number;
p_data = p+i*temp2;
while(temp1--)
{
for(k=0;k<temp2;k++)
{
for(j=8;j>0;j--)
{
temp = (*p_data>>(j-1)) & 0x01;
if(temp) ips200_wr_data16(color);
else ips200_wr_data16(IPS200_BGCOLOR);
}
p_data++;
}
p_data = p_data - temp2 + temp2*size;
}
}
}

View File

@@ -1,180 +0,0 @@
/*/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2020,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>824575535
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file 2.0<EFBFBD><EFBFBD>IPS<EFBFBD><EFBFBD>Ļ
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software ADS v1.2.2
* @Target core TC264D
* @Taobao https://seekfree.taobao.com/
* @date 2020-3-23
* @note
<09><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------
ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <09><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
D0 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D0_PIN <20><EFBFBD><EAB6A8>
D1 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D1_PIN <20><EFBFBD><EAB6A8>
D2 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D2_PIN <20><EFBFBD><EAB6A8>
D3 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D3_PIN <20><EFBFBD><EAB6A8>
D4 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D4_PIN <20><EFBFBD><EAB6A8>
D5 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D5_PIN <20><EFBFBD><EAB6A8>
D6 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D6_PIN <20><EFBFBD><EAB6A8>
D7 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D7_PIN <20><EFBFBD><EAB6A8>
BL <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_BL_PIN <20><EFBFBD><EAB6A8>
CS <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_CS_PIN <20><EFBFBD><EAB6A8>
RD <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RD_PIN <20><EFBFBD><EAB6A8>
WR <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_WR_PIN <20><EFBFBD><EAB6A8>
RS <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RS_PIN <20><EFBFBD><EAB6A8>
RST <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RST_PIN <20><EFBFBD><EAB6A8>
<09><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
VCC 3.3V<EFBFBD><EFBFBD>Դ
GND <20><>Դ<EFBFBD><D4B4>
<09><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>240*320
------------------------------------
********************************************************************************************************************/
#ifndef _SEEKFREE_IPS200PARALLEL8_H
#define _SEEKFREE_IPS200PARALLEL8_H
#include "common.h"
#include "SEEKFREE_FONT.h"
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>SEEKFREE_FONT.h<>ļ<EFBFBD><C4BC>ж<EFBFBD><D0B6><EFBFBD>----------
//#define RED 0xF800 //<2F><>ɫ
//#define BLUE 0x001F //<2F><>ɫ
//#define YELLOW 0xFFE0 //<2F><>ɫ
//#define GREEN 0x07E0 //<2F><>ɫ
//#define WHITE 0xFFFF //<2F><>ɫ
//#define BLACK 0x0000 //<2F><>ɫ
//#define GRAY 0X8430 //<2F><>ɫ
//#define BROWN 0XBC40 //<2F><>ɫ
//#define PURPLE 0XF81F //<2F><>ɫ
//#define PINK 0XFE19 //<2F><>ɫ
#define IPS200_BGCOLOR WHITE //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
#define IPS200_PENCOLOR RED //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
//<2F><><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ѡ<EFBFBD><D1A1>B C D<><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><CBBF>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
#define IPS200_RD_PIN P15_3
#define IPS200_WR_PIN P15_5
#define IPS200_RS_PIN P15_1
#define IPS200_RST_PIN P15_0
#define IPS200_CS_PIN P15_2
#define IPS200_BL_PIN P15_4
//D0-D3<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>C0-C3,C1-C4<43>ȵȣ<C8B5>
//D4-D7<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>B0-B3,B1-B4<42>ȵȡ<C8B5>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>ͬ<EFBFBD>˿ڵ<CBBF><DAB5><EFBFBD>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>D0-D3<44><33>C1-C4<43><34><EFBFBD>ӣ<EFBFBD>D4-D7<44><37>B2-B5<42><35><EFBFBD>ӡ<EFBFBD>
//<2F>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD>ע<EFBFBD><D7A2><EFBFBD>޸<EFBFBD>IPS200_DATA_PORT1<54><31>IPS200_DATA_PORT2<54><EFBFBD><EAB6A8>
#define IPS200_D0_PIN P11_9
#define IPS200_D1_PIN P11_10
#define IPS200_D2_PIN P11_11
#define IPS200_D3_PIN P11_12
#define IPS200_D4_PIN P13_0
#define IPS200_D5_PIN P13_1
#define IPS200_D6_PIN P13_2
#define IPS200_D7_PIN P13_3
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ˿<DDB6><CBBF><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>и<EFBFBD><D0B8><EFBFBD>
#define IPS200_DATA_PORT1 3 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT1 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT1].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM1 (IPS200_D0_PIN&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_DATA_PORT2 4 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT2 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT2].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM2 (IPS200_D4_PIN&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_BL(x) gpio_set(IPS200_BL_PIN,x)
#define IPS200_CS(x) gpio_set(IPS200_CS_PIN,x)
#define IPS200_RD(x) gpio_set(IPS200_RD_PIN,x)
#define IPS200_WR(x) gpio_set(IPS200_WR_PIN,x)
#define IPS200_RS(x) gpio_set(IPS200_RS_PIN,x)
#define IPS200_RST(x) gpio_set(IPS200_RST_PIN,x)
#define IPS200_W 240
#define IPS200_H 320
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
//0 <20><><EFBFBD><EFBFBD>ģʽ
//1 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
//2 <20><><EFBFBD><EFBFBD>ģʽ
//3 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
#define IPS200_DISPLAY_DIR 0
#if (0==IPS200_DISPLAY_DIR || 1==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_W //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_H //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#elif (2==IPS200_DISPLAY_DIR || 3==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_H //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_W //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#else
#error "IPS200_DISPLAY_DIR <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#endif
void ips200_init(void); //<2F><>ʼ<EFBFBD><CABC>Ӳ<EFBFBD><D3B2>
void ips200_w_data(uint8 dat);
void ips200_wr_reg(uint8 com);
void ips200_wr_data(uint8 dat);
void ips200_wr_data16(uint16 dat);
void ips200_w_reg(uint8 com,uint8 dat);
void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2);
void ips200_clear(uint16 color);
void ips200_drawpoint(uint16 x,uint16 y,uint16 color);
void ips200_showchar(uint16 x,uint16 y,const int8 dat);
void ips200_showstr(uint16 x,uint16 y,const int8 dat[]);
void ips200_showint8(uint16 x,uint16 y,int8 dat);
void ips200_showuint8(uint16 x,uint16 y,uint8 dat);
void ips200_showint16(uint16 x,uint16 y,int16 dat);
void ips200_showuint16(uint16 x,uint16 y,uint16 dat);
void ips200_showint32(uint16 x,uint16 y,int dat,uint8 num);
void ips200_showfloat(uint16 x,uint16 y,double dat,int8 num,int8 pointnum);
void ips200_showimage(uint16 x,uint16 y,uint16 w,uint16 l,const unsigned char *p);
void ips200_displayimage032(uint8 *p, uint16 width, uint16 height);
void ips200_displayimage032_zoom(uint8 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage032_zoom1(uint8 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom1(uint16 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_grayscale_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height);
void ips200_display_chinese(uint16 x, uint16 y, uint8 size, const uint8 *p, uint8 number, uint16 color);
#endif

View File

@@ -1,3 +1,5 @@
V1.2.9
ɾ<><C9BE>SEEKFREE_IPS200_PARALLEL8<4C>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SEEKFREE_IPS200<30><30><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD>е<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
V1.2.8 V1.2.8
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD><EFBFBD>PCLK_MODE<44><45>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>λ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD><EFBFBD>PCLK_MODE<44><45>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>λ

View File

@@ -61,7 +61,7 @@
#include "SEEKFREE_MMA8451.h" #include "SEEKFREE_MMA8451.h"
#include "SEEKFREE_L3G4200D.h" #include "SEEKFREE_L3G4200D.h"
#include "SEEKFREE_WIRELESS.h" #include "SEEKFREE_WIRELESS.h"
#include "SEEKFREE_IPS200_PARALLEL8.h" #include "SEEKFREE_IPS200.h"
#include "SEEKFREE_7725.h" #include "SEEKFREE_7725.h"
#include "SEEKFREE_RDA5807.h" #include "SEEKFREE_RDA5807.h"
#include "SEEKFREE_7725_UART.h" #include "SEEKFREE_7725_UART.h"

View File

@@ -24,7 +24,7 @@
#include "IfxQspi.h" #include "IfxQspi.h"
#include "zf_assert.h" #include "zf_assert.h"
#include "zf_spi.h" #include "zf_spi.h"
#include "zf_gpio.h"
#define MAX_BAUD 50000000 #define MAX_BAUD 50000000
@@ -183,7 +183,62 @@ void spi_mux(SPIN_enum spi_n, SPI_PIN_enum sck_pin, SPI_PIN_enum mosi_pin, SPI_P
} }
uint8 get_spi_cs_pin(SPI_PIN_enum cs_pin)
{
if (SPI0_CS0_P20_8 == cs_pin) return gpio_get(P20_8);
else if (SPI0_CS1_P20_9 == cs_pin) return gpio_get(P20_9);
else if (SPI0_CS2_P20_13 == cs_pin) return gpio_get(P20_13);
else if (SPI0_CS3_P11_10 == cs_pin) return gpio_get(P11_10);
else if (SPI0_CS4_P11_11 == cs_pin) return gpio_get(P11_11);
else if (SPI0_CS5_P11_2 == cs_pin) return gpio_get(P11_2);
else if (SPI0_CS6_P20_10 == cs_pin) return gpio_get(P20_10);
else if (SPI0_CS7_P33_5 == cs_pin) return gpio_get(P33_5);
else if (SPI0_CS8_P20_6 == cs_pin) return gpio_get(P20_6);
else if (SPI0_CS9_P20_3 == cs_pin) return gpio_get(P20_3);
else if (SPI0_CS13_P15_0 == cs_pin) return gpio_get(P15_0);
else if (SPI1_CS0_P20_8 == cs_pin) return gpio_get(P20_8);
else if (SPI1_CS1_P20_9 == cs_pin) return gpio_get(P20_9);
else if (SPI1_CS2_P20_13 == cs_pin) return gpio_get(P20_13);
else if (SPI1_CS3_P11_10 == cs_pin) return gpio_get(P11_10);
else if (SPI1_CS4_P11_11 == cs_pin) return gpio_get(P11_11);
else if (SPI1_CS5_P11_2 == cs_pin) return gpio_get(P11_2);
else if (SPI1_CS6_P33_10 == cs_pin) return gpio_get(P33_10);
else if (SPI1_CS7_P33_5 == cs_pin) return gpio_get(P33_5);
else if (SPI1_CS8_P10_4 == cs_pin) return gpio_get(P10_4);
else if (SPI1_CS9_P10_5 == cs_pin) return gpio_get(P10_5);
else if (SPI1_CS10_P10_0 == cs_pin) return gpio_get(P10_0);
else if (SPI2_CS0_P15_2 == cs_pin) return gpio_get(P15_2);
else if (SPI2_CS1_P14_2 == cs_pin) return gpio_get(P14_2);
else if (SPI2_CS2_P14_6 == cs_pin) return gpio_get(P14_6);
else if (SPI2_CS3_P14_3 == cs_pin) return gpio_get(P14_3);
else if (SPI2_CS5_P15_1 == cs_pin) return gpio_get(P15_1);
else if (SPI2_CS6_P33_13 == cs_pin) return gpio_get(P33_13);
else if (SPI2_CS7_P20_10 == cs_pin) return gpio_get(P20_10);
else if (SPI2_CS8_P20_6 == cs_pin) return gpio_get(P20_6);
else if (SPI2_CS9_P20_3 == cs_pin) return gpio_get(P20_3);
else if (SPI3_CS0_P02_4 == cs_pin) return gpio_get(P02_4);
else if (SPI3_CS1_P02_0 == cs_pin) return gpio_get(P02_0);
else if (SPI3_CS1_P33_9 == cs_pin) return gpio_get(P33_9);
else if (SPI3_CS2_P02_1 == cs_pin) return gpio_get(P02_1);
else if (SPI3_CS2_P33_8 == cs_pin) return gpio_get(P33_8);
else if (SPI3_CS3_P02_2 == cs_pin) return gpio_get(P02_2);
else if (SPI3_CS4_P02_3 == cs_pin) return gpio_get(P02_3);
else if (SPI3_CS4_P23_5 == cs_pin) return gpio_get(P23_5);
else if (SPI3_CS5_P02_8 == cs_pin) return gpio_get(P02_8);
else if (SPI3_CS6_P00_8 == cs_pin) return gpio_get(P00_8);
else if (SPI3_CS7_P00_9 == cs_pin) return gpio_get(P00_9);
else if (SPI3_CS7_P33_7 == cs_pin) return gpio_get(P33_7);
else if (SPI3_CS8_P10_5 == cs_pin) return gpio_get(P10_5);
else if (SPI3_CS11_P33_10 == cs_pin) return gpio_get(P33_10);
else if (SPI3_CS12_P22_2 == cs_pin) return gpio_get(P22_2);
else if (SPI3_CS13_P23_1 == cs_pin) return gpio_get(P23_1);
else
{
ZF_ASSERT(FALSE);
return 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>CS<43><53><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>
}
}
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
@@ -335,6 +390,7 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
while(moudle->STATUS.B.RXFIFOLEVEL == 0); while(moudle->STATUS.B.RXFIFOLEVEL == 0);
*midata = (uint8)IfxQspi_readReceiveFifo(moudle); *midata = (uint8)IfxQspi_readReceiveFifo(moudle);
} }
while(!get_spi_cs_pin(cs_pin));
} }

View File

@@ -264,7 +264,7 @@ void lcd_init(void)
lcd_writeData(0x05); lcd_writeData(0x05);
lcd_writeIndex(0x29); lcd_writeIndex(0x29);
lcd_clear(WHITE);//ȫ<><C8AB> lcd_clear(RGB565_WHITE);//ȫ<><C8AB>
} }
@@ -550,7 +550,7 @@ void showimage(const unsigned char *p)
{ {
int i,j,k; int i,j,k;
unsigned char picH,picL; unsigned char picH,picL;
lcd_clear(WHITE); //<2F><><EFBFBD><EFBFBD> lcd_clear(RGB565_WHITE); //<2F><><EFBFBD><EFBFBD>
for(k=0;k<4;k++) for(k=0;k<4;k++)
{ {
@@ -716,8 +716,8 @@ void lcd_displayimage7725(uint8 *p, uint16 width, uint16 height)
p++; p++;
for(j=0; j<8; j++) for(j=0; j<8; j++)
{ {
if( (temp<<j)&0x80 ) lcd_writedata_16bit(WHITE); if( (temp<<j)&0x80 ) lcd_writedata_16bit(RGB565_WHITE);
else lcd_writedata_16bit(BLACK); else lcd_writedata_16bit(RGB565_BLACK);
} }
} }
} }

View File

@@ -78,10 +78,10 @@
//<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ
#define TFT_PENCOLOR RED #define TFT_PENCOLOR RGB565_RED
//<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ
#define TFT_BGCOLOR WHITE #define TFT_BGCOLOR RGB565_WHITE

View File

@@ -26,16 +26,16 @@
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ---------- //-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ----------
#define RED 0xF800 //<2F><>ɫ #define RGB565_RED 0xF800 //<2F><>ɫ
#define BLUE 0x001F //<2F><>ɫ #define RGB565_BLUE 0x001F //<2F><>ɫ
#define YELLOW 0xFFE0 //<2F><>ɫ #define RGB565_YELLOW 0xFFE0 //<2F><>ɫ
#define GREEN 0x07E0 //<2F><>ɫ #define RGB565_GREEN 0x07E0 //<2F><>ɫ
#define WHITE 0xFFFF //<2F><>ɫ #define RGB565_WHITE 0xFFFF //<2F><>ɫ
#define BLACK 0x0000 //<2F><>ɫ #define RGB565_BLACK 0x0000 //<2F><>ɫ
#define GRAY 0X8430 //<2F><>ɫ #define RGB565_GRAY 0X8430 //<2F><>ɫ
#define BROWN 0XBC40 //<2F><>ɫ #define RGB565_BROWN 0XBC40 //<2F><>ɫ
#define PURPLE 0XF81F //<2F><>ɫ #define RGB565_PURPLE 0XF81F //<2F><>ɫ
#define PINK 0XFE19 //<2F><>ɫ #define RGB565_PINK 0XFE19 //<2F><>ɫ
extern const uint8 tft_ascii[95][16]; extern const uint8 tft_ascii[95][16];

View File

@@ -726,8 +726,8 @@ void ips114_displayimage7725(uint8 *p, uint16 width, uint16 height)
p++; p++;
for(j=0; j<8; j++) for(j=0; j<8; j++)
{ {
if( (temp<<j)&0x80 ) ips114_writedata_16bit(WHITE); if( (temp<<j)&0x80 ) ips114_writedata_16bit(RGB565_WHITE);
else ips114_writedata_16bit(BLACK); else ips114_writedata_16bit(RGB565_BLACK);
} }
} }
} }

View File

@@ -77,10 +77,10 @@
//<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ
#define IPS114_PENCOLOR RED #define IPS114_PENCOLOR RGB565_RED
//<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ
#define IPS114_BGCOLOR WHITE #define IPS114_BGCOLOR RGB565_WHITE

View File

@@ -0,0 +1,931 @@
/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2020,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>824575535
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file 2.0<EFBFBD><EFBFBD>IPS<EFBFBD><EFBFBD>Ļ
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software ADS v1.5.2
* @Target core TC264
* @Taobao https://seekfree.taobao.com/
* @date 2022-05-07
* @note
<20><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------------------------------------------
* ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
* // ˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* RD <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RD_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* WR <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_WR_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* RS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RS_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* RST <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RST_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* CS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_CS_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* BL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_BL_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* D0-D7 <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_Dx_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* VCC 3.3V<EFBFBD><EFBFBD>Դ
* GND <20><>Դ<EFBFBD><D4B4>
* // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* SCL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_SCL_PIN_SPI <20><EFBFBD><EAB6A8>
* SDA <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_SDA_PIN_SPI <20><EFBFBD><EAB6A8>
* RST <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RST_PIN_SPI <20><EFBFBD><EAB6A8>
* DC <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_DC_PIN_SPI <20><EFBFBD><EAB6A8>
* CS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_CS_PIN_SPI <20><EFBFBD><EAB6A8>
* BL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_BL_PIN_SPI <20><EFBFBD><EAB6A8>
* VCC 3.3V<EFBFBD><EFBFBD>Դ
* GND <20><>Դ<EFBFBD><D4B4>
* <20><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD> 320 * 240
* ------------------------------------------------------------------------
********************************************************************************************************************/
#include "SEEKFREE_IPS200.h"
static ips200_type_enum ips200_display_type = IPS200_TYPE_SPI;
static PIN_enum ips_rst_pin = IPS200_RST_PIN_SPI;
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dat <20><><EFBFBD><EFBFBD>
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_w_data(uint8 dat) //д<><D0B4><EFBFBD><EFBFBD>
{
IPS200_DATAPORT1 = (dat << DATA_START_NUM1) | (IPS200_DATAPORT1 & ~((uint32)(0x0F << DATA_START_NUM1)) );
IPS200_DATAPORT2 = ((dat>>4) << DATA_START_NUM2) | (IPS200_DATAPORT2 & ~((uint32)(0x0F << DATA_START_NUM2)) );
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param command <20><><EFBFBD><EFBFBD>
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_wr_reg(uint8 command) //д<><D0B4><EFBFBD><EFBFBD>
{
if(IPS200_TYPE_SPI == ips200_display_type)
{
IPS200_DC(0);
spi_mosi(IPS200_SPIN,IPS200_CS_PIN_SPI,&command,NULL,1,1);
IPS200_DC(1);
}
else
{
IPS200_CS(0);
IPS200_RS(0);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(command);
IPS200_WR(1);
IPS200_CS(1);
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dat 8λ<38><CEBB><EFBFBD><EFBFBD>
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_wr_data(uint8 dat) //<2F><>Һ<EFBFBD><D2BA><EFBFBD><EFBFBD>дһ<D0B4><D2BB><38><CEBB><EFBFBD><EFBFBD>
{
if(IPS200_TYPE_SPI == ips200_display_type)
{
spi_mosi(IPS200_SPIN,IPS200_CS_PIN_SPI,&dat,NULL,1,1);
}
else
{
IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(dat);
IPS200_WR(1);
IPS200_CS(1);
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dat 16λ<36><CEBB><EFBFBD><EFBFBD>
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_wr_data16(uint16 dat) //<2F><>Һ<EFBFBD><D2BA><EFBFBD><EFBFBD>дһ<D0B4><D2BB>16λ<36><CEBB><EFBFBD><EFBFBD>
{
if(IPS200_TYPE_SPI == ips200_display_type)
{
uint8 dat1[2];
dat1[0] = dat >> 8;
dat1[1] = (uint8)dat;
spi_mosi(IPS200_SPIN,IPS200_CS_PIN_SPI,dat1,NULL,2,1);
}
else
{
IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat>>8));
IPS200_WR(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat));
IPS200_WR(1);
IPS200_CS(1);
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param com <20><><EFBFBD><EFBFBD>
// @param dat <20><><EFBFBD><EFBFBD>
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_w_reg(uint8 com,uint8 dat) //д<>Ĵ<EFBFBD><C4B4><EFBFBD>
{
ips200_wr_reg(com);
ips200_wr_data(dat);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
// @param x1 <20><>ʼx<CABC><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param y1 <20><>ʼy<CABC><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param x2 <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param y2 <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2)
{
ips200_wr_reg(0x2a);
ips200_wr_data16(x1);
ips200_wr_data16(x2);
ips200_wr_reg(0x2b);
ips200_wr_data16(y1);
ips200_wr_data16(y2);
ips200_wr_reg(0x2c);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief 2.0<EFBFBD><EFBFBD> IPSҺ<53><D2BA><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
// @return type_select <20><><EFBFBD>ڻ<EFBFBD><DABB>ߴ<EFBFBD><DFB4><EFBFBD>ѡ<EFBFBD><D1A1>
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_init(ips200_type_enum type_select)
{
if(IPS200_TYPE_SPI == type_select)
{
ips200_display_type = IPS200_TYPE_SPI;
ips_rst_pin = IPS200_RST_PIN_SPI;
spi_init(IPS200_SPIN, IPS200_SCL_PIN_SPI, IPS200_SDA_PIN_SPI, IPS200_SDA_IN_PIN_SPI, IPS200_CS_PIN_SPI, 0, 30*1000*1000);//Ӳ<><D3B2>SPI<50><49>ʼ<EFBFBD><CABC>
gpio_init(IPS200_BL_PIN_SPI,GPO,1,PUSHPULL);
gpio_init(IPS200_DC_PIN_SPI,GPO,0,PUSHPULL);
gpio_init(ips_rst_pin,GPO,0,PUSHPULL);
}
else
{
ips200_display_type = IPS200_TYPE_PARALLEL8;
ips_rst_pin = IPS200_RST_PIN_PARALLEL8;
gpio_init(IPS200_D0_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D1_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D2_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D3_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D4_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D5_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D6_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D7_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_BL_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_CS_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(ips_rst_pin, GPO, 0, PUSHPULL);
gpio_init(IPS200_RS_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_WR_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_RD_PIN_PARALLEL8, GPO, 0, PUSHPULL);
}
IPS200_BL(1);
IPS200_RST(0);
systick_delay_ms(STM0, 5);
IPS200_RST(1);
systick_delay_ms(STM0, 5);
ips200_wr_reg(0x11);
systick_delay_ms(STM0, 120);
ips200_wr_reg(0x36);
if (IPS200_DISPLAY_DIR==0) ips200_wr_data(0x00);
else if (IPS200_DISPLAY_DIR==1) ips200_wr_data(0xC0);
else if (IPS200_DISPLAY_DIR==2) ips200_wr_data(0x70);
else ips200_wr_data(0xA0);
ips200_wr_reg(0x3A);
ips200_wr_data(0x05);
ips200_wr_reg(0xB2);
ips200_wr_data(0x0C);
ips200_wr_data(0x0C);
ips200_wr_data(0x00);
ips200_wr_data(0x33);
ips200_wr_data(0x33);
ips200_wr_reg(0xB7);
ips200_wr_data(0x35);
ips200_wr_reg(0xBB);
ips200_wr_data(0x29); //32 Vcom=1.35V
ips200_wr_reg(0xC2);
ips200_wr_data(0x01);
ips200_wr_reg(0xC3);
ips200_wr_data(0x19); //GVDD=4.8V
ips200_wr_reg(0xC4);
ips200_wr_data(0x20); //VDV, 0x20:0v
ips200_wr_reg(0xC5);
ips200_wr_data(0x1A);//VCOM Offset Set
ips200_wr_reg(0xC6);
ips200_wr_data(0x01F); //0x0F:60Hz
ips200_wr_reg(0xD0);
ips200_wr_data(0xA4);
ips200_wr_data(0xA1);
ips200_wr_reg(0xE0);
ips200_wr_data(0xD0);
ips200_wr_data(0x08);
ips200_wr_data(0x0E);
ips200_wr_data(0x09);
ips200_wr_data(0x09);
ips200_wr_data(0x05);
ips200_wr_data(0x31);
ips200_wr_data(0x33);
ips200_wr_data(0x48);
ips200_wr_data(0x17);
ips200_wr_data(0x14);
ips200_wr_data(0x15);
ips200_wr_data(0x31);
ips200_wr_data(0x34);
ips200_wr_reg(0xE1);
ips200_wr_data(0xD0);
ips200_wr_data(0x08);
ips200_wr_data(0x0E);
ips200_wr_data(0x09);
ips200_wr_data(0x09);
ips200_wr_data(0x15);
ips200_wr_data(0x31);
ips200_wr_data(0x33);
ips200_wr_data(0x48);
ips200_wr_data(0x17);
ips200_wr_data(0x14);
ips200_wr_data(0x15);
ips200_wr_data(0x31);
ips200_wr_data(0x34);
ips200_wr_reg(0x21);
ips200_wr_reg(0x29);
ips200_clear(IPS200_BGCOLOR); //<2F><>ʼ<EFBFBD><CABC>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param color <09><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_clear(YELLOW);// ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ɫ
//-------------------------------------------------------------------------------------------------------------------
void ips200_clear(uint16 color)
{
uint16 i,j;
ips200_address_set(0,0,IPS200_X_MAX-1,IPS200_Y_MAX-1);
for(i=0;i<IPS200_X_MAX;i++)
{
for (j=0;j<IPS200_Y_MAX;j++)
{
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ɫ
// @return void
// @since v1.0
// Sample usage: ips200_drawpoint(0,0,RED); //<2F><><EFBFBD><EFBFBD>0,0<><30>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ɫ<EFBFBD>ĵ<EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_drawpoint(uint16 x,uint16 y,uint16 color)
{
ips200_address_set(x,y,x,y);
ips200_wr_data16(color);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD>ַ<EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_X_MAX-1)
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_Y_MAX/16-1)
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD>ַ<EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_showchar(0,0,'x');//<2F><><EFBFBD><EFBFBD>0,0дһ<D0B4><D2BB><EFBFBD>ַ<EFBFBD>x
//-------------------------------------------------------------------------------------------------------------------
void ips200_showchar(uint16 x,uint16 y,const int8 dat)
{
uint8 i,j;
uint8 temp;
for(i=0; i<16; i++)
{
ips200_address_set(x,y+i,x+7,y+i);
temp = tft_ascii[(uint16)dat-32][i];//<2F><>32<33><32>Ϊ<EFBFBD><CEAA>ȡģ<C8A1>Ǵӿո<D3BF><D5B8><EFBFBD>ʼȡ<CABC><C8A1> <20>ո<EFBFBD><D5B8><EFBFBD>ascii<69><69><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>32
for(j=0; j<8; j++)
{
if(temp&0x01) ips200_wr_data16(IPS200_PENCOLOR);
else ips200_wr_data16(IPS200_BGCOLOR);
temp>>=1;
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_X_MAX-1)
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_Y_MAX/16-1)
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_showstr(0,0,"seekfree");
//-------------------------------------------------------------------------------------------------------------------
void ips200_showstr(uint16 x,uint16 y,const int8 dat[])
{
uint16 j;
j = 0;
while(dat[j] != '\0')
{
ips200_showchar(x+8*j,y*16,dat[j]);
j++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<38>з<EFBFBD><D0B7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>int8
// @return void
// @since v1.0
// Sample usage: ips200_showint8(0,0,x);//xΪint8<74><38><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showint8(uint16 x,uint16 y,int8 dat)
{
uint8 a[3];
uint8 i;
if(dat<0)
{
ips200_showchar(x,y*16,'-');
dat = -dat;
}
else ips200_showchar(x,y*16,' ');
a[0] = dat/100;
a[1] = dat/10%10;
a[2] = dat%10;
i = 0;
while(i<3)
{
ips200_showchar(x+(8*(i+1)),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<38>޷<EFBFBD><DEB7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uint8
// @return void
// @since v1.0
// Sample usage: ips200_showuint8(0,0,x);//xΪuint8<74><38><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showuint8(uint16 x,uint16 y,uint8 dat)
{
uint8 a[3];
uint8 i;
a[0] = dat/100;
a[1] = dat/10%10;
a[2] = dat%10;
i = 0;
while(i<3)
{
ips200_showchar(x+(8*i),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ16λ<36>з<EFBFBD><D0B7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>int16
// @return void
// @since v1.0
// Sample usage: ips200_showint16(0,0,x);//xΪint16<31><36><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showint16(uint16 x,uint16 y,int16 dat)
{
uint8 a[5];
uint8 i;
if(dat<0)
{
ips200_showchar(x,y*16,'-');
dat = -dat;
}
else ips200_showchar(x,y*16,' ');
a[0] = dat/10000;
a[1] = dat/1000%10;
a[2] = dat/100%10;
a[3] = dat/10%10;
a[4] = dat%10;
i = 0;
while(i<5)
{
ips200_showchar(x+(8*(i+1)),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ16λ<36>޷<EFBFBD><DEB7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uint16
// @return void
// @since v1.0
// Sample usage: ips200_showuint16(0,0,x);//xΪuint16<31><36><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showuint16(uint16 x,uint16 y,uint16 dat)
{
uint8 a[5];
uint8 i;
a[0] = dat/10000;
a[1] = dat/1000%10;
a[2] = dat/100%10;
a[3] = dat/10%10;
a[4] = dat%10;
i = 0;
while(i<5)
{
ips200_showchar(x+(8*i),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ32λ<32>з<EFBFBD><D0B7><EFBFBD><><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>0)
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uint32
// @param num <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE>λ<EFBFBD><CEBB> <20><><EFBFBD><EFBFBD>10λ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_showint32(0,0,x,3);//x<><78><EFBFBD><EFBFBD>Ϊint32 uint16 int16 uint8 int8<74><38><EFBFBD><EFBFBD>
// Sample usage: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB> <20><>-<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB><EFBFBD>ո<EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showint32(uint16 x,uint16 y,int dat,uint8 num)
{
int8 buff[34];
uint32 length;
if(10<num) num = 10;
num++;
if(0>dat) length = zf_sprintf(&buff[0],"%d",dat);//<2F><><EFBFBD><EFBFBD>
else
{
buff[0] = ' ';
length = zf_sprintf(&buff[1],"%d",dat);
length++;
}
while(length < num)
{
buff[length] = ' ';
length++;
}
buff[num] = '\0';
ips200_showstr(x, y, buff); //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>0)
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>float<61><74>double
// @param num <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>10λ
// @param pointnum С<><D0A1>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips_showfloat(0,0,x,2,3);//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾС<><D0A1><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>λ
// @note <20>ر<EFBFBD>ע<EFBFBD><EFBFBD><E2B5B1><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD>µģ<C2B5><C4A3><EFBFBD><E2B2A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A3AC><EFBFBD><EFBFBD><EFBFBD>аٶ<D0B0>ѧϰ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB> <20><>-<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB><EFBFBD>ո<EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showfloat(uint16 x,uint16 y,double dat,int8 num,int8 pointnum)
{
uint32 length;
int8 buff[34];
int8 start,end,point;
if(6<pointnum) pointnum = 6;
if(10<num) num = 10;
if(0>dat) length = zf_sprintf( &buff[0],"%f",dat);//<2F><><EFBFBD><EFBFBD>
else
{
length = zf_sprintf( &buff[1],"%f",dat);
length++;
}
point = (int8)(length - 7); //<2F><><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
start = point - num - 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼλ
end = point + pointnum + 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
while(0>start)//<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> ĩβӦ<CEB2><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ո<EFBFBD>
{
buff[end] = ' ';
end++;
start++;
}
if(0>dat) buff[start] = '-';
else buff[start] = ' ';
buff[end] = '\0';
ips200_showstr(x, y, buff); //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<38>޷<EFBFBD><DEB7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param w ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param l ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @return void
// @since v1.0
// Sample usage: ips200_showimage(0,0,10,20,&image);//ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(0,0)<29><><EFBFBD><EFBFBD>10<31><30><EFBFBD><EFBFBD>20<32><30>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showimage(uint16 x,uint16 y,uint16 w,uint16 l,const unsigned char *p)
{
int i;
unsigned char picH,picL;
ips200_address_set(x,y,x+w-1,y+l-1);
for(i=0;i<w*l;i++)
{
picL=*(p+i*2);
picH=*(p+i*2+1);
ips200_wr_data16(picH<<8|picL);
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage032(mt9v03x_csi_image[0], MT9V03X_CSI_W, MT9V03X_CSI_H)//<2F><>ʾ<EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
// @note ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage032(uint8 *p, uint16 width, uint16 height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
uint16 coord_x = 0;
uint16 coord_y = 0;
coord_x = width>IPS200_X_MAX?IPS200_X_MAX:width;
coord_y = height>IPS200_Y_MAX?IPS200_Y_MAX:height;
ips200_address_set(0,0,coord_x-1,coord_y-1);
for(j=0;j<coord_y;j++)
{
for(i=0;i<coord_x;i++)
{
temp = *(p+j*width+i*width/coord_x);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 0 -<2D><>IPS200_X_MAX-1<><31>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 0 -<2D><>IPS200_Y_MAX-1<><31>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage032_zoom(mt9v03x_csi_image[0], MT9V03X_CSI_W, MT9V03X_CSI_H, MT9V03X_CSI_W, MT9V03X_CSI_H)//<2F><>ʾ<EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
// @note ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage032_zoom(uint8 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
ips200_address_set(0,0,dis_width-1,dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
temp = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param start_x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param start_y <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 1 -<2D><>TFT_X_MAX<41><58>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 1 -<2D><>TFT_Y_MAX<41><58>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage032_zoom1(mt9v03x_csi_image[0], MT9V03X_CSI_W, MT9V03X_CSI_H, 0, 0, MT9V03X_CSI_W, MT9V03X_CSI_H)//<2F><>ʾ<EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage032_zoom1(uint8 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD>Ƿ񳬹<C7B7><F1B3ACB9><EFBFBD>Ļ<EFBFBD>ķֱ<C4B7><D6B1><EFBFBD>
if((start_x+dis_width)>IPS200_X_MAX) ZF_ASSERT(0);
if((start_y+dis_height)>IPS200_Y_MAX) ZF_ASSERT(0);
ips200_address_set(start_x,start_y,start_x+dis_width-1,start_y+dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
temp = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><>ͫ(<28><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 0 -<2D><>TFT_X_MAX-1<><31>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 0 -<2D><>TFT_Y_MAX-1<><31>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage8660_zoom(scc8660_csi_image[0], SCC8660_CSI_PIC_W, SCC8660_CSI_PIC_H, 320, 240);//<2F><>ʾ<EFBFBD><CABE>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
// @note <20>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ݸ<EFBFBD>ʽ(SCC8660_DATA_FORMAT)<29><><EFBFBD><EFBFBD>Ϊ0ʱ<30><CAB1><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ɫͼ<C9AB><CDBC>
// ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage8660_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
ips200_address_set(0,0,dis_width-1,dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
color = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color = ((color&0xff)<<8) | (color>>8);
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><>ͫ(<28><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param start_x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param start_y <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 1 -<2D><>TFT_X_MAX<41><58>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 1 -<2D><>TFT_Y_MAX<41><58>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage8660_zoom1(scc8660_csi_image[0], SCC8660_CSI_PIC_W, SCC8660_CSI_PIC_H, 0, 0, 320, 240);
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage8660_zoom1(uint16 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD>Ƿ񳬹<C7B7><F1B3ACB9><EFBFBD>Ļ<EFBFBD>ķֱ<C4B7><D6B1><EFBFBD>
if((start_x+dis_width)>IPS200_X_MAX) ZF_ASSERT(0);
if((start_y+dis_height)>IPS200_Y_MAX) ZF_ASSERT(0);
ips200_address_set(start_x,start_y,start_x+dis_width-1,start_y+dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
color = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color = ((color&0xff)<<8) | (color>>8);
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><>ͫ(<28><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>(<28><>ʾ<EFBFBD>Ҷ<EFBFBD>)
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 0 -<2D><>TFT_X_MAX-1<><31>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 0 -<2D><>TFT_Y_MAX-1<><31>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage8660_grayscale_zoom(scc8660_csi_image[0], SCC8660_CSI_PIC_W, SCC8660_CSI_PIC_H, 320, 240)//<2F><>ʾ<EFBFBD><CABE>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷͼ<CDB7><CDBC> <20><>ʾY<CABE><59><EFBFBD><EFBFBD>
// @note <20>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ݸ<EFBFBD>ʽ(SCC8660_DATA_FORMAT)<29><><EFBFBD><EFBFBD>Ϊ2ʱ<32><CAB1><EFBFBD><EFBFBD>ȡY<C8A1><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>Ҷ<EFBFBD>ͼ<EFBFBD><CDBC>
// ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage8660_grayscale_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
ips200_address_set(0,0,dis_width-1,dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
temp = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
temp = temp&0xff;
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief С<><D0A1><EFBFBD><EFBFBD>(<28><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @return void
// @since v1.0
// @note ͼ<><CDBC><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>120(<28><>)*160(<28><>)<29><><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height)
{
int i,j;
uint16 temp = 0;
ips200_address_set(0,0,width-1,height-1);
for(i=0;i<height * (width/8);i++)
{
temp = *p;
p++;
for(j=0; j<8; j++)
{
if( (temp<<j)&0x80 ) ips200_wr_data16(RGB565_WHITE);
else ips200_wr_data16(RGB565_BLACK);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
// @param x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0-<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0-<2D><>IPS200_Y_MAX-1<><31>
// @param size ȡģ<C8A1><C4A3>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>õĵ<C3B5><C4B5>󳤿<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ٸ<EFBFBD><D9B8>㣬ȡģ<C8A1><C4A3>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ġ<EFBFBD>
// @param *p <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param number <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>λ
// @param color <20><>ʾ<EFBFBD><CABE>ɫ
// @return void
// @since v1.0
// Sample usage: ips200_display_chinese(0,0,16,chinese_test[0],4,RED);//<2F><>ʾfont<6E>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ʾ<><CABE>
// @Note ʹ<><CAB9>PCtoLCD2002<30><32><EFBFBD><EFBFBD>ȡģ <20><><EFBFBD><EFBFBD><EBA1A2><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>˳<EFBFBD><CBB3> 16*16
//-------------------------------------------------------------------------------------------------------------------
void ips200_display_chinese(uint16 x, uint16 y, uint8 size, const uint8 *p, uint8 number, uint16 color)
{
int i, j, k;
uint8 temp, temp1, temp2;
const uint8 *p_data;
temp2 = size/8;
ips200_address_set(x,y,number*size-1+x,y+size-1);
for(i=0;i<size;i++)
{
temp1 = number;
p_data = p+i*temp2;
while(temp1--)
{
for(k=0;k<temp2;k++)
{
for(j=8;j>0;j--)
{
temp = (*p_data>>(j-1)) & 0x01;
if(temp) ips200_wr_data16(color);
else ips200_wr_data16(IPS200_BGCOLOR);
}
p_data++;
}
p_data = p_data - temp2 + temp2*size;
}
}
}

View File

@@ -0,0 +1,199 @@
/*/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2020,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>824575535
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file 2.0<EFBFBD><EFBFBD>IPS<EFBFBD><EFBFBD>Ļ
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software ADS v1.5.2
* @Target core TC264
* @Taobao https://seekfree.taobao.com/
* @date 2020-05-07
* @note
<20><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------
* ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
* // ˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* RD <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RD_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* WR <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_WR_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* RS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RS_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* RST <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RST_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* CS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_CS_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* BL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_BL_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* D0-D7 <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_Dx_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* SCL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_SCL_PIN_SPI <20><EFBFBD><EAB6A8>
* SDA <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_SDA_PIN_SPI <20><EFBFBD><EAB6A8>
* RST <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RST_PIN_SPI <20><EFBFBD><EAB6A8>
* DC <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_DC_PIN_SPI <20><EFBFBD><EAB6A8>
* CS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_CS_PIN_SPI <20><EFBFBD><EAB6A8>
* BL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_BL_PIN_SPI <20><EFBFBD><EAB6A8>
* <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
* VCC 3.3V<EFBFBD><EFBFBD>Դ
* GND <20><>Դ<EFBFBD><D4B4>
* <20><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD> 320 * 240
* ------------------------------------
********************************************************************************************************************/
#ifndef _SEEKFREE_IPS200_H
#define _SEEKFREE_IPS200_H
#include "common.h"
#include "stdlib.h"
#include "string.h"
#include "stdio.h"
#include "zf_stm_systick.h"
#include "zf_gpio.h"
#include "zf_assert.h"
#include "SEEKFREE_PRINTF.h"
#include "zf_spi.h"
#include "SEEKFREE_FUN.h"
#include "SEEKFREE_FONT.h"
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>SEEKFREE_FONT.h<>ļ<EFBFBD><C4BC>ж<EFBFBD><D0B6><EFBFBD>----------
//#define RED 0xF800 //<2F><>ɫ
//#define BLUE 0x001F //<2F><>ɫ
//#define YELLOW 0xFFE0 //<2F><>ɫ
//#define GREEN 0x07E0 //<2F><>ɫ
//#define WHITE 0xFFFF //<2F><>ɫ
//#define BLACK 0x0000 //<2F><>ɫ
//#define GRAY 0X8430 //<2F><>ɫ
//#define BROWN 0XBC40 //<2F><>ɫ
//#define PURPLE 0XF81F //<2F><>ɫ
//#define PINK 0XFE19 //<2F><>ɫ
#define IPS200_BGCOLOR RGB565_WHITE //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
#define IPS200_PENCOLOR RGB565_RED //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
// <20><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
#define IPS200_SPIN SPI_2 //<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD>SPI<50><49>
#define IPS200_SCL_PIN_SPI SPI2_SCLK_P15_3 //<2F><><EFBFBD><EFBFBD>SPI_SCK<43><4B><EFBFBD><EFBFBD>
#define IPS200_SDA_PIN_SPI SPI2_MOSI_P15_5 //<2F><><EFBFBD><EFBFBD>SPI_MOSI<53><49><EFBFBD><EFBFBD>
#define IPS200_SDA_IN_PIN_SPI SPI2_MISO_P15_4 //<2F><><EFBFBD><EFBFBD>SPI_MISO<53><4F><EFBFBD><EFBFBD> IPSû<53><C3BB>MISO<53><4F><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><E5A3AC>spi<70>ij<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1>Ҫʹ<D2AA><CAB9>
#define IPS200_CS_PIN_SPI SPI2_CS0_P15_2 //<2F><><EFBFBD><EFBFBD>SPI_CS<43><53><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
#define IPS200_RST_PIN_SPI P15_1 // Һ<><D2BA><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD>
#define IPS200_DC_PIN_SPI P15_0
#define IPS200_BL_PIN_SPI P15_4
//<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
//<2F><><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ѡ<EFBFBD><D1A1>B C D<><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><CBBF>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
#define IPS200_RD_PIN_PARALLEL8 P15_3
#define IPS200_WR_PIN_PARALLEL8 P15_5
#define IPS200_RS_PIN_PARALLEL8 P15_1
#define IPS200_RST_PIN_PARALLEL8 P15_0
#define IPS200_CS_PIN_PARALLEL8 P15_2
#define IPS200_BL_PIN_PARALLEL8 P15_4
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õõ<C3B5>
//D0-D3<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>C0-C3,C1-C4<43>ȵȣ<C8B5>
//D4-D7<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>B0-B3,B1-B4<42>ȵȡ<C8B5>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>ͬ<EFBFBD>˿ڵ<CBBF><DAB5><EFBFBD>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>D0-D3<44><33>C1-C4<43><34><EFBFBD>ӣ<EFBFBD>D4-D7<44><37>B2-B5<42><35><EFBFBD>ӡ<EFBFBD>
//<2F>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD>ע<EFBFBD><D7A2><EFBFBD>޸<EFBFBD>IPS200_DATA_PORT1<54><31>IPS200_DATA_PORT2<54><EFBFBD><EAB6A8>
#define IPS200_D0_PIN_PARALLEL8 P11_9
#define IPS200_D1_PIN_PARALLEL8 P11_10
#define IPS200_D2_PIN_PARALLEL8 P11_11
#define IPS200_D3_PIN_PARALLEL8 P11_12
#define IPS200_D4_PIN_PARALLEL8 P13_0
#define IPS200_D5_PIN_PARALLEL8 P13_1
#define IPS200_D6_PIN_PARALLEL8 P13_2
#define IPS200_D7_PIN_PARALLEL8 P13_3
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ˿<DDB6><CBBF><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>и<EFBFBD><D0B8><EFBFBD>
#define IPS200_DATA_PORT1 3 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT1 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT1].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM1 (IPS200_D0_PIN_PARALLEL8&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_DATA_PORT2 4 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT2 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT2].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM2 (IPS200_D4_PIN_PARALLEL8&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_BL(x) gpio_set(IPS200_BL_PIN_PARALLEL8,x)
#define IPS200_CS(x) gpio_set(IPS200_CS_PIN_PARALLEL8,x)
#define IPS200_RD(x) gpio_set(IPS200_RD_PIN_PARALLEL8,x)
#define IPS200_WR(x) gpio_set(IPS200_WR_PIN_PARALLEL8,x)
#define IPS200_RS(x) gpio_set(IPS200_RS_PIN_PARALLEL8,x)
#define IPS200_RST(x) gpio_set(ips_rst_pin,x)
#define IPS200_DC(x) gpio_set(IPS200_DC_PIN_SPI,x)
#define IPS200_W 240
#define IPS200_H 320
typedef enum
{
IPS200_TYPE_SPI, // SPI <20><><EFBFBD><EFBFBD>
IPS200_TYPE_PARALLEL8, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}ips200_type_enum;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
//0 <20><><EFBFBD><EFBFBD>ģʽ
//1 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
//2 <20><><EFBFBD><EFBFBD>ģʽ
//3 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
#define IPS200_DISPLAY_DIR 0
#if (0==IPS200_DISPLAY_DIR || 1==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_W //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_H //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#elif (2==IPS200_DISPLAY_DIR || 3==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_H //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_W //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#else
#error "IPS200_DISPLAY_DIR <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#endif
void ips200_init(ips200_type_enum type_select); //<2F><>ʼ<EFBFBD><CABC>Ӳ<EFBFBD><D3B2>
void ips200_w_data(uint8 dat);
void ips200_wr_reg(uint8 com);
void ips200_wr_data(uint8 dat);
void ips200_wr_data16(uint16 dat);
void ips200_w_reg(uint8 com,uint8 dat);
void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2);
void ips200_clear(uint16 color);
void ips200_drawpoint(uint16 x,uint16 y,uint16 color);
void ips200_showchar(uint16 x,uint16 y,const int8 dat);
void ips200_showstr(uint16 x,uint16 y,const int8 dat[]);
void ips200_showint8(uint16 x,uint16 y,int8 dat);
void ips200_showuint8(uint16 x,uint16 y,uint8 dat);
void ips200_showint16(uint16 x,uint16 y,int16 dat);
void ips200_showuint16(uint16 x,uint16 y,uint16 dat);
void ips200_showint32(uint16 x,uint16 y,int dat,uint8 num);
void ips200_showfloat(uint16 x,uint16 y,double dat,int8 num,int8 pointnum);
void ips200_showimage(uint16 x,uint16 y,uint16 w,uint16 l,const unsigned char *p);
void ips200_displayimage032(uint8 *p, uint16 width, uint16 height);
void ips200_displayimage032_zoom(uint8 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage032_zoom1(uint8 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom1(uint16 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_grayscale_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height);
void ips200_display_chinese(uint16 x, uint16 y, uint8 size, const uint8 *p, uint8 number, uint16 color);
#endif

View File

@@ -1,896 +0,0 @@
/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2020,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>824575535
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file 2.0<EFBFBD><EFBFBD>IPS<EFBFBD><EFBFBD>Ļ
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software ADS v1.2.2
* @Target core TC264D
* @Taobao https://seekfree.taobao.com/
* @date 2020-3-23
* @note
<09><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------
ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <09><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
D0 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D0_PIN <20><EFBFBD><EAB6A8>
D1 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D1_PIN <20><EFBFBD><EAB6A8>
D2 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D2_PIN <20><EFBFBD><EAB6A8>
D3 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D3_PIN <20><EFBFBD><EAB6A8>
D4 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D4_PIN <20><EFBFBD><EAB6A8>
D5 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D5_PIN <20><EFBFBD><EAB6A8>
D6 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D6_PIN <20><EFBFBD><EAB6A8>
D7 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D7_PIN <20><EFBFBD><EAB6A8>
BL <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_BL_PIN <20><EFBFBD><EAB6A8>
CS <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_CS_PIN <20><EFBFBD><EAB6A8>
RD <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RD_PIN <20><EFBFBD><EAB6A8>
WR <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_WR_PIN <20><EFBFBD><EAB6A8>
RS <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RS_PIN <20><EFBFBD><EAB6A8>
RST <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RST_PIN <20><EFBFBD><EAB6A8>
<09><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
VCC 3.3V<EFBFBD><EFBFBD>Դ
GND <20><>Դ<EFBFBD><D4B4>
<09><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>240*320
------------------------------------
********************************************************************************************************************/
#include "stdlib.h"
#include "string.h"
#include "stdio.h"
#include "zf_stm_systick.h"
#include "zf_gpio.h"
#include "zf_assert.h"
#include "SEEKFREE_PRINTF.h"
#include "SEEKFREE_IPS200_PARALLEL8.h"
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param void
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_w_data(uint8 dat) //д<><D0B4><EFBFBD><EFBFBD>
{
IPS200_DATAPORT1 = (dat << DATA_START_NUM1) | (IPS200_DATAPORT1 & ~((uint32)(0x0F << DATA_START_NUM1)) );
IPS200_DATAPORT2 = ((dat>>4) << DATA_START_NUM2) | (IPS200_DATAPORT2 & ~((uint32)(0x0F << DATA_START_NUM2)) );
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param void
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_wr_reg(uint8 command) //д<><D0B4><EFBFBD><EFBFBD>
{
IPS200_CS(0);
IPS200_RS(0);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(command);
IPS200_WR(1);
IPS200_CS(1);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param void
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_wr_data(uint8 dat) //<2F><>Һ<EFBFBD><D2BA><EFBFBD><EFBFBD>дһ<D0B4><D2BB><38><CEBB><EFBFBD><EFBFBD>
{
IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(dat);
IPS200_WR(1);
IPS200_CS(1);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param void
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_wr_data16(uint16 dat) //<2F><>Һ<EFBFBD><D2BA><EFBFBD><EFBFBD>дһ<D0B4><D2BB>16λ<36><CEBB><EFBFBD><EFBFBD>
{
IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat>>8));
IPS200_WR(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat));
IPS200_WR(1);
IPS200_CS(1);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param void
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_w_reg(uint8 com,uint8 dat) //д<>Ĵ<EFBFBD><C4B4><EFBFBD>
{
ips200_wr_reg(com);
ips200_wr_data(dat);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param void
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2)
{
ips200_wr_reg(0x2a);
ips200_wr_data16(x1);
ips200_wr_data16(x2);
ips200_wr_reg(0x2b);
ips200_wr_data16(y1);
ips200_wr_data16(y2);
ips200_wr_reg(0x2c);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief 2.0<EFBFBD><EFBFBD> IPSҺ<53><D2BA><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
// @return void
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_init(void)
{
gpio_init(IPS200_D0_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D1_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D2_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D3_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D4_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D5_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D6_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D7_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_BL_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_CS_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_RST_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_RS_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_WR_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_RD_PIN, GPO, 0, PUSHPULL);
IPS200_BL(1);
IPS200_RST(0);
systick_delay_ms(STM0, 5);
IPS200_RST(1);
systick_delay_ms(STM0, 5);
ips200_wr_reg(0x11);
systick_delay_ms(STM0, 120);
ips200_wr_reg(0x36);
if (IPS200_DISPLAY_DIR==0) ips200_wr_data(0x00);
else if (IPS200_DISPLAY_DIR==1) ips200_wr_data(0xC0);
else if (IPS200_DISPLAY_DIR==2) ips200_wr_data(0x70);
else ips200_wr_data(0xA0);
ips200_wr_reg(0x3A);
ips200_wr_data(0x05);
ips200_wr_reg(0xB2);
ips200_wr_data(0x0C);
ips200_wr_data(0x0C);
ips200_wr_data(0x00);
ips200_wr_data(0x33);
ips200_wr_data(0x33);
ips200_wr_reg(0xB7);
ips200_wr_data(0x35);
ips200_wr_reg(0xBB);
ips200_wr_data(0x29); //32 Vcom=1.35V
ips200_wr_reg(0xC2);
ips200_wr_data(0x01);
ips200_wr_reg(0xC3);
ips200_wr_data(0x19); //GVDD=4.8V
ips200_wr_reg(0xC4);
ips200_wr_data(0x20); //VDV, 0x20:0v
ips200_wr_reg(0xC5);
ips200_wr_data(0x1A);//VCOM Offset Set
ips200_wr_reg(0xC6);
ips200_wr_data(0x01F); //0x0F:60Hz
ips200_wr_reg(0xD0);
ips200_wr_data(0xA4);
ips200_wr_data(0xA1);
ips200_wr_reg(0xE0);
ips200_wr_data(0xD0);
ips200_wr_data(0x08);
ips200_wr_data(0x0E);
ips200_wr_data(0x09);
ips200_wr_data(0x09);
ips200_wr_data(0x05);
ips200_wr_data(0x31);
ips200_wr_data(0x33);
ips200_wr_data(0x48);
ips200_wr_data(0x17);
ips200_wr_data(0x14);
ips200_wr_data(0x15);
ips200_wr_data(0x31);
ips200_wr_data(0x34);
ips200_wr_reg(0xE1);
ips200_wr_data(0xD0);
ips200_wr_data(0x08);
ips200_wr_data(0x0E);
ips200_wr_data(0x09);
ips200_wr_data(0x09);
ips200_wr_data(0x15);
ips200_wr_data(0x31);
ips200_wr_data(0x33);
ips200_wr_data(0x48);
ips200_wr_data(0x17);
ips200_wr_data(0x14);
ips200_wr_data(0x15);
ips200_wr_data(0x31);
ips200_wr_data(0x34);
ips200_wr_reg(0x21);
ips200_wr_reg(0x29);
ips200_clear(IPS200_BGCOLOR); //<2F><>ʼ<EFBFBD><CABC>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param color <09><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_clear(YELLOW);// ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ɫ
//-------------------------------------------------------------------------------------------------------------------
void ips200_clear(uint16 color)
{
uint16 i,j;
ips200_address_set(0,0,IPS200_X_MAX-1,IPS200_Y_MAX-1);
for(i=0;i<IPS200_X_MAX;i++)
{
for (j=0;j<IPS200_Y_MAX;j++)
{
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ɫ
// @return void
// @since v1.0
// Sample usage: ips200_drawpoint(0,0,RED); //<2F><><EFBFBD><EFBFBD>0,0<><30>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ɫ<EFBFBD>ĵ<EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_drawpoint(uint16 x,uint16 y,uint16 color)
{
ips200_address_set(x,y,x,y);
ips200_wr_data16(color);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD>ַ<EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_X_MAX-1)
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_Y_MAX/16-1)
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD>ַ<EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_showchar(0,0,'x');//<2F><><EFBFBD><EFBFBD>0,0дһ<D0B4><D2BB><EFBFBD>ַ<EFBFBD>x
//-------------------------------------------------------------------------------------------------------------------
void ips200_showchar(uint16 x,uint16 y,const int8 dat)
{
uint8 i,j;
uint8 temp;
for(i=0; i<16; i++)
{
ips200_address_set(x,y+i,x+7,y+i);
temp = tft_ascii[(uint16)dat-32][i];//<2F><>32<33><32>Ϊ<EFBFBD><CEAA>ȡģ<C8A1>Ǵӿո<D3BF><D5B8><EFBFBD>ʼȡ<CABC><C8A1> <20>ո<EFBFBD><D5B8><EFBFBD>ascii<69><69><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>32
for(j=0; j<8; j++)
{
if(temp&0x01) ips200_wr_data16(IPS200_PENCOLOR);
else ips200_wr_data16(IPS200_BGCOLOR);
temp>>=1;
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_X_MAX-1)
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_Y_MAX/16-1)
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_showstr(0,0,"seekfree");
//-------------------------------------------------------------------------------------------------------------------
void ips200_showstr(uint16 x,uint16 y,const int8 dat[])
{
uint16 j;
j = 0;
while(dat[j] != '\0')
{
ips200_showchar(x+8*j,y*16,dat[j]);
j++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<38>з<EFBFBD><D0B7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>int8
// @return void
// @since v1.0
// Sample usage: ips200_showint8(0,0,x);//xΪint8<74><38><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showint8(uint16 x,uint16 y,int8 dat)
{
uint8 a[3];
uint8 i;
if(dat<0)
{
ips200_showchar(x,y*16,'-');
dat = -dat;
}
else ips200_showchar(x,y*16,' ');
a[0] = dat/100;
a[1] = dat/10%10;
a[2] = dat%10;
i = 0;
while(i<3)
{
ips200_showchar(x+(8*(i+1)),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<38>޷<EFBFBD><DEB7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uint8
// @return void
// @since v1.0
// Sample usage: ips200_showuint8(0,0,x);//xΪuint8<74><38><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showuint8(uint16 x,uint16 y,uint8 dat)
{
uint8 a[3];
uint8 i;
a[0] = dat/100;
a[1] = dat/10%10;
a[2] = dat%10;
i = 0;
while(i<3)
{
ips200_showchar(x+(8*i),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ16λ<36>з<EFBFBD><D0B7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>int16
// @return void
// @since v1.0
// Sample usage: ips200_showint16(0,0,x);//xΪint16<31><36><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showint16(uint16 x,uint16 y,int16 dat)
{
uint8 a[5];
uint8 i;
if(dat<0)
{
ips200_showchar(x,y*16,'-');
dat = -dat;
}
else ips200_showchar(x,y*16,' ');
a[0] = dat/10000;
a[1] = dat/1000%10;
a[2] = dat/100%10;
a[3] = dat/10%10;
a[4] = dat%10;
i = 0;
while(i<5)
{
ips200_showchar(x+(8*(i+1)),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ16λ<36>޷<EFBFBD><DEB7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uint16
// @return void
// @since v1.0
// Sample usage: ips200_showuint16(0,0,x);//xΪuint16<31><36><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showuint16(uint16 x,uint16 y,uint16 dat)
{
uint8 a[5];
uint8 i;
a[0] = dat/10000;
a[1] = dat/1000%10;
a[2] = dat/100%10;
a[3] = dat/10%10;
a[4] = dat%10;
i = 0;
while(i<5)
{
ips200_showchar(x+(8*i),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ32λ<32>з<EFBFBD><D0B7><EFBFBD><><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>0)
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uint32
// @param num <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE>λ<EFBFBD><CEBB> <20><><EFBFBD><EFBFBD>10λ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_showint32(0,0,x,3);//x<><78><EFBFBD><EFBFBD>Ϊint32 uint16 int16 uint8 int8<74><38><EFBFBD><EFBFBD>
// Sample usage: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB> <20><>-<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB><EFBFBD>ո<EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showint32(uint16 x,uint16 y,int dat,uint8 num)
{
int8 buff[34];
uint32 length;
if(10<num) num = 10;
num++;
if(0>dat) length = zf_sprintf(&buff[0],"%d",dat);//<2F><><EFBFBD><EFBFBD>
else
{
buff[0] = ' ';
length = zf_sprintf(&buff[1],"%d",dat);
length++;
}
while(length < num)
{
buff[length] = ' ';
length++;
}
buff[num] = '\0';
ips200_showstr(x, y, buff); //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>0)
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>float<61><74>double
// @param num <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>10λ
// @param pointnum С<><D0A1>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips_showfloat(0,0,x,2,3);//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾС<><D0A1><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>λ
// @note <20>ر<EFBFBD>ע<EFBFBD><EFBFBD><E2B5B1><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD>µģ<C2B5><C4A3><EFBFBD><E2B2A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A3AC><EFBFBD><EFBFBD><EFBFBD>аٶ<D0B0>ѧϰ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB> <20><>-<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB><EFBFBD>ո<EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showfloat(uint16 x,uint16 y,double dat,int8 num,int8 pointnum)
{
uint32 length;
int8 buff[34];
int8 start,end,point;
if(6<pointnum) pointnum = 6;
if(10<num) num = 10;
if(0>dat) length = zf_sprintf( &buff[0],"%f",dat);//<2F><><EFBFBD><EFBFBD>
else
{
length = zf_sprintf( &buff[1],"%f",dat);
length++;
}
point = (int8)(length - 7); //<2F><><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
start = point - num - 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼλ
end = point + pointnum + 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
while(0>start)//<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> ĩβӦ<CEB2><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ո<EFBFBD>
{
buff[end] = ' ';
end++;
start++;
}
if(0>dat) buff[start] = '-';
else buff[start] = ' ';
buff[end] = '\0';
ips200_showstr(x, y, buff); //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<38>޷<EFBFBD><DEB7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param w ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param l ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @return void
// @since v1.0
// Sample usage: ips200_showimage(0,0,10,20,&image);//ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(0,0)<29><><EFBFBD><EFBFBD>10<31><30><EFBFBD><EFBFBD>20<32><30>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showimage(uint16 x,uint16 y,uint16 w,uint16 l,const unsigned char *p)
{
int i;
unsigned char picH,picL;
ips200_address_set(x,y,x+w-1,y+l-1);
for(i=0;i<w*l;i++)
{
picL=*(p+i*2);
picH=*(p+i*2+1);
ips200_wr_data16(picH<<8|picL);
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage032(mt9v03x_csi_image[0], MT9V03X_CSI_W, MT9V03X_CSI_H)//<2F><>ʾ<EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
// @note ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage032(uint8 *p, uint16 width, uint16 height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
uint16 coord_x = 0;
uint16 coord_y = 0;
coord_x = width>IPS200_X_MAX?IPS200_X_MAX:width;
coord_y = height>IPS200_Y_MAX?IPS200_Y_MAX:height;
ips200_address_set(0,0,coord_x-1,coord_y-1);
for(j=0;j<coord_y;j++)
{
for(i=0;i<coord_x;i++)
{
temp = *(p+j*width+i*width/coord_x);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 0 -<2D><>IPS200_X_MAX-1<><31>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 0 -<2D><>IPS200_Y_MAX-1<><31>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage032_zoom(mt9v03x_csi_image[0], MT9V03X_CSI_W, MT9V03X_CSI_H, MT9V03X_CSI_W, MT9V03X_CSI_H)//<2F><>ʾ<EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
// @note ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage032_zoom(uint8 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
ips200_address_set(0,0,dis_width-1,dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
temp = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param start_x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param start_y <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 1 -<2D><>TFT_X_MAX<41><58>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 1 -<2D><>TFT_Y_MAX<41><58>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage032_zoom1(mt9v03x_csi_image[0], MT9V03X_CSI_W, MT9V03X_CSI_H, 0, 0, MT9V03X_CSI_W, MT9V03X_CSI_H)//<2F><>ʾ<EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage032_zoom1(uint8 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD>Ƿ񳬹<C7B7><F1B3ACB9><EFBFBD>Ļ<EFBFBD>ķֱ<C4B7><D6B1><EFBFBD>
if((start_x+dis_width)>IPS200_X_MAX) ZF_ASSERT(0);
if((start_y+dis_height)>IPS200_Y_MAX) ZF_ASSERT(0);
ips200_address_set(start_x,start_y,start_x+dis_width-1,start_y+dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
temp = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><>ͫ(<28><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 0 -<2D><>TFT_X_MAX-1<><31>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 0 -<2D><>TFT_Y_MAX-1<><31>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage8660_zoom(scc8660_csi_image[0], SCC8660_CSI_PIC_W, SCC8660_CSI_PIC_H, 320, 240);//<2F><>ʾ<EFBFBD><CABE>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
// @note <20>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ݸ<EFBFBD>ʽ(SCC8660_DATA_FORMAT)<29><><EFBFBD><EFBFBD>Ϊ0ʱ<30><CAB1><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ɫͼ<C9AB><CDBC>
// ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage8660_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
ips200_address_set(0,0,dis_width-1,dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
color = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color = ((color&0xff)<<8) | (color>>8);
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><>ͫ(<28><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param start_x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param start_y <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 1 -<2D><>TFT_X_MAX<41><58>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 1 -<2D><>TFT_Y_MAX<41><58>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage8660_zoom1(scc8660_csi_image[0], SCC8660_CSI_PIC_W, SCC8660_CSI_PIC_H, 0, 0, 320, 240);
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage8660_zoom1(uint16 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD>Ƿ񳬹<C7B7><F1B3ACB9><EFBFBD>Ļ<EFBFBD>ķֱ<C4B7><D6B1><EFBFBD>
if((start_x+dis_width)>IPS200_X_MAX) ZF_ASSERT(0);
if((start_y+dis_height)>IPS200_Y_MAX) ZF_ASSERT(0);
ips200_address_set(start_x,start_y,start_x+dis_width-1,start_y+dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
color = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color = ((color&0xff)<<8) | (color>>8);
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><>ͫ(<28><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>(<28><>ʾ<EFBFBD>Ҷ<EFBFBD>)
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 0 -<2D><>TFT_X_MAX-1<><31>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 0 -<2D><>TFT_Y_MAX-1<><31>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage8660_grayscale_zoom(scc8660_csi_image[0], SCC8660_CSI_PIC_W, SCC8660_CSI_PIC_H, 320, 240)//<2F><>ʾ<EFBFBD><CABE>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷͼ<CDB7><CDBC> <20><>ʾY<CABE><59><EFBFBD><EFBFBD>
// @note <20>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ݸ<EFBFBD>ʽ(SCC8660_DATA_FORMAT)<29><><EFBFBD><EFBFBD>Ϊ2ʱ<32><CAB1><EFBFBD><EFBFBD>ȡY<C8A1><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>Ҷ<EFBFBD>ͼ<EFBFBD><CDBC>
// ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage8660_grayscale_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
ips200_address_set(0,0,dis_width-1,dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
temp = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
temp = temp&0xff;
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief С<><D0A1><EFBFBD><EFBFBD>(<28><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @return void
// @since v1.0
// @note ͼ<><CDBC><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>120(<28><>)*160(<28><>)<29><><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height)
{
int i,j;
uint16 temp = 0;
ips200_address_set(0,0,width-1,height-1);
for(i=0;i<height * (width/8);i++)
{
temp = *p;
p++;
for(j=0; j<8; j++)
{
if( (temp<<j)&0x80 ) ips200_wr_data16(WHITE);
else ips200_wr_data16(BLACK);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
// @param x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0-<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0-<2D><>IPS200_Y_MAX-1<><31>
// @param size ȡģ<C8A1><C4A3>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>õĵ<C3B5><C4B5>󳤿<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ٸ<EFBFBD><D9B8>㣬ȡģ<C8A1><C4A3>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ġ<EFBFBD>
// @param *p <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param number <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>λ
// @param color <20><>ʾ<EFBFBD><CABE>ɫ
// @return void
// @since v1.0
// Sample usage: ips200_display_chinese(0,0,16,chinese_test[0],4,RED);//<2F><>ʾfont<6E>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ʾ<><CABE>
// @Note ʹ<><CAB9>PCtoLCD2002<30><32><EFBFBD><EFBFBD>ȡģ <20><><EFBFBD><EFBFBD><EBA1A2><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>˳<EFBFBD><CBB3> 16*16
//-------------------------------------------------------------------------------------------------------------------
void ips200_display_chinese(uint16 x, uint16 y, uint8 size, const uint8 *p, uint8 number, uint16 color)
{
int i, j, k;
uint8 temp, temp1, temp2;
const uint8 *p_data;
temp2 = size/8;
ips200_address_set(x,y,number*size-1+x,y+size-1);
for(i=0;i<size;i++)
{
temp1 = number;
p_data = p+i*temp2;
while(temp1--)
{
for(k=0;k<temp2;k++)
{
for(j=8;j>0;j--)
{
temp = (*p_data>>(j-1)) & 0x01;
if(temp) ips200_wr_data16(color);
else ips200_wr_data16(IPS200_BGCOLOR);
}
p_data++;
}
p_data = p_data - temp2 + temp2*size;
}
}
}

View File

@@ -1,180 +0,0 @@
/*/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2020,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>824575535
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file 2.0<EFBFBD><EFBFBD>IPS<EFBFBD><EFBFBD>Ļ
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software ADS v1.2.2
* @Target core TC264D
* @Taobao https://seekfree.taobao.com/
* @date 2020-3-23
* @note
<09><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------
ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <09><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
D0 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D0_PIN <20><EFBFBD><EAB6A8>
D1 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D1_PIN <20><EFBFBD><EAB6A8>
D2 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D2_PIN <20><EFBFBD><EAB6A8>
D3 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D3_PIN <20><EFBFBD><EAB6A8>
D4 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D4_PIN <20><EFBFBD><EAB6A8>
D5 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D5_PIN <20><EFBFBD><EAB6A8>
D6 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D6_PIN <20><EFBFBD><EAB6A8>
D7 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D7_PIN <20><EFBFBD><EAB6A8>
BL <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_BL_PIN <20><EFBFBD><EAB6A8>
CS <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_CS_PIN <20><EFBFBD><EAB6A8>
RD <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RD_PIN <20><EFBFBD><EAB6A8>
WR <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_WR_PIN <20><EFBFBD><EAB6A8>
RS <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RS_PIN <20><EFBFBD><EAB6A8>
RST <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RST_PIN <20><EFBFBD><EAB6A8>
<09><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
VCC 3.3V<EFBFBD><EFBFBD>Դ
GND <20><>Դ<EFBFBD><D4B4>
<09><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>240*320
------------------------------------
********************************************************************************************************************/
#ifndef _SEEKFREE_IPS200PARALLEL8_H
#define _SEEKFREE_IPS200PARALLEL8_H
#include "common.h"
#include "SEEKFREE_FONT.h"
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>SEEKFREE_FONT.h<>ļ<EFBFBD><C4BC>ж<EFBFBD><D0B6><EFBFBD>----------
//#define RED 0xF800 //<2F><>ɫ
//#define BLUE 0x001F //<2F><>ɫ
//#define YELLOW 0xFFE0 //<2F><>ɫ
//#define GREEN 0x07E0 //<2F><>ɫ
//#define WHITE 0xFFFF //<2F><>ɫ
//#define BLACK 0x0000 //<2F><>ɫ
//#define GRAY 0X8430 //<2F><>ɫ
//#define BROWN 0XBC40 //<2F><>ɫ
//#define PURPLE 0XF81F //<2F><>ɫ
//#define PINK 0XFE19 //<2F><>ɫ
#define IPS200_BGCOLOR WHITE //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
#define IPS200_PENCOLOR RED //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
//<2F><><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ѡ<EFBFBD><D1A1>B C D<><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><CBBF>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
#define IPS200_RD_PIN P15_3
#define IPS200_WR_PIN P15_5
#define IPS200_RS_PIN P15_1
#define IPS200_RST_PIN P15_0
#define IPS200_CS_PIN P15_2
#define IPS200_BL_PIN P15_4
//D0-D3<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>C0-C3,C1-C4<43>ȵȣ<C8B5>
//D4-D7<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>B0-B3,B1-B4<42>ȵȡ<C8B5>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>ͬ<EFBFBD>˿ڵ<CBBF><DAB5><EFBFBD>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>D0-D3<44><33>C1-C4<43><34><EFBFBD>ӣ<EFBFBD>D4-D7<44><37>B2-B5<42><35><EFBFBD>ӡ<EFBFBD>
//<2F>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD>ע<EFBFBD><D7A2><EFBFBD>޸<EFBFBD>IPS200_DATA_PORT1<54><31>IPS200_DATA_PORT2<54><EFBFBD><EAB6A8>
#define IPS200_D0_PIN P11_9
#define IPS200_D1_PIN P11_10
#define IPS200_D2_PIN P11_11
#define IPS200_D3_PIN P11_12
#define IPS200_D4_PIN P13_0
#define IPS200_D5_PIN P13_1
#define IPS200_D6_PIN P13_2
#define IPS200_D7_PIN P13_3
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ˿<DDB6><CBBF><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>и<EFBFBD><D0B8><EFBFBD>
#define IPS200_DATA_PORT1 3 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT1 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT1].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM1 (IPS200_D0_PIN&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_DATA_PORT2 4 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT2 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT2].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM2 (IPS200_D4_PIN&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_BL(x) gpio_set(IPS200_BL_PIN,x)
#define IPS200_CS(x) gpio_set(IPS200_CS_PIN,x)
#define IPS200_RD(x) gpio_set(IPS200_RD_PIN,x)
#define IPS200_WR(x) gpio_set(IPS200_WR_PIN,x)
#define IPS200_RS(x) gpio_set(IPS200_RS_PIN,x)
#define IPS200_RST(x) gpio_set(IPS200_RST_PIN,x)
#define IPS200_W 240
#define IPS200_H 320
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
//0 <20><><EFBFBD><EFBFBD>ģʽ
//1 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
//2 <20><><EFBFBD><EFBFBD>ģʽ
//3 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
#define IPS200_DISPLAY_DIR 0
#if (0==IPS200_DISPLAY_DIR || 1==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_W //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_H //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#elif (2==IPS200_DISPLAY_DIR || 3==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_H //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_W //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#else
#error "IPS200_DISPLAY_DIR <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#endif
void ips200_init(void); //<2F><>ʼ<EFBFBD><CABC>Ӳ<EFBFBD><D3B2>
void ips200_w_data(uint8 dat);
void ips200_wr_reg(uint8 com);
void ips200_wr_data(uint8 dat);
void ips200_wr_data16(uint16 dat);
void ips200_w_reg(uint8 com,uint8 dat);
void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2);
void ips200_clear(uint16 color);
void ips200_drawpoint(uint16 x,uint16 y,uint16 color);
void ips200_showchar(uint16 x,uint16 y,const int8 dat);
void ips200_showstr(uint16 x,uint16 y,const int8 dat[]);
void ips200_showint8(uint16 x,uint16 y,int8 dat);
void ips200_showuint8(uint16 x,uint16 y,uint8 dat);
void ips200_showint16(uint16 x,uint16 y,int16 dat);
void ips200_showuint16(uint16 x,uint16 y,uint16 dat);
void ips200_showint32(uint16 x,uint16 y,int dat,uint8 num);
void ips200_showfloat(uint16 x,uint16 y,double dat,int8 num,int8 pointnum);
void ips200_showimage(uint16 x,uint16 y,uint16 w,uint16 l,const unsigned char *p);
void ips200_displayimage032(uint8 *p, uint16 width, uint16 height);
void ips200_displayimage032_zoom(uint8 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage032_zoom1(uint8 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom1(uint16 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_grayscale_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height);
void ips200_display_chinese(uint16 x, uint16 y, uint8 size, const uint8 *p, uint8 number, uint16 color);
#endif

View File

@@ -1,3 +1,5 @@
V1.2.9
ɾ<><C9BE>SEEKFREE_IPS200_PARALLEL8<4C>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SEEKFREE_IPS200<30><30><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD>е<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
V1.2.8 V1.2.8
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD><EFBFBD>PCLK_MODE<44><45>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>λ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD><EFBFBD>PCLK_MODE<44><45>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>λ

View File

@@ -61,7 +61,7 @@
#include "SEEKFREE_MMA8451.h" #include "SEEKFREE_MMA8451.h"
#include "SEEKFREE_L3G4200D.h" #include "SEEKFREE_L3G4200D.h"
#include "SEEKFREE_WIRELESS.h" #include "SEEKFREE_WIRELESS.h"
#include "SEEKFREE_IPS200_PARALLEL8.h" #include "SEEKFREE_IPS200.h"
#include "SEEKFREE_7725.h" #include "SEEKFREE_7725.h"
#include "SEEKFREE_RDA5807.h" #include "SEEKFREE_RDA5807.h"
#include "SEEKFREE_7725_UART.h" #include "SEEKFREE_7725_UART.h"

View File

@@ -24,7 +24,7 @@
#include "IfxQspi.h" #include "IfxQspi.h"
#include "zf_assert.h" #include "zf_assert.h"
#include "zf_spi.h" #include "zf_spi.h"
#include "zf_gpio.h"
#define MAX_BAUD 50000000 #define MAX_BAUD 50000000
@@ -183,7 +183,62 @@ void spi_mux(SPIN_enum spi_n, SPI_PIN_enum sck_pin, SPI_PIN_enum mosi_pin, SPI_P
} }
uint8 get_spi_cs_pin(SPI_PIN_enum cs_pin)
{
if (SPI0_CS0_P20_8 == cs_pin) return gpio_get(P20_8);
else if (SPI0_CS1_P20_9 == cs_pin) return gpio_get(P20_9);
else if (SPI0_CS2_P20_13 == cs_pin) return gpio_get(P20_13);
else if (SPI0_CS3_P11_10 == cs_pin) return gpio_get(P11_10);
else if (SPI0_CS4_P11_11 == cs_pin) return gpio_get(P11_11);
else if (SPI0_CS5_P11_2 == cs_pin) return gpio_get(P11_2);
else if (SPI0_CS6_P20_10 == cs_pin) return gpio_get(P20_10);
else if (SPI0_CS7_P33_5 == cs_pin) return gpio_get(P33_5);
else if (SPI0_CS8_P20_6 == cs_pin) return gpio_get(P20_6);
else if (SPI0_CS9_P20_3 == cs_pin) return gpio_get(P20_3);
else if (SPI0_CS13_P15_0 == cs_pin) return gpio_get(P15_0);
else if (SPI1_CS0_P20_8 == cs_pin) return gpio_get(P20_8);
else if (SPI1_CS1_P20_9 == cs_pin) return gpio_get(P20_9);
else if (SPI1_CS2_P20_13 == cs_pin) return gpio_get(P20_13);
else if (SPI1_CS3_P11_10 == cs_pin) return gpio_get(P11_10);
else if (SPI1_CS4_P11_11 == cs_pin) return gpio_get(P11_11);
else if (SPI1_CS5_P11_2 == cs_pin) return gpio_get(P11_2);
else if (SPI1_CS6_P33_10 == cs_pin) return gpio_get(P33_10);
else if (SPI1_CS7_P33_5 == cs_pin) return gpio_get(P33_5);
else if (SPI1_CS8_P10_4 == cs_pin) return gpio_get(P10_4);
else if (SPI1_CS9_P10_5 == cs_pin) return gpio_get(P10_5);
else if (SPI1_CS10_P10_0 == cs_pin) return gpio_get(P10_0);
else if (SPI2_CS0_P15_2 == cs_pin) return gpio_get(P15_2);
else if (SPI2_CS1_P14_2 == cs_pin) return gpio_get(P14_2);
else if (SPI2_CS2_P14_6 == cs_pin) return gpio_get(P14_6);
else if (SPI2_CS3_P14_3 == cs_pin) return gpio_get(P14_3);
else if (SPI2_CS5_P15_1 == cs_pin) return gpio_get(P15_1);
else if (SPI2_CS6_P33_13 == cs_pin) return gpio_get(P33_13);
else if (SPI2_CS7_P20_10 == cs_pin) return gpio_get(P20_10);
else if (SPI2_CS8_P20_6 == cs_pin) return gpio_get(P20_6);
else if (SPI2_CS9_P20_3 == cs_pin) return gpio_get(P20_3);
else if (SPI3_CS0_P02_4 == cs_pin) return gpio_get(P02_4);
else if (SPI3_CS1_P02_0 == cs_pin) return gpio_get(P02_0);
else if (SPI3_CS1_P33_9 == cs_pin) return gpio_get(P33_9);
else if (SPI3_CS2_P02_1 == cs_pin) return gpio_get(P02_1);
else if (SPI3_CS2_P33_8 == cs_pin) return gpio_get(P33_8);
else if (SPI3_CS3_P02_2 == cs_pin) return gpio_get(P02_2);
else if (SPI3_CS4_P02_3 == cs_pin) return gpio_get(P02_3);
else if (SPI3_CS4_P23_5 == cs_pin) return gpio_get(P23_5);
else if (SPI3_CS5_P02_8 == cs_pin) return gpio_get(P02_8);
else if (SPI3_CS6_P00_8 == cs_pin) return gpio_get(P00_8);
else if (SPI3_CS7_P00_9 == cs_pin) return gpio_get(P00_9);
else if (SPI3_CS7_P33_7 == cs_pin) return gpio_get(P33_7);
else if (SPI3_CS8_P10_5 == cs_pin) return gpio_get(P10_5);
else if (SPI3_CS11_P33_10 == cs_pin) return gpio_get(P33_10);
else if (SPI3_CS12_P22_2 == cs_pin) return gpio_get(P22_2);
else if (SPI3_CS13_P23_1 == cs_pin) return gpio_get(P23_1);
else
{
ZF_ASSERT(FALSE);
return 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>CS<43><53><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>
}
}
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
@@ -335,6 +390,7 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
while(moudle->STATUS.B.RXFIFOLEVEL == 0); while(moudle->STATUS.B.RXFIFOLEVEL == 0);
*midata = (uint8)IfxQspi_readReceiveFifo(moudle); *midata = (uint8)IfxQspi_readReceiveFifo(moudle);
} }
while(!get_spi_cs_pin(cs_pin));
} }

View File

@@ -264,7 +264,7 @@ void lcd_init(void)
lcd_writeData(0x05); lcd_writeData(0x05);
lcd_writeIndex(0x29); lcd_writeIndex(0x29);
lcd_clear(WHITE);//ȫ<><C8AB> lcd_clear(RGB565_WHITE);//ȫ<><C8AB>
} }
@@ -550,7 +550,7 @@ void showimage(const unsigned char *p)
{ {
int i,j,k; int i,j,k;
unsigned char picH,picL; unsigned char picH,picL;
lcd_clear(WHITE); //<2F><><EFBFBD><EFBFBD> lcd_clear(RGB565_WHITE); //<2F><><EFBFBD><EFBFBD>
for(k=0;k<4;k++) for(k=0;k<4;k++)
{ {
@@ -716,8 +716,8 @@ void lcd_displayimage7725(uint8 *p, uint16 width, uint16 height)
p++; p++;
for(j=0; j<8; j++) for(j=0; j<8; j++)
{ {
if( (temp<<j)&0x80 ) lcd_writedata_16bit(WHITE); if( (temp<<j)&0x80 ) lcd_writedata_16bit(RGB565_WHITE);
else lcd_writedata_16bit(BLACK); else lcd_writedata_16bit(RGB565_BLACK);
} }
} }
} }

View File

@@ -78,10 +78,10 @@
//<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ
#define TFT_PENCOLOR RED #define TFT_PENCOLOR RGB565_RED
//<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ
#define TFT_BGCOLOR WHITE #define TFT_BGCOLOR RGB565_WHITE

View File

@@ -26,16 +26,16 @@
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ---------- //-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ----------
#define RED 0xF800 //<2F><>ɫ #define RGB565_RED 0xF800 //<2F><>ɫ
#define BLUE 0x001F //<2F><>ɫ #define RGB565_BLUE 0x001F //<2F><>ɫ
#define YELLOW 0xFFE0 //<2F><>ɫ #define RGB565_YELLOW 0xFFE0 //<2F><>ɫ
#define GREEN 0x07E0 //<2F><>ɫ #define RGB565_GREEN 0x07E0 //<2F><>ɫ
#define WHITE 0xFFFF //<2F><>ɫ #define RGB565_WHITE 0xFFFF //<2F><>ɫ
#define BLACK 0x0000 //<2F><>ɫ #define RGB565_BLACK 0x0000 //<2F><>ɫ
#define GRAY 0X8430 //<2F><>ɫ #define RGB565_GRAY 0X8430 //<2F><>ɫ
#define BROWN 0XBC40 //<2F><>ɫ #define RGB565_BROWN 0XBC40 //<2F><>ɫ
#define PURPLE 0XF81F //<2F><>ɫ #define RGB565_PURPLE 0XF81F //<2F><>ɫ
#define PINK 0XFE19 //<2F><>ɫ #define RGB565_PINK 0XFE19 //<2F><>ɫ
extern const uint8 tft_ascii[95][16]; extern const uint8 tft_ascii[95][16];

View File

@@ -726,8 +726,8 @@ void ips114_displayimage7725(uint8 *p, uint16 width, uint16 height)
p++; p++;
for(j=0; j<8; j++) for(j=0; j<8; j++)
{ {
if( (temp<<j)&0x80 ) ips114_writedata_16bit(WHITE); if( (temp<<j)&0x80 ) ips114_writedata_16bit(RGB565_WHITE);
else ips114_writedata_16bit(BLACK); else ips114_writedata_16bit(RGB565_BLACK);
} }
} }
} }

View File

@@ -77,10 +77,10 @@
//<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ
#define IPS114_PENCOLOR RED #define IPS114_PENCOLOR RGB565_RED
//<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ
#define IPS114_BGCOLOR WHITE #define IPS114_BGCOLOR RGB565_WHITE

View File

@@ -0,0 +1,931 @@
/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2020,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>824575535
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file 2.0<EFBFBD><EFBFBD>IPS<EFBFBD><EFBFBD>Ļ
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software ADS v1.5.2
* @Target core TC264
* @Taobao https://seekfree.taobao.com/
* @date 2022-05-07
* @note
<20><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------------------------------------------
* ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
* // ˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* RD <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RD_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* WR <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_WR_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* RS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RS_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* RST <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RST_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* CS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_CS_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* BL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_BL_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* D0-D7 <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_Dx_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* VCC 3.3V<EFBFBD><EFBFBD>Դ
* GND <20><>Դ<EFBFBD><D4B4>
* // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* SCL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_SCL_PIN_SPI <20><EFBFBD><EAB6A8>
* SDA <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_SDA_PIN_SPI <20><EFBFBD><EAB6A8>
* RST <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RST_PIN_SPI <20><EFBFBD><EAB6A8>
* DC <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_DC_PIN_SPI <20><EFBFBD><EAB6A8>
* CS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_CS_PIN_SPI <20><EFBFBD><EAB6A8>
* BL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_BL_PIN_SPI <20><EFBFBD><EAB6A8>
* VCC 3.3V<EFBFBD><EFBFBD>Դ
* GND <20><>Դ<EFBFBD><D4B4>
* <20><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD> 320 * 240
* ------------------------------------------------------------------------
********************************************************************************************************************/
#include "SEEKFREE_IPS200.h"
static ips200_type_enum ips200_display_type = IPS200_TYPE_SPI;
static PIN_enum ips_rst_pin = IPS200_RST_PIN_SPI;
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dat <20><><EFBFBD><EFBFBD>
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_w_data(uint8 dat) //д<><D0B4><EFBFBD><EFBFBD>
{
IPS200_DATAPORT1 = (dat << DATA_START_NUM1) | (IPS200_DATAPORT1 & ~((uint32)(0x0F << DATA_START_NUM1)) );
IPS200_DATAPORT2 = ((dat>>4) << DATA_START_NUM2) | (IPS200_DATAPORT2 & ~((uint32)(0x0F << DATA_START_NUM2)) );
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param command <20><><EFBFBD><EFBFBD>
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_wr_reg(uint8 command) //д<><D0B4><EFBFBD><EFBFBD>
{
if(IPS200_TYPE_SPI == ips200_display_type)
{
IPS200_DC(0);
spi_mosi(IPS200_SPIN,IPS200_CS_PIN_SPI,&command,NULL,1,1);
IPS200_DC(1);
}
else
{
IPS200_CS(0);
IPS200_RS(0);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(command);
IPS200_WR(1);
IPS200_CS(1);
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dat 8λ<38><CEBB><EFBFBD><EFBFBD>
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_wr_data(uint8 dat) //<2F><>Һ<EFBFBD><D2BA><EFBFBD><EFBFBD>дһ<D0B4><D2BB><38><CEBB><EFBFBD><EFBFBD>
{
if(IPS200_TYPE_SPI == ips200_display_type)
{
spi_mosi(IPS200_SPIN,IPS200_CS_PIN_SPI,&dat,NULL,1,1);
}
else
{
IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(dat);
IPS200_WR(1);
IPS200_CS(1);
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dat 16λ<36><CEBB><EFBFBD><EFBFBD>
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_wr_data16(uint16 dat) //<2F><>Һ<EFBFBD><D2BA><EFBFBD><EFBFBD>дһ<D0B4><D2BB>16λ<36><CEBB><EFBFBD><EFBFBD>
{
if(IPS200_TYPE_SPI == ips200_display_type)
{
uint8 dat1[2];
dat1[0] = dat >> 8;
dat1[1] = (uint8)dat;
spi_mosi(IPS200_SPIN,IPS200_CS_PIN_SPI,dat1,NULL,2,1);
}
else
{
IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat>>8));
IPS200_WR(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat));
IPS200_WR(1);
IPS200_CS(1);
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param com <20><><EFBFBD><EFBFBD>
// @param dat <20><><EFBFBD><EFBFBD>
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_w_reg(uint8 com,uint8 dat) //д<>Ĵ<EFBFBD><C4B4><EFBFBD>
{
ips200_wr_reg(com);
ips200_wr_data(dat);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
// @param x1 <20><>ʼx<CABC><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param y1 <20><>ʼy<CABC><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param x2 <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param y2 <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2)
{
ips200_wr_reg(0x2a);
ips200_wr_data16(x1);
ips200_wr_data16(x2);
ips200_wr_reg(0x2b);
ips200_wr_data16(y1);
ips200_wr_data16(y2);
ips200_wr_reg(0x2c);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief 2.0<EFBFBD><EFBFBD> IPSҺ<53><D2BA><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
// @return type_select <20><><EFBFBD>ڻ<EFBFBD><DABB>ߴ<EFBFBD><DFB4><EFBFBD>ѡ<EFBFBD><D1A1>
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_init(ips200_type_enum type_select)
{
if(IPS200_TYPE_SPI == type_select)
{
ips200_display_type = IPS200_TYPE_SPI;
ips_rst_pin = IPS200_RST_PIN_SPI;
spi_init(IPS200_SPIN, IPS200_SCL_PIN_SPI, IPS200_SDA_PIN_SPI, IPS200_SDA_IN_PIN_SPI, IPS200_CS_PIN_SPI, 0, 30*1000*1000);//Ӳ<><D3B2>SPI<50><49>ʼ<EFBFBD><CABC>
gpio_init(IPS200_BL_PIN_SPI,GPO,1,PUSHPULL);
gpio_init(IPS200_DC_PIN_SPI,GPO,0,PUSHPULL);
gpio_init(ips_rst_pin,GPO,0,PUSHPULL);
}
else
{
ips200_display_type = IPS200_TYPE_PARALLEL8;
ips_rst_pin = IPS200_RST_PIN_PARALLEL8;
gpio_init(IPS200_D0_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D1_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D2_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D3_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D4_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D5_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D6_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_D7_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_BL_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_CS_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(ips_rst_pin, GPO, 0, PUSHPULL);
gpio_init(IPS200_RS_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_WR_PIN_PARALLEL8, GPO, 0, PUSHPULL);
gpio_init(IPS200_RD_PIN_PARALLEL8, GPO, 0, PUSHPULL);
}
IPS200_BL(1);
IPS200_RST(0);
systick_delay_ms(STM0, 5);
IPS200_RST(1);
systick_delay_ms(STM0, 5);
ips200_wr_reg(0x11);
systick_delay_ms(STM0, 120);
ips200_wr_reg(0x36);
if (IPS200_DISPLAY_DIR==0) ips200_wr_data(0x00);
else if (IPS200_DISPLAY_DIR==1) ips200_wr_data(0xC0);
else if (IPS200_DISPLAY_DIR==2) ips200_wr_data(0x70);
else ips200_wr_data(0xA0);
ips200_wr_reg(0x3A);
ips200_wr_data(0x05);
ips200_wr_reg(0xB2);
ips200_wr_data(0x0C);
ips200_wr_data(0x0C);
ips200_wr_data(0x00);
ips200_wr_data(0x33);
ips200_wr_data(0x33);
ips200_wr_reg(0xB7);
ips200_wr_data(0x35);
ips200_wr_reg(0xBB);
ips200_wr_data(0x29); //32 Vcom=1.35V
ips200_wr_reg(0xC2);
ips200_wr_data(0x01);
ips200_wr_reg(0xC3);
ips200_wr_data(0x19); //GVDD=4.8V
ips200_wr_reg(0xC4);
ips200_wr_data(0x20); //VDV, 0x20:0v
ips200_wr_reg(0xC5);
ips200_wr_data(0x1A);//VCOM Offset Set
ips200_wr_reg(0xC6);
ips200_wr_data(0x01F); //0x0F:60Hz
ips200_wr_reg(0xD0);
ips200_wr_data(0xA4);
ips200_wr_data(0xA1);
ips200_wr_reg(0xE0);
ips200_wr_data(0xD0);
ips200_wr_data(0x08);
ips200_wr_data(0x0E);
ips200_wr_data(0x09);
ips200_wr_data(0x09);
ips200_wr_data(0x05);
ips200_wr_data(0x31);
ips200_wr_data(0x33);
ips200_wr_data(0x48);
ips200_wr_data(0x17);
ips200_wr_data(0x14);
ips200_wr_data(0x15);
ips200_wr_data(0x31);
ips200_wr_data(0x34);
ips200_wr_reg(0xE1);
ips200_wr_data(0xD0);
ips200_wr_data(0x08);
ips200_wr_data(0x0E);
ips200_wr_data(0x09);
ips200_wr_data(0x09);
ips200_wr_data(0x15);
ips200_wr_data(0x31);
ips200_wr_data(0x33);
ips200_wr_data(0x48);
ips200_wr_data(0x17);
ips200_wr_data(0x14);
ips200_wr_data(0x15);
ips200_wr_data(0x31);
ips200_wr_data(0x34);
ips200_wr_reg(0x21);
ips200_wr_reg(0x29);
ips200_clear(IPS200_BGCOLOR); //<2F><>ʼ<EFBFBD><CABC>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param color <09><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_clear(YELLOW);// ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ɫ
//-------------------------------------------------------------------------------------------------------------------
void ips200_clear(uint16 color)
{
uint16 i,j;
ips200_address_set(0,0,IPS200_X_MAX-1,IPS200_Y_MAX-1);
for(i=0;i<IPS200_X_MAX;i++)
{
for (j=0;j<IPS200_Y_MAX;j++)
{
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ɫ
// @return void
// @since v1.0
// Sample usage: ips200_drawpoint(0,0,RED); //<2F><><EFBFBD><EFBFBD>0,0<><30>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ɫ<EFBFBD>ĵ<EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_drawpoint(uint16 x,uint16 y,uint16 color)
{
ips200_address_set(x,y,x,y);
ips200_wr_data16(color);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD>ַ<EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_X_MAX-1)
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_Y_MAX/16-1)
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD>ַ<EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_showchar(0,0,'x');//<2F><><EFBFBD><EFBFBD>0,0дһ<D0B4><D2BB><EFBFBD>ַ<EFBFBD>x
//-------------------------------------------------------------------------------------------------------------------
void ips200_showchar(uint16 x,uint16 y,const int8 dat)
{
uint8 i,j;
uint8 temp;
for(i=0; i<16; i++)
{
ips200_address_set(x,y+i,x+7,y+i);
temp = tft_ascii[(uint16)dat-32][i];//<2F><>32<33><32>Ϊ<EFBFBD><CEAA>ȡģ<C8A1>Ǵӿո<D3BF><D5B8><EFBFBD>ʼȡ<CABC><C8A1> <20>ո<EFBFBD><D5B8><EFBFBD>ascii<69><69><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>32
for(j=0; j<8; j++)
{
if(temp&0x01) ips200_wr_data16(IPS200_PENCOLOR);
else ips200_wr_data16(IPS200_BGCOLOR);
temp>>=1;
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_X_MAX-1)
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_Y_MAX/16-1)
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_showstr(0,0,"seekfree");
//-------------------------------------------------------------------------------------------------------------------
void ips200_showstr(uint16 x,uint16 y,const int8 dat[])
{
uint16 j;
j = 0;
while(dat[j] != '\0')
{
ips200_showchar(x+8*j,y*16,dat[j]);
j++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<38>з<EFBFBD><D0B7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>int8
// @return void
// @since v1.0
// Sample usage: ips200_showint8(0,0,x);//xΪint8<74><38><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showint8(uint16 x,uint16 y,int8 dat)
{
uint8 a[3];
uint8 i;
if(dat<0)
{
ips200_showchar(x,y*16,'-');
dat = -dat;
}
else ips200_showchar(x,y*16,' ');
a[0] = dat/100;
a[1] = dat/10%10;
a[2] = dat%10;
i = 0;
while(i<3)
{
ips200_showchar(x+(8*(i+1)),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<38>޷<EFBFBD><DEB7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uint8
// @return void
// @since v1.0
// Sample usage: ips200_showuint8(0,0,x);//xΪuint8<74><38><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showuint8(uint16 x,uint16 y,uint8 dat)
{
uint8 a[3];
uint8 i;
a[0] = dat/100;
a[1] = dat/10%10;
a[2] = dat%10;
i = 0;
while(i<3)
{
ips200_showchar(x+(8*i),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ16λ<36>з<EFBFBD><D0B7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>int16
// @return void
// @since v1.0
// Sample usage: ips200_showint16(0,0,x);//xΪint16<31><36><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showint16(uint16 x,uint16 y,int16 dat)
{
uint8 a[5];
uint8 i;
if(dat<0)
{
ips200_showchar(x,y*16,'-');
dat = -dat;
}
else ips200_showchar(x,y*16,' ');
a[0] = dat/10000;
a[1] = dat/1000%10;
a[2] = dat/100%10;
a[3] = dat/10%10;
a[4] = dat%10;
i = 0;
while(i<5)
{
ips200_showchar(x+(8*(i+1)),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ16λ<36>޷<EFBFBD><DEB7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uint16
// @return void
// @since v1.0
// Sample usage: ips200_showuint16(0,0,x);//xΪuint16<31><36><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showuint16(uint16 x,uint16 y,uint16 dat)
{
uint8 a[5];
uint8 i;
a[0] = dat/10000;
a[1] = dat/1000%10;
a[2] = dat/100%10;
a[3] = dat/10%10;
a[4] = dat%10;
i = 0;
while(i<5)
{
ips200_showchar(x+(8*i),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ32λ<32>з<EFBFBD><D0B7><EFBFBD><><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>0)
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uint32
// @param num <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE>λ<EFBFBD><CEBB> <20><><EFBFBD><EFBFBD>10λ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_showint32(0,0,x,3);//x<><78><EFBFBD><EFBFBD>Ϊint32 uint16 int16 uint8 int8<74><38><EFBFBD><EFBFBD>
// Sample usage: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB> <20><>-<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB><EFBFBD>ո<EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showint32(uint16 x,uint16 y,int dat,uint8 num)
{
int8 buff[34];
uint32 length;
if(10<num) num = 10;
num++;
if(0>dat) length = zf_sprintf(&buff[0],"%d",dat);//<2F><><EFBFBD><EFBFBD>
else
{
buff[0] = ' ';
length = zf_sprintf(&buff[1],"%d",dat);
length++;
}
while(length < num)
{
buff[length] = ' ';
length++;
}
buff[num] = '\0';
ips200_showstr(x, y, buff); //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>0)
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>float<61><74>double
// @param num <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>10λ
// @param pointnum С<><D0A1>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips_showfloat(0,0,x,2,3);//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾС<><D0A1><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>λ
// @note <20>ر<EFBFBD>ע<EFBFBD><EFBFBD><E2B5B1><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD>µģ<C2B5><C4A3><EFBFBD><E2B2A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A3AC><EFBFBD><EFBFBD><EFBFBD>аٶ<D0B0>ѧϰ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB> <20><>-<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB><EFBFBD>ո<EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showfloat(uint16 x,uint16 y,double dat,int8 num,int8 pointnum)
{
uint32 length;
int8 buff[34];
int8 start,end,point;
if(6<pointnum) pointnum = 6;
if(10<num) num = 10;
if(0>dat) length = zf_sprintf( &buff[0],"%f",dat);//<2F><><EFBFBD><EFBFBD>
else
{
length = zf_sprintf( &buff[1],"%f",dat);
length++;
}
point = (int8)(length - 7); //<2F><><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
start = point - num - 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼλ
end = point + pointnum + 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
while(0>start)//<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> ĩβӦ<CEB2><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ո<EFBFBD>
{
buff[end] = ' ';
end++;
start++;
}
if(0>dat) buff[start] = '-';
else buff[start] = ' ';
buff[end] = '\0';
ips200_showstr(x, y, buff); //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<38>޷<EFBFBD><DEB7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param w ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param l ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @return void
// @since v1.0
// Sample usage: ips200_showimage(0,0,10,20,&image);//ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(0,0)<29><><EFBFBD><EFBFBD>10<31><30><EFBFBD><EFBFBD>20<32><30>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showimage(uint16 x,uint16 y,uint16 w,uint16 l,const unsigned char *p)
{
int i;
unsigned char picH,picL;
ips200_address_set(x,y,x+w-1,y+l-1);
for(i=0;i<w*l;i++)
{
picL=*(p+i*2);
picH=*(p+i*2+1);
ips200_wr_data16(picH<<8|picL);
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage032(mt9v03x_csi_image[0], MT9V03X_CSI_W, MT9V03X_CSI_H)//<2F><>ʾ<EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
// @note ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage032(uint8 *p, uint16 width, uint16 height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
uint16 coord_x = 0;
uint16 coord_y = 0;
coord_x = width>IPS200_X_MAX?IPS200_X_MAX:width;
coord_y = height>IPS200_Y_MAX?IPS200_Y_MAX:height;
ips200_address_set(0,0,coord_x-1,coord_y-1);
for(j=0;j<coord_y;j++)
{
for(i=0;i<coord_x;i++)
{
temp = *(p+j*width+i*width/coord_x);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 0 -<2D><>IPS200_X_MAX-1<><31>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 0 -<2D><>IPS200_Y_MAX-1<><31>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage032_zoom(mt9v03x_csi_image[0], MT9V03X_CSI_W, MT9V03X_CSI_H, MT9V03X_CSI_W, MT9V03X_CSI_H)//<2F><>ʾ<EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
// @note ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage032_zoom(uint8 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
ips200_address_set(0,0,dis_width-1,dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
temp = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param start_x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param start_y <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 1 -<2D><>TFT_X_MAX<41><58>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 1 -<2D><>TFT_Y_MAX<41><58>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage032_zoom1(mt9v03x_csi_image[0], MT9V03X_CSI_W, MT9V03X_CSI_H, 0, 0, MT9V03X_CSI_W, MT9V03X_CSI_H)//<2F><>ʾ<EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage032_zoom1(uint8 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD>Ƿ񳬹<C7B7><F1B3ACB9><EFBFBD>Ļ<EFBFBD>ķֱ<C4B7><D6B1><EFBFBD>
if((start_x+dis_width)>IPS200_X_MAX) ZF_ASSERT(0);
if((start_y+dis_height)>IPS200_Y_MAX) ZF_ASSERT(0);
ips200_address_set(start_x,start_y,start_x+dis_width-1,start_y+dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
temp = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><>ͫ(<28><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 0 -<2D><>TFT_X_MAX-1<><31>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 0 -<2D><>TFT_Y_MAX-1<><31>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage8660_zoom(scc8660_csi_image[0], SCC8660_CSI_PIC_W, SCC8660_CSI_PIC_H, 320, 240);//<2F><>ʾ<EFBFBD><CABE>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
// @note <20>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ݸ<EFBFBD>ʽ(SCC8660_DATA_FORMAT)<29><><EFBFBD><EFBFBD>Ϊ0ʱ<30><CAB1><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ɫͼ<C9AB><CDBC>
// ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage8660_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
ips200_address_set(0,0,dis_width-1,dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
color = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color = ((color&0xff)<<8) | (color>>8);
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><>ͫ(<28><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param start_x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param start_y <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 1 -<2D><>TFT_X_MAX<41><58>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 1 -<2D><>TFT_Y_MAX<41><58>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage8660_zoom1(scc8660_csi_image[0], SCC8660_CSI_PIC_W, SCC8660_CSI_PIC_H, 0, 0, 320, 240);
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage8660_zoom1(uint16 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD>Ƿ񳬹<C7B7><F1B3ACB9><EFBFBD>Ļ<EFBFBD>ķֱ<C4B7><D6B1><EFBFBD>
if((start_x+dis_width)>IPS200_X_MAX) ZF_ASSERT(0);
if((start_y+dis_height)>IPS200_Y_MAX) ZF_ASSERT(0);
ips200_address_set(start_x,start_y,start_x+dis_width-1,start_y+dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
color = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color = ((color&0xff)<<8) | (color>>8);
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><>ͫ(<28><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>(<28><>ʾ<EFBFBD>Ҷ<EFBFBD>)
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 0 -<2D><>TFT_X_MAX-1<><31>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 0 -<2D><>TFT_Y_MAX-1<><31>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage8660_grayscale_zoom(scc8660_csi_image[0], SCC8660_CSI_PIC_W, SCC8660_CSI_PIC_H, 320, 240)//<2F><>ʾ<EFBFBD><CABE>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷͼ<CDB7><CDBC> <20><>ʾY<CABE><59><EFBFBD><EFBFBD>
// @note <20>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ݸ<EFBFBD>ʽ(SCC8660_DATA_FORMAT)<29><><EFBFBD><EFBFBD>Ϊ2ʱ<32><CAB1><EFBFBD><EFBFBD>ȡY<C8A1><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>Ҷ<EFBFBD>ͼ<EFBFBD><CDBC>
// ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage8660_grayscale_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
ips200_address_set(0,0,dis_width-1,dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
temp = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
temp = temp&0xff;
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief С<><D0A1><EFBFBD><EFBFBD>(<28><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @return void
// @since v1.0
// @note ͼ<><CDBC><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>120(<28><>)*160(<28><>)<29><><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height)
{
int i,j;
uint16 temp = 0;
ips200_address_set(0,0,width-1,height-1);
for(i=0;i<height * (width/8);i++)
{
temp = *p;
p++;
for(j=0; j<8; j++)
{
if( (temp<<j)&0x80 ) ips200_wr_data16(RGB565_WHITE);
else ips200_wr_data16(RGB565_BLACK);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
// @param x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0-<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0-<2D><>IPS200_Y_MAX-1<><31>
// @param size ȡģ<C8A1><C4A3>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>õĵ<C3B5><C4B5>󳤿<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ٸ<EFBFBD><D9B8>㣬ȡģ<C8A1><C4A3>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ġ<EFBFBD>
// @param *p <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param number <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>λ
// @param color <20><>ʾ<EFBFBD><CABE>ɫ
// @return void
// @since v1.0
// Sample usage: ips200_display_chinese(0,0,16,chinese_test[0],4,RED);//<2F><>ʾfont<6E>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ʾ<><CABE>
// @Note ʹ<><CAB9>PCtoLCD2002<30><32><EFBFBD><EFBFBD>ȡģ <20><><EFBFBD><EFBFBD><EBA1A2><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>˳<EFBFBD><CBB3> 16*16
//-------------------------------------------------------------------------------------------------------------------
void ips200_display_chinese(uint16 x, uint16 y, uint8 size, const uint8 *p, uint8 number, uint16 color)
{
int i, j, k;
uint8 temp, temp1, temp2;
const uint8 *p_data;
temp2 = size/8;
ips200_address_set(x,y,number*size-1+x,y+size-1);
for(i=0;i<size;i++)
{
temp1 = number;
p_data = p+i*temp2;
while(temp1--)
{
for(k=0;k<temp2;k++)
{
for(j=8;j>0;j--)
{
temp = (*p_data>>(j-1)) & 0x01;
if(temp) ips200_wr_data16(color);
else ips200_wr_data16(IPS200_BGCOLOR);
}
p_data++;
}
p_data = p_data - temp2 + temp2*size;
}
}
}

View File

@@ -0,0 +1,199 @@
/*/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2020,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>824575535
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file 2.0<EFBFBD><EFBFBD>IPS<EFBFBD><EFBFBD>Ļ
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software ADS v1.5.2
* @Target core TC264
* @Taobao https://seekfree.taobao.com/
* @date 2020-05-07
* @note
<20><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------
* ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
* // ˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* RD <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RD_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* WR <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_WR_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* RS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RS_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* RST <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RST_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* CS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_CS_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* BL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_BL_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* D0-D7 <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_Dx_PIN_PARALLEL8 <20><EFBFBD><EAB6A8>
* // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* SCL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_SCL_PIN_SPI <20><EFBFBD><EAB6A8>
* SDA <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_SDA_PIN_SPI <20><EFBFBD><EAB6A8>
* RST <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_RST_PIN_SPI <20><EFBFBD><EAB6A8>
* DC <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_DC_PIN_SPI <20><EFBFBD><EAB6A8>
* CS <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_CS_PIN_SPI <20><EFBFBD><EAB6A8>
* BL <20>鿴 SEEKFREE_IPS200.h <20><> IPS200_BL_PIN_SPI <20><EFBFBD><EAB6A8>
* <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
* VCC 3.3V<EFBFBD><EFBFBD>Դ
* GND <20><>Դ<EFBFBD><D4B4>
* <20><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD> 320 * 240
* ------------------------------------
********************************************************************************************************************/
#ifndef _SEEKFREE_IPS200_H
#define _SEEKFREE_IPS200_H
#include "common.h"
#include "stdlib.h"
#include "string.h"
#include "stdio.h"
#include "zf_stm_systick.h"
#include "zf_gpio.h"
#include "zf_assert.h"
#include "SEEKFREE_PRINTF.h"
#include "zf_spi.h"
#include "SEEKFREE_FUN.h"
#include "SEEKFREE_FONT.h"
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>SEEKFREE_FONT.h<>ļ<EFBFBD><C4BC>ж<EFBFBD><D0B6><EFBFBD>----------
//#define RED 0xF800 //<2F><>ɫ
//#define BLUE 0x001F //<2F><>ɫ
//#define YELLOW 0xFFE0 //<2F><>ɫ
//#define GREEN 0x07E0 //<2F><>ɫ
//#define WHITE 0xFFFF //<2F><>ɫ
//#define BLACK 0x0000 //<2F><>ɫ
//#define GRAY 0X8430 //<2F><>ɫ
//#define BROWN 0XBC40 //<2F><>ɫ
//#define PURPLE 0XF81F //<2F><>ɫ
//#define PINK 0XFE19 //<2F><>ɫ
#define IPS200_BGCOLOR RGB565_WHITE //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
#define IPS200_PENCOLOR RGB565_RED //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
// <20><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
#define IPS200_SPIN SPI_2 //<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD>SPI<50><49>
#define IPS200_SCL_PIN_SPI SPI2_SCLK_P15_3 //<2F><><EFBFBD><EFBFBD>SPI_SCK<43><4B><EFBFBD><EFBFBD>
#define IPS200_SDA_PIN_SPI SPI2_MOSI_P15_5 //<2F><><EFBFBD><EFBFBD>SPI_MOSI<53><49><EFBFBD><EFBFBD>
#define IPS200_SDA_IN_PIN_SPI SPI2_MISO_P15_4 //<2F><><EFBFBD><EFBFBD>SPI_MISO<53><4F><EFBFBD><EFBFBD> IPSû<53><C3BB>MISO<53><4F><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><E5A3AC>spi<70>ij<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1>Ҫʹ<D2AA><CAB9>
#define IPS200_CS_PIN_SPI SPI2_CS0_P15_2 //<2F><><EFBFBD><EFBFBD>SPI_CS<43><53><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
#define IPS200_RST_PIN_SPI P15_1 // Һ<><D2BA><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD>
#define IPS200_DC_PIN_SPI P15_0
#define IPS200_BL_PIN_SPI P15_4
//<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
//<2F><><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ѡ<EFBFBD><D1A1>B C D<><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><CBBF>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
#define IPS200_RD_PIN_PARALLEL8 P15_3
#define IPS200_WR_PIN_PARALLEL8 P15_5
#define IPS200_RS_PIN_PARALLEL8 P15_1
#define IPS200_RST_PIN_PARALLEL8 P15_0
#define IPS200_CS_PIN_PARALLEL8 P15_2
#define IPS200_BL_PIN_PARALLEL8 P15_4
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õõ<C3B5>
//D0-D3<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>C0-C3,C1-C4<43>ȵȣ<C8B5>
//D4-D7<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>B0-B3,B1-B4<42>ȵȡ<C8B5>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>ͬ<EFBFBD>˿ڵ<CBBF><DAB5><EFBFBD>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>D0-D3<44><33>C1-C4<43><34><EFBFBD>ӣ<EFBFBD>D4-D7<44><37>B2-B5<42><35><EFBFBD>ӡ<EFBFBD>
//<2F>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD>ע<EFBFBD><D7A2><EFBFBD>޸<EFBFBD>IPS200_DATA_PORT1<54><31>IPS200_DATA_PORT2<54><EFBFBD><EAB6A8>
#define IPS200_D0_PIN_PARALLEL8 P11_9
#define IPS200_D1_PIN_PARALLEL8 P11_10
#define IPS200_D2_PIN_PARALLEL8 P11_11
#define IPS200_D3_PIN_PARALLEL8 P11_12
#define IPS200_D4_PIN_PARALLEL8 P13_0
#define IPS200_D5_PIN_PARALLEL8 P13_1
#define IPS200_D6_PIN_PARALLEL8 P13_2
#define IPS200_D7_PIN_PARALLEL8 P13_3
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ˿<DDB6><CBBF><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>и<EFBFBD><D0B8><EFBFBD>
#define IPS200_DATA_PORT1 3 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT1 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT1].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM1 (IPS200_D0_PIN_PARALLEL8&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_DATA_PORT2 4 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT2 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT2].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM2 (IPS200_D4_PIN_PARALLEL8&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_BL(x) gpio_set(IPS200_BL_PIN_PARALLEL8,x)
#define IPS200_CS(x) gpio_set(IPS200_CS_PIN_PARALLEL8,x)
#define IPS200_RD(x) gpio_set(IPS200_RD_PIN_PARALLEL8,x)
#define IPS200_WR(x) gpio_set(IPS200_WR_PIN_PARALLEL8,x)
#define IPS200_RS(x) gpio_set(IPS200_RS_PIN_PARALLEL8,x)
#define IPS200_RST(x) gpio_set(ips_rst_pin,x)
#define IPS200_DC(x) gpio_set(IPS200_DC_PIN_SPI,x)
#define IPS200_W 240
#define IPS200_H 320
typedef enum
{
IPS200_TYPE_SPI, // SPI <20><><EFBFBD><EFBFBD>
IPS200_TYPE_PARALLEL8, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}ips200_type_enum;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
//0 <20><><EFBFBD><EFBFBD>ģʽ
//1 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
//2 <20><><EFBFBD><EFBFBD>ģʽ
//3 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
#define IPS200_DISPLAY_DIR 0
#if (0==IPS200_DISPLAY_DIR || 1==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_W //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_H //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#elif (2==IPS200_DISPLAY_DIR || 3==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_H //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_W //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#else
#error "IPS200_DISPLAY_DIR <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#endif
void ips200_init(ips200_type_enum type_select); //<2F><>ʼ<EFBFBD><CABC>Ӳ<EFBFBD><D3B2>
void ips200_w_data(uint8 dat);
void ips200_wr_reg(uint8 com);
void ips200_wr_data(uint8 dat);
void ips200_wr_data16(uint16 dat);
void ips200_w_reg(uint8 com,uint8 dat);
void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2);
void ips200_clear(uint16 color);
void ips200_drawpoint(uint16 x,uint16 y,uint16 color);
void ips200_showchar(uint16 x,uint16 y,const int8 dat);
void ips200_showstr(uint16 x,uint16 y,const int8 dat[]);
void ips200_showint8(uint16 x,uint16 y,int8 dat);
void ips200_showuint8(uint16 x,uint16 y,uint8 dat);
void ips200_showint16(uint16 x,uint16 y,int16 dat);
void ips200_showuint16(uint16 x,uint16 y,uint16 dat);
void ips200_showint32(uint16 x,uint16 y,int dat,uint8 num);
void ips200_showfloat(uint16 x,uint16 y,double dat,int8 num,int8 pointnum);
void ips200_showimage(uint16 x,uint16 y,uint16 w,uint16 l,const unsigned char *p);
void ips200_displayimage032(uint8 *p, uint16 width, uint16 height);
void ips200_displayimage032_zoom(uint8 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage032_zoom1(uint8 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom1(uint16 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_grayscale_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height);
void ips200_display_chinese(uint16 x, uint16 y, uint8 size, const uint8 *p, uint8 number, uint16 color);
#endif

View File

@@ -1,896 +0,0 @@
/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2020,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>824575535
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file 2.0<EFBFBD><EFBFBD>IPS<EFBFBD><EFBFBD>Ļ
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software ADS v1.2.2
* @Target core TC264D
* @Taobao https://seekfree.taobao.com/
* @date 2020-3-23
* @note
<09><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------
ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <09><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
D0 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D0_PIN <20><EFBFBD><EAB6A8>
D1 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D1_PIN <20><EFBFBD><EAB6A8>
D2 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D2_PIN <20><EFBFBD><EAB6A8>
D3 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D3_PIN <20><EFBFBD><EAB6A8>
D4 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D4_PIN <20><EFBFBD><EAB6A8>
D5 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D5_PIN <20><EFBFBD><EAB6A8>
D6 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D6_PIN <20><EFBFBD><EAB6A8>
D7 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D7_PIN <20><EFBFBD><EAB6A8>
BL <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_BL_PIN <20><EFBFBD><EAB6A8>
CS <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_CS_PIN <20><EFBFBD><EAB6A8>
RD <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RD_PIN <20><EFBFBD><EAB6A8>
WR <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_WR_PIN <20><EFBFBD><EAB6A8>
RS <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RS_PIN <20><EFBFBD><EAB6A8>
RST <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RST_PIN <20><EFBFBD><EAB6A8>
<09><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
VCC 3.3V<EFBFBD><EFBFBD>Դ
GND <20><>Դ<EFBFBD><D4B4>
<09><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>240*320
------------------------------------
********************************************************************************************************************/
#include "stdlib.h"
#include "string.h"
#include "stdio.h"
#include "zf_stm_systick.h"
#include "zf_gpio.h"
#include "zf_assert.h"
#include "SEEKFREE_PRINTF.h"
#include "SEEKFREE_IPS200_PARALLEL8.h"
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param void
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_w_data(uint8 dat) //д<><D0B4><EFBFBD><EFBFBD>
{
IPS200_DATAPORT1 = (dat << DATA_START_NUM1) | (IPS200_DATAPORT1 & ~((uint32)(0x0F << DATA_START_NUM1)) );
IPS200_DATAPORT2 = ((dat>>4) << DATA_START_NUM2) | (IPS200_DATAPORT2 & ~((uint32)(0x0F << DATA_START_NUM2)) );
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param void
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_wr_reg(uint8 command) //д<><D0B4><EFBFBD><EFBFBD>
{
IPS200_CS(0);
IPS200_RS(0);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(command);
IPS200_WR(1);
IPS200_CS(1);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param void
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_wr_data(uint8 dat) //<2F><>Һ<EFBFBD><D2BA><EFBFBD><EFBFBD>дһ<D0B4><D2BB><38><CEBB><EFBFBD><EFBFBD>
{
IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data(dat);
IPS200_WR(1);
IPS200_CS(1);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param void
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_wr_data16(uint16 dat) //<2F><>Һ<EFBFBD><D2BA><EFBFBD><EFBFBD>дһ<D0B4><D2BB>16λ<36><CEBB><EFBFBD><EFBFBD>
{
IPS200_CS(0);
IPS200_RS(1);
IPS200_RD(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat>>8));
IPS200_WR(1);
IPS200_WR(0);
ips200_w_data((uint8)(dat));
IPS200_WR(1);
IPS200_CS(1);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param void
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_w_reg(uint8 com,uint8 dat) //д<>Ĵ<EFBFBD><C4B4><EFBFBD>
{
ips200_wr_reg(com);
ips200_wr_data(dat);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param void
// @return
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2)
{
ips200_wr_reg(0x2a);
ips200_wr_data16(x1);
ips200_wr_data16(x2);
ips200_wr_reg(0x2b);
ips200_wr_data16(y1);
ips200_wr_data16(y2);
ips200_wr_reg(0x2c);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief 2.0<EFBFBD><EFBFBD> IPSҺ<53><D2BA><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
// @return void
// @since v1.0
// Sample usage:
//-------------------------------------------------------------------------------------------------------------------
void ips200_init(void)
{
gpio_init(IPS200_D0_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D1_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D2_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D3_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D4_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D5_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D6_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_D7_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_BL_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_CS_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_RST_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_RS_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_WR_PIN, GPO, 0, PUSHPULL);
gpio_init(IPS200_RD_PIN, GPO, 0, PUSHPULL);
IPS200_BL(1);
IPS200_RST(0);
systick_delay_ms(STM0, 5);
IPS200_RST(1);
systick_delay_ms(STM0, 5);
ips200_wr_reg(0x11);
systick_delay_ms(STM0, 120);
ips200_wr_reg(0x36);
if (IPS200_DISPLAY_DIR==0) ips200_wr_data(0x00);
else if (IPS200_DISPLAY_DIR==1) ips200_wr_data(0xC0);
else if (IPS200_DISPLAY_DIR==2) ips200_wr_data(0x70);
else ips200_wr_data(0xA0);
ips200_wr_reg(0x3A);
ips200_wr_data(0x05);
ips200_wr_reg(0xB2);
ips200_wr_data(0x0C);
ips200_wr_data(0x0C);
ips200_wr_data(0x00);
ips200_wr_data(0x33);
ips200_wr_data(0x33);
ips200_wr_reg(0xB7);
ips200_wr_data(0x35);
ips200_wr_reg(0xBB);
ips200_wr_data(0x29); //32 Vcom=1.35V
ips200_wr_reg(0xC2);
ips200_wr_data(0x01);
ips200_wr_reg(0xC3);
ips200_wr_data(0x19); //GVDD=4.8V
ips200_wr_reg(0xC4);
ips200_wr_data(0x20); //VDV, 0x20:0v
ips200_wr_reg(0xC5);
ips200_wr_data(0x1A);//VCOM Offset Set
ips200_wr_reg(0xC6);
ips200_wr_data(0x01F); //0x0F:60Hz
ips200_wr_reg(0xD0);
ips200_wr_data(0xA4);
ips200_wr_data(0xA1);
ips200_wr_reg(0xE0);
ips200_wr_data(0xD0);
ips200_wr_data(0x08);
ips200_wr_data(0x0E);
ips200_wr_data(0x09);
ips200_wr_data(0x09);
ips200_wr_data(0x05);
ips200_wr_data(0x31);
ips200_wr_data(0x33);
ips200_wr_data(0x48);
ips200_wr_data(0x17);
ips200_wr_data(0x14);
ips200_wr_data(0x15);
ips200_wr_data(0x31);
ips200_wr_data(0x34);
ips200_wr_reg(0xE1);
ips200_wr_data(0xD0);
ips200_wr_data(0x08);
ips200_wr_data(0x0E);
ips200_wr_data(0x09);
ips200_wr_data(0x09);
ips200_wr_data(0x15);
ips200_wr_data(0x31);
ips200_wr_data(0x33);
ips200_wr_data(0x48);
ips200_wr_data(0x17);
ips200_wr_data(0x14);
ips200_wr_data(0x15);
ips200_wr_data(0x31);
ips200_wr_data(0x34);
ips200_wr_reg(0x21);
ips200_wr_reg(0x29);
ips200_clear(IPS200_BGCOLOR); //<2F><>ʼ<EFBFBD><CABC>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param color <09><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_clear(YELLOW);// ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ɫ
//-------------------------------------------------------------------------------------------------------------------
void ips200_clear(uint16 color)
{
uint16 i,j;
ips200_address_set(0,0,IPS200_X_MAX-1,IPS200_Y_MAX-1);
for(i=0;i<IPS200_X_MAX;i++)
{
for (j=0;j<IPS200_Y_MAX;j++)
{
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ɫ
// @return void
// @since v1.0
// Sample usage: ips200_drawpoint(0,0,RED); //<2F><><EFBFBD><EFBFBD>0,0<><30>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ɫ<EFBFBD>ĵ<EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_drawpoint(uint16 x,uint16 y,uint16 color)
{
ips200_address_set(x,y,x,y);
ips200_wr_data16(color);
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD>ַ<EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_X_MAX-1)
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_Y_MAX/16-1)
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD>ַ<EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_showchar(0,0,'x');//<2F><><EFBFBD><EFBFBD>0,0дһ<D0B4><D2BB><EFBFBD>ַ<EFBFBD>x
//-------------------------------------------------------------------------------------------------------------------
void ips200_showchar(uint16 x,uint16 y,const int8 dat)
{
uint8 i,j;
uint8 temp;
for(i=0; i<16; i++)
{
ips200_address_set(x,y+i,x+7,y+i);
temp = tft_ascii[(uint16)dat-32][i];//<2F><>32<33><32>Ϊ<EFBFBD><CEAA>ȡģ<C8A1>Ǵӿո<D3BF><D5B8><EFBFBD>ʼȡ<CABC><C8A1> <20>ո<EFBFBD><D5B8><EFBFBD>ascii<69><69><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>32
for(j=0; j<8; j++)
{
if(temp&0x01) ips200_wr_data16(IPS200_PENCOLOR);
else ips200_wr_data16(IPS200_BGCOLOR);
temp>>=1;
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_X_MAX-1)
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 - (IPS200_Y_MAX/16-1)
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_showstr(0,0,"seekfree");
//-------------------------------------------------------------------------------------------------------------------
void ips200_showstr(uint16 x,uint16 y,const int8 dat[])
{
uint16 j;
j = 0;
while(dat[j] != '\0')
{
ips200_showchar(x+8*j,y*16,dat[j]);
j++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<38>з<EFBFBD><D0B7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>int8
// @return void
// @since v1.0
// Sample usage: ips200_showint8(0,0,x);//xΪint8<74><38><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showint8(uint16 x,uint16 y,int8 dat)
{
uint8 a[3];
uint8 i;
if(dat<0)
{
ips200_showchar(x,y*16,'-');
dat = -dat;
}
else ips200_showchar(x,y*16,' ');
a[0] = dat/100;
a[1] = dat/10%10;
a[2] = dat%10;
i = 0;
while(i<3)
{
ips200_showchar(x+(8*(i+1)),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<38>޷<EFBFBD><DEB7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uint8
// @return void
// @since v1.0
// Sample usage: ips200_showuint8(0,0,x);//xΪuint8<74><38><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showuint8(uint16 x,uint16 y,uint8 dat)
{
uint8 a[3];
uint8 i;
a[0] = dat/100;
a[1] = dat/10%10;
a[2] = dat%10;
i = 0;
while(i<3)
{
ips200_showchar(x+(8*i),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ16λ<36>з<EFBFBD><D0B7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>int16
// @return void
// @since v1.0
// Sample usage: ips200_showint16(0,0,x);//xΪint16<31><36><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showint16(uint16 x,uint16 y,int16 dat)
{
uint8 a[5];
uint8 i;
if(dat<0)
{
ips200_showchar(x,y*16,'-');
dat = -dat;
}
else ips200_showchar(x,y*16,' ');
a[0] = dat/10000;
a[1] = dat/1000%10;
a[2] = dat/100%10;
a[3] = dat/10%10;
a[4] = dat%10;
i = 0;
while(i<5)
{
ips200_showchar(x+(8*(i+1)),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ16λ<36>޷<EFBFBD><DEB7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uint16
// @return void
// @since v1.0
// Sample usage: ips200_showuint16(0,0,x);//xΪuint16<31><36><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showuint16(uint16 x,uint16 y,uint16 dat)
{
uint8 a[5];
uint8 i;
a[0] = dat/10000;
a[1] = dat/1000%10;
a[2] = dat/100%10;
a[3] = dat/10%10;
a[4] = dat%10;
i = 0;
while(i<5)
{
ips200_showchar(x+(8*i),y*16,'0' + a[i]);
i++;
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ32λ<32>з<EFBFBD><D0B7><EFBFBD><><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>0)
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uint32
// @param num <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE>λ<EFBFBD><CEBB> <20><><EFBFBD><EFBFBD>10λ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_showint32(0,0,x,3);//x<><78><EFBFBD><EFBFBD>Ϊint32 uint16 int16 uint8 int8<74><38><EFBFBD><EFBFBD>
// Sample usage: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB> <20><>-<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB><EFBFBD>ո<EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showint32(uint16 x,uint16 y,int dat,uint8 num)
{
int8 buff[34];
uint32 length;
if(10<num) num = 10;
num++;
if(0>dat) length = zf_sprintf(&buff[0],"%d",dat);//<2F><><EFBFBD><EFBFBD>
else
{
buff[0] = ' ';
length = zf_sprintf(&buff[1],"%d",dat);
length++;
}
while(length < num)
{
buff[length] = ' ';
length++;
}
buff[num] = '\0';
ips200_showstr(x, y, buff); //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>0)
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param dat <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>float<61><74>double
// @param num <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>10λ
// @param pointnum С<><D0A1>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips_showfloat(0,0,x,2,3);//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾС<><D0A1><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>λ
// @note <20>ر<EFBFBD>ע<EFBFBD><EFBFBD><E2B5B1><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD>µģ<C2B5><C4A3><EFBFBD><E2B2A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A3AC><EFBFBD><EFBFBD><EFBFBD>аٶ<D0B0>ѧϰ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB> <20><>-<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB><EFBFBD>ո<EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showfloat(uint16 x,uint16 y,double dat,int8 num,int8 pointnum)
{
uint32 length;
int8 buff[34];
int8 start,end,point;
if(6<pointnum) pointnum = 6;
if(10<num) num = 10;
if(0>dat) length = zf_sprintf( &buff[0],"%f",dat);//<2F><><EFBFBD><EFBFBD>
else
{
length = zf_sprintf( &buff[1],"%f",dat);
length++;
}
point = (int8)(length - 7); //<2F><><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
start = point - num - 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼλ
end = point + pointnum + 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
while(0>start)//<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> ĩβӦ<CEB2><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ո<EFBFBD>
{
buff[end] = ' ';
end++;
start++;
}
if(0>dat) buff[start] = '-';
else buff[start] = ' ';
buff[end] = '\0';
ips200_showstr(x, y, buff); //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
}
//-------------------------------------------------------------------------------------------------------------------
// @brief Һ<><D2BA><EFBFBD><EFBFBD>ʾ<38>޷<EFBFBD><DEB7><EFBFBD>
// @param x <20><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ 0 -<2D><>IPS200_Y_MAX/16-1<><31>
// @param w ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param l ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @return void
// @since v1.0
// Sample usage: ips200_showimage(0,0,10,20,&image);//ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(0,0)<29><><EFBFBD><EFBFBD>10<31><30><EFBFBD><EFBFBD>20<32><30>
//-------------------------------------------------------------------------------------------------------------------
void ips200_showimage(uint16 x,uint16 y,uint16 w,uint16 l,const unsigned char *p)
{
int i;
unsigned char picH,picL;
ips200_address_set(x,y,x+w-1,y+l-1);
for(i=0;i<w*l;i++)
{
picL=*(p+i*2);
picH=*(p+i*2+1);
ips200_wr_data16(picH<<8|picL);
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage032(mt9v03x_csi_image[0], MT9V03X_CSI_W, MT9V03X_CSI_H)//<2F><>ʾ<EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
// @note ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage032(uint8 *p, uint16 width, uint16 height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
uint16 coord_x = 0;
uint16 coord_y = 0;
coord_x = width>IPS200_X_MAX?IPS200_X_MAX:width;
coord_y = height>IPS200_Y_MAX?IPS200_Y_MAX:height;
ips200_address_set(0,0,coord_x-1,coord_y-1);
for(j=0;j<coord_y;j++)
{
for(i=0;i<coord_x;i++)
{
temp = *(p+j*width+i*width/coord_x);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 0 -<2D><>IPS200_X_MAX-1<><31>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 0 -<2D><>IPS200_Y_MAX-1<><31>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage032_zoom(mt9v03x_csi_image[0], MT9V03X_CSI_W, MT9V03X_CSI_H, MT9V03X_CSI_W, MT9V03X_CSI_H)//<2F><>ʾ<EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
// @note ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage032_zoom(uint8 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
ips200_address_set(0,0,dis_width-1,dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
temp = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param start_x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param start_y <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 1 -<2D><>TFT_X_MAX<41><58>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 1 -<2D><>TFT_Y_MAX<41><58>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage032_zoom1(mt9v03x_csi_image[0], MT9V03X_CSI_W, MT9V03X_CSI_H, 0, 0, MT9V03X_CSI_W, MT9V03X_CSI_H)//<2F><>ʾ<EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage032_zoom1(uint8 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD>Ƿ񳬹<C7B7><F1B3ACB9><EFBFBD>Ļ<EFBFBD>ķֱ<C4B7><D6B1><EFBFBD>
if((start_x+dis_width)>IPS200_X_MAX) ZF_ASSERT(0);
if((start_y+dis_height)>IPS200_Y_MAX) ZF_ASSERT(0);
ips200_address_set(start_x,start_y,start_x+dis_width-1,start_y+dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
temp = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><>ͫ(<28><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 0 -<2D><>TFT_X_MAX-1<><31>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 0 -<2D><>TFT_Y_MAX-1<><31>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage8660_zoom(scc8660_csi_image[0], SCC8660_CSI_PIC_W, SCC8660_CSI_PIC_H, 320, 240);//<2F><>ʾ<EFBFBD><CABE>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ ͼ<><CDBC>
// @note <20>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ݸ<EFBFBD>ʽ(SCC8660_DATA_FORMAT)<29><><EFBFBD><EFBFBD>Ϊ0ʱ<30><CAB1><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ɫͼ<C9AB><CDBC>
// ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage8660_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
ips200_address_set(0,0,dis_width-1,dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
color = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color = ((color&0xff)<<8) | (color>>8);
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><>ͫ(<28><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param start_x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param start_y <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 1 -<2D><>TFT_X_MAX<41><58>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 1 -<2D><>TFT_Y_MAX<41><58>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage8660_zoom1(scc8660_csi_image[0], SCC8660_CSI_PIC_W, SCC8660_CSI_PIC_H, 0, 0, 320, 240);
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage8660_zoom1(uint16 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD>Ƿ񳬹<C7B7><F1B3ACB9><EFBFBD>Ļ<EFBFBD>ķֱ<C4B7><D6B1><EFBFBD>
if((start_x+dis_width)>IPS200_X_MAX) ZF_ASSERT(0);
if((start_y+dis_height)>IPS200_Y_MAX) ZF_ASSERT(0);
ips200_address_set(start_x,start_y,start_x+dis_width-1,start_y+dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
color = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
color = ((color&0xff)<<8) | (color>>8);
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><>ͫ(<28><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>(<28><>ʾ<EFBFBD>Ҷ<EFBFBD>)
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @param dis_width ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> 0 -<2D><>TFT_X_MAX-1<><31>
// @param dis_height ͼ<><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD>߶<EFBFBD> 0 -<2D><>TFT_Y_MAX-1<><31>
// @return void
// @since v1.0
// Sample usage: ips200_displayimage8660_grayscale_zoom(scc8660_csi_image[0], SCC8660_CSI_PIC_W, SCC8660_CSI_PIC_H, 320, 240)//<2F><>ʾ<EFBFBD><CABE>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>ͷͼ<CDB7><CDBC> <20><>ʾY<CABE><59><EFBFBD><EFBFBD>
// @note <20>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ݸ<EFBFBD>ʽ(SCC8660_DATA_FORMAT)<29><><EFBFBD><EFBFBD>Ϊ2ʱ<32><CAB1><EFBFBD><EFBFBD>ȡY<C8A1><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>Ҷ<EFBFBD>ͼ<EFBFBD><CDBC>
// ͼ<><CDBC><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>Ŀ<EFBFBD><C4BF>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾȫ<CABE><C8AB>Ұ
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage8660_grayscale_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height)
{
uint32 i,j;
uint16 color = 0;
uint16 temp = 0;
ips200_address_set(0,0,dis_width-1,dis_height-1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
for(j=0;j<dis_height;j++)
{
for(i=0;i<dis_width;i++)
{
temp = *(p+(j*height/dis_height)*width+i*width/dis_width);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ص<EFBFBD>
temp = temp&0xff;
color=(0x001f&((temp)>>3))<<11;
color=color|(((0x003f)&((temp)>>2))<<5);
color=color|(0x001f&((temp)>>3));
ips200_wr_data16(color);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief С<><D0A1><EFBFBD><EFBFBD>(<28><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ)Һ<><D2BA><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
// @param *p ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
// @param width ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param height ͼ<><CDBC><EFBFBD>߶<EFBFBD>
// @return void
// @since v1.0
// @note ͼ<><CDBC><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>120(<28><>)*160(<28><>)<29><><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height)
{
int i,j;
uint16 temp = 0;
ips200_address_set(0,0,width-1,height-1);
for(i=0;i<height * (width/8);i++)
{
temp = *p;
p++;
for(j=0; j<8; j++)
{
if( (temp<<j)&0x80 ) ips200_wr_data16(WHITE);
else ips200_wr_data16(BLACK);
}
}
}
//-------------------------------------------------------------------------------------------------------------------
// @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
// @param x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0-<2D><>IPS200_X_MAX-1<><31>
// @param y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0-<2D><>IPS200_Y_MAX-1<><31>
// @param size ȡģ<C8A1><C4A3>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>õĺ<C3B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>õĵ<C3B5><C4B5>󳤿<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ٸ<EFBFBD><D9B8>㣬ȡģ<C8A1><C4A3>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ġ<EFBFBD>
// @param *p <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// @param number <20><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>λ
// @param color <20><>ʾ<EFBFBD><CABE>ɫ
// @return void
// @since v1.0
// Sample usage: ips200_display_chinese(0,0,16,chinese_test[0],4,RED);//<2F><>ʾfont<6E>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ʾ<><CABE>
// @Note ʹ<><CAB9>PCtoLCD2002<30><32><EFBFBD><EFBFBD>ȡģ <20><><EFBFBD><EFBFBD><EBA1A2><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>˳<EFBFBD><CBB3> 16*16
//-------------------------------------------------------------------------------------------------------------------
void ips200_display_chinese(uint16 x, uint16 y, uint8 size, const uint8 *p, uint8 number, uint16 color)
{
int i, j, k;
uint8 temp, temp1, temp2;
const uint8 *p_data;
temp2 = size/8;
ips200_address_set(x,y,number*size-1+x,y+size-1);
for(i=0;i<size;i++)
{
temp1 = number;
p_data = p+i*temp2;
while(temp1--)
{
for(k=0;k<temp2;k++)
{
for(j=8;j>0;j--)
{
temp = (*p_data>>(j-1)) & 0x01;
if(temp) ips200_wr_data16(color);
else ips200_wr_data16(IPS200_BGCOLOR);
}
p_data++;
}
p_data = p_data - temp2 + temp2*size;
}
}
}

View File

@@ -1,180 +0,0 @@
/*/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2020,<2C><><EFBFBD>ɿƼ<C9BF>
* All rights reserved.
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>QQȺ<51><C8BA><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>824575535
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>У<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @file 2.0<EFBFBD><EFBFBD>IPS<EFBFBD><EFBFBD>Ļ
* @company <09>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* @author <09><><EFBFBD>ɿƼ<C9BF>(QQ3184284598)
* @version <09>鿴doc<6F><63>version<6F>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* @Software ADS v1.2.2
* @Target core TC264D
* @Taobao https://seekfree.taobao.com/
* @date 2020-3-23
* @note
<09><><EFBFBD>߶<EFBFBD><DFB6>
------------------------------------
ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <09><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
D0 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D0_PIN <20><EFBFBD><EAB6A8>
D1 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D1_PIN <20><EFBFBD><EAB6A8>
D2 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D2_PIN <20><EFBFBD><EAB6A8>
D3 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D3_PIN <20><EFBFBD><EAB6A8>
D4 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D4_PIN <20><EFBFBD><EAB6A8>
D5 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D5_PIN <20><EFBFBD><EAB6A8>
D6 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D6_PIN <20><EFBFBD><EAB6A8>
D7 <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_D7_PIN <20><EFBFBD><EAB6A8>
BL <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_BL_PIN <20><EFBFBD><EAB6A8>
CS <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_CS_PIN <20><EFBFBD><EAB6A8>
RD <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RD_PIN <20><EFBFBD><EAB6A8>
WR <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_WR_PIN <20><EFBFBD><EAB6A8>
RS <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RS_PIN <20><EFBFBD><EAB6A8>
RST <09>鿴SEEKFREE_IPS200_PARALLEL8.H<>ļ<EFBFBD><C4BC>ڵ<EFBFBD>IPS200_RST_PIN <20><EFBFBD><EAB6A8>
<09><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
VCC 3.3V<EFBFBD><EFBFBD>Դ
GND <20><>Դ<EFBFBD><D4B4>
<09><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>240*320
------------------------------------
********************************************************************************************************************/
#ifndef _SEEKFREE_IPS200PARALLEL8_H
#define _SEEKFREE_IPS200PARALLEL8_H
#include "common.h"
#include "SEEKFREE_FONT.h"
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>SEEKFREE_FONT.h<>ļ<EFBFBD><C4BC>ж<EFBFBD><D0B6><EFBFBD>----------
//#define RED 0xF800 //<2F><>ɫ
//#define BLUE 0x001F //<2F><>ɫ
//#define YELLOW 0xFFE0 //<2F><>ɫ
//#define GREEN 0x07E0 //<2F><>ɫ
//#define WHITE 0xFFFF //<2F><>ɫ
//#define BLACK 0x0000 //<2F><>ɫ
//#define GRAY 0X8430 //<2F><>ɫ
//#define BROWN 0XBC40 //<2F><>ɫ
//#define PURPLE 0XF81F //<2F><>ɫ
//#define PINK 0XFE19 //<2F><>ɫ
#define IPS200_BGCOLOR WHITE //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
#define IPS200_PENCOLOR RED //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
//<2F><><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ѡ<EFBFBD><D1A1>B C D<><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><CBBF>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
#define IPS200_RD_PIN P15_3
#define IPS200_WR_PIN P15_5
#define IPS200_RS_PIN P15_1
#define IPS200_RST_PIN P15_0
#define IPS200_CS_PIN P15_2
#define IPS200_BL_PIN P15_4
//D0-D3<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>C0-C3,C1-C4<43>ȵȣ<C8B5>
//D4-D7<44>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>B0-B3,B1-B4<42>ȵȡ<C8B5>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>ͬ<EFBFBD>˿ڵ<CBBF><DAB5><EFBFBD>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>D0-D3<44><33>C1-C4<43><34><EFBFBD>ӣ<EFBFBD>D4-D7<44><37>B2-B5<42><35><EFBFBD>ӡ<EFBFBD>
//<2F>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD>ע<EFBFBD><D7A2><EFBFBD>޸<EFBFBD>IPS200_DATA_PORT1<54><31>IPS200_DATA_PORT2<54><EFBFBD><EAB6A8>
#define IPS200_D0_PIN P11_9
#define IPS200_D1_PIN P11_10
#define IPS200_D2_PIN P11_11
#define IPS200_D3_PIN P11_12
#define IPS200_D4_PIN P13_0
#define IPS200_D5_PIN P13_1
#define IPS200_D6_PIN P13_2
#define IPS200_D7_PIN P13_3
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ˿<DDB6><CBBF><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PORT<52><54><EFBFBD>и<EFBFBD><D0B8><EFBFBD>
#define IPS200_DATA_PORT1 3 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT1 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT1].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM1 (IPS200_D0_PIN&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_DATA_PORT2 4 //0<><30>P00<30>˿<EFBFBD> 1<><31>P02<30>˿<EFBFBD> 2<><32>P10<31>˿<EFBFBD> 3<><33>P11<31>˿<EFBFBD> 4<><34>P13<31>˿<EFBFBD> 5<><35>P14<31>˿<EFBFBD> 6<><36>P15<31>˿<EFBFBD> 7<><37>P20<32>˿<EFBFBD> 8<><38>P21<32>˿<EFBFBD> 9<><39>P22<32>˿<EFBFBD> 10<31><30>P23<32>˿<EFBFBD> 11<31><31>P32<33>˿<EFBFBD> 12<31><32>P33<33>˿<EFBFBD>
#define IPS200_DATAPORT2 (((Ifx_P *)IfxPort_cfg_indexMap[IPS200_DATA_PORT2].module)->OUT.U) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#define DATA_START_NUM2 (IPS200_D4_PIN&0x1f) //<2F><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define IPS200_BL(x) gpio_set(IPS200_BL_PIN,x)
#define IPS200_CS(x) gpio_set(IPS200_CS_PIN,x)
#define IPS200_RD(x) gpio_set(IPS200_RD_PIN,x)
#define IPS200_WR(x) gpio_set(IPS200_WR_PIN,x)
#define IPS200_RS(x) gpio_set(IPS200_RS_PIN,x)
#define IPS200_RST(x) gpio_set(IPS200_RST_PIN,x)
#define IPS200_W 240
#define IPS200_H 320
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
//0 <20><><EFBFBD><EFBFBD>ģʽ
//1 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
//2 <20><><EFBFBD><EFBFBD>ģʽ
//3 <20><><EFBFBD><EFBFBD>ģʽ <20><>ת180<38><30>
#define IPS200_DISPLAY_DIR 0
#if (0==IPS200_DISPLAY_DIR || 1==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_W //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_H //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#elif (2==IPS200_DISPLAY_DIR || 3==IPS200_DISPLAY_DIR)
#define IPS200_X_MAX IPS200_H //Һ<><D2BA>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define IPS200_Y_MAX IPS200_W //Һ<><D2BA>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#else
#error "IPS200_DISPLAY_DIR <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#endif
void ips200_init(void); //<2F><>ʼ<EFBFBD><CABC>Ӳ<EFBFBD><D3B2>
void ips200_w_data(uint8 dat);
void ips200_wr_reg(uint8 com);
void ips200_wr_data(uint8 dat);
void ips200_wr_data16(uint16 dat);
void ips200_w_reg(uint8 com,uint8 dat);
void ips200_address_set(uint16 x1,uint16 y1,uint16 x2,uint16 y2);
void ips200_clear(uint16 color);
void ips200_drawpoint(uint16 x,uint16 y,uint16 color);
void ips200_showchar(uint16 x,uint16 y,const int8 dat);
void ips200_showstr(uint16 x,uint16 y,const int8 dat[]);
void ips200_showint8(uint16 x,uint16 y,int8 dat);
void ips200_showuint8(uint16 x,uint16 y,uint8 dat);
void ips200_showint16(uint16 x,uint16 y,int16 dat);
void ips200_showuint16(uint16 x,uint16 y,uint16 dat);
void ips200_showint32(uint16 x,uint16 y,int dat,uint8 num);
void ips200_showfloat(uint16 x,uint16 y,double dat,int8 num,int8 pointnum);
void ips200_showimage(uint16 x,uint16 y,uint16 w,uint16 l,const unsigned char *p);
void ips200_displayimage032(uint8 *p, uint16 width, uint16 height);
void ips200_displayimage032_zoom(uint8 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage032_zoom1(uint8 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_zoom1(uint16 *p, uint16 width, uint16 height, uint16 start_x, uint16 start_y, uint16 dis_width, uint16 dis_height);
void ips200_displayimage8660_grayscale_zoom(uint16 *p, uint16 width, uint16 height, uint16 dis_width, uint16 dis_height);
void ips200_displayimage7725(uint8 *p, uint16 width, uint16 height);
void ips200_display_chinese(uint16 x, uint16 y, uint8 size, const uint8 *p, uint8 number, uint16 color);
#endif

View File

@@ -1,3 +1,5 @@
V1.2.9
ɾ<><C9BE>SEEKFREE_IPS200_PARALLEL8<4C>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SEEKFREE_IPS200<30><30><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD>е<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
V1.2.8 V1.2.8
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD><EFBFBD>PCLK_MODE<44><45>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>λ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD><EFBFBD>PCLK_MODE<44><45>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>λ

View File

@@ -61,7 +61,7 @@
#include "SEEKFREE_MMA8451.h" #include "SEEKFREE_MMA8451.h"
#include "SEEKFREE_L3G4200D.h" #include "SEEKFREE_L3G4200D.h"
#include "SEEKFREE_WIRELESS.h" #include "SEEKFREE_WIRELESS.h"
#include "SEEKFREE_IPS200_PARALLEL8.h" #include "SEEKFREE_IPS200.h"
#include "SEEKFREE_7725.h" #include "SEEKFREE_7725.h"
#include "SEEKFREE_RDA5807.h" #include "SEEKFREE_RDA5807.h"
#include "SEEKFREE_7725_UART.h" #include "SEEKFREE_7725_UART.h"

View File

@@ -24,7 +24,7 @@
#include "IfxQspi.h" #include "IfxQspi.h"
#include "zf_assert.h" #include "zf_assert.h"
#include "zf_spi.h" #include "zf_spi.h"
#include "zf_gpio.h"
#define MAX_BAUD 50000000 #define MAX_BAUD 50000000
@@ -183,7 +183,62 @@ void spi_mux(SPIN_enum spi_n, SPI_PIN_enum sck_pin, SPI_PIN_enum mosi_pin, SPI_P
} }
uint8 get_spi_cs_pin(SPI_PIN_enum cs_pin)
{
if (SPI0_CS0_P20_8 == cs_pin) return gpio_get(P20_8);
else if (SPI0_CS1_P20_9 == cs_pin) return gpio_get(P20_9);
else if (SPI0_CS2_P20_13 == cs_pin) return gpio_get(P20_13);
else if (SPI0_CS3_P11_10 == cs_pin) return gpio_get(P11_10);
else if (SPI0_CS4_P11_11 == cs_pin) return gpio_get(P11_11);
else if (SPI0_CS5_P11_2 == cs_pin) return gpio_get(P11_2);
else if (SPI0_CS6_P20_10 == cs_pin) return gpio_get(P20_10);
else if (SPI0_CS7_P33_5 == cs_pin) return gpio_get(P33_5);
else if (SPI0_CS8_P20_6 == cs_pin) return gpio_get(P20_6);
else if (SPI0_CS9_P20_3 == cs_pin) return gpio_get(P20_3);
else if (SPI0_CS13_P15_0 == cs_pin) return gpio_get(P15_0);
else if (SPI1_CS0_P20_8 == cs_pin) return gpio_get(P20_8);
else if (SPI1_CS1_P20_9 == cs_pin) return gpio_get(P20_9);
else if (SPI1_CS2_P20_13 == cs_pin) return gpio_get(P20_13);
else if (SPI1_CS3_P11_10 == cs_pin) return gpio_get(P11_10);
else if (SPI1_CS4_P11_11 == cs_pin) return gpio_get(P11_11);
else if (SPI1_CS5_P11_2 == cs_pin) return gpio_get(P11_2);
else if (SPI1_CS6_P33_10 == cs_pin) return gpio_get(P33_10);
else if (SPI1_CS7_P33_5 == cs_pin) return gpio_get(P33_5);
else if (SPI1_CS8_P10_4 == cs_pin) return gpio_get(P10_4);
else if (SPI1_CS9_P10_5 == cs_pin) return gpio_get(P10_5);
else if (SPI1_CS10_P10_0 == cs_pin) return gpio_get(P10_0);
else if (SPI2_CS0_P15_2 == cs_pin) return gpio_get(P15_2);
else if (SPI2_CS1_P14_2 == cs_pin) return gpio_get(P14_2);
else if (SPI2_CS2_P14_6 == cs_pin) return gpio_get(P14_6);
else if (SPI2_CS3_P14_3 == cs_pin) return gpio_get(P14_3);
else if (SPI2_CS5_P15_1 == cs_pin) return gpio_get(P15_1);
else if (SPI2_CS6_P33_13 == cs_pin) return gpio_get(P33_13);
else if (SPI2_CS7_P20_10 == cs_pin) return gpio_get(P20_10);
else if (SPI2_CS8_P20_6 == cs_pin) return gpio_get(P20_6);
else if (SPI2_CS9_P20_3 == cs_pin) return gpio_get(P20_3);
else if (SPI3_CS0_P02_4 == cs_pin) return gpio_get(P02_4);
else if (SPI3_CS1_P02_0 == cs_pin) return gpio_get(P02_0);
else if (SPI3_CS1_P33_9 == cs_pin) return gpio_get(P33_9);
else if (SPI3_CS2_P02_1 == cs_pin) return gpio_get(P02_1);
else if (SPI3_CS2_P33_8 == cs_pin) return gpio_get(P33_8);
else if (SPI3_CS3_P02_2 == cs_pin) return gpio_get(P02_2);
else if (SPI3_CS4_P02_3 == cs_pin) return gpio_get(P02_3);
else if (SPI3_CS4_P23_5 == cs_pin) return gpio_get(P23_5);
else if (SPI3_CS5_P02_8 == cs_pin) return gpio_get(P02_8);
else if (SPI3_CS6_P00_8 == cs_pin) return gpio_get(P00_8);
else if (SPI3_CS7_P00_9 == cs_pin) return gpio_get(P00_9);
else if (SPI3_CS7_P33_7 == cs_pin) return gpio_get(P33_7);
else if (SPI3_CS8_P10_5 == cs_pin) return gpio_get(P10_5);
else if (SPI3_CS11_P33_10 == cs_pin) return gpio_get(P33_10);
else if (SPI3_CS12_P22_2 == cs_pin) return gpio_get(P22_2);
else if (SPI3_CS13_P23_1 == cs_pin) return gpio_get(P23_1);
else
{
ZF_ASSERT(FALSE);
return 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>CS<43><53><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>
}
}
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
@@ -335,6 +390,7 @@ void spi_mosi(SPIN_enum spi_n, SPI_PIN_enum cs_pin, uint8 *modata, uint8 *midata
while(moudle->STATUS.B.RXFIFOLEVEL == 0); while(moudle->STATUS.B.RXFIFOLEVEL == 0);
*midata = (uint8)IfxQspi_readReceiveFifo(moudle); *midata = (uint8)IfxQspi_readReceiveFifo(moudle);
} }
while(!get_spi_cs_pin(cs_pin));
} }

View File

@@ -264,7 +264,7 @@ void lcd_init(void)
lcd_writeData(0x05); lcd_writeData(0x05);
lcd_writeIndex(0x29); lcd_writeIndex(0x29);
lcd_clear(WHITE);//ȫ<><C8AB> lcd_clear(RGB565_WHITE);//ȫ<><C8AB>
} }
@@ -550,7 +550,7 @@ void showimage(const unsigned char *p)
{ {
int i,j,k; int i,j,k;
unsigned char picH,picL; unsigned char picH,picL;
lcd_clear(WHITE); //<2F><><EFBFBD><EFBFBD> lcd_clear(RGB565_WHITE); //<2F><><EFBFBD><EFBFBD>
for(k=0;k<4;k++) for(k=0;k<4;k++)
{ {
@@ -716,8 +716,8 @@ void lcd_displayimage7725(uint8 *p, uint16 width, uint16 height)
p++; p++;
for(j=0; j<8; j++) for(j=0; j<8; j++)
{ {
if( (temp<<j)&0x80 ) lcd_writedata_16bit(WHITE); if( (temp<<j)&0x80 ) lcd_writedata_16bit(RGB565_WHITE);
else lcd_writedata_16bit(BLACK); else lcd_writedata_16bit(RGB565_BLACK);
} }
} }
} }

View File

@@ -78,10 +78,10 @@
//<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ
#define TFT_PENCOLOR RED #define TFT_PENCOLOR RGB565_RED
//<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ
#define TFT_BGCOLOR WHITE #define TFT_BGCOLOR RGB565_WHITE

View File

@@ -26,16 +26,16 @@
//-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ---------- //-------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ----------
#define RED 0xF800 //<2F><>ɫ #define RGB565_RED 0xF800 //<2F><>ɫ
#define BLUE 0x001F //<2F><>ɫ #define RGB565_BLUE 0x001F //<2F><>ɫ
#define YELLOW 0xFFE0 //<2F><>ɫ #define RGB565_YELLOW 0xFFE0 //<2F><>ɫ
#define GREEN 0x07E0 //<2F><>ɫ #define RGB565_GREEN 0x07E0 //<2F><>ɫ
#define WHITE 0xFFFF //<2F><>ɫ #define RGB565_WHITE 0xFFFF //<2F><>ɫ
#define BLACK 0x0000 //<2F><>ɫ #define RGB565_BLACK 0x0000 //<2F><>ɫ
#define GRAY 0X8430 //<2F><>ɫ #define RGB565_GRAY 0X8430 //<2F><>ɫ
#define BROWN 0XBC40 //<2F><>ɫ #define RGB565_BROWN 0XBC40 //<2F><>ɫ
#define PURPLE 0XF81F //<2F><>ɫ #define RGB565_PURPLE 0XF81F //<2F><>ɫ
#define PINK 0XFE19 //<2F><>ɫ #define RGB565_PINK 0XFE19 //<2F><>ɫ
extern const uint8 tft_ascii[95][16]; extern const uint8 tft_ascii[95][16];

View File

@@ -726,8 +726,8 @@ void ips114_displayimage7725(uint8 *p, uint16 width, uint16 height)
p++; p++;
for(j=0; j<8; j++) for(j=0; j<8; j++)
{ {
if( (temp<<j)&0x80 ) ips114_writedata_16bit(WHITE); if( (temp<<j)&0x80 ) ips114_writedata_16bit(RGB565_WHITE);
else ips114_writedata_16bit(BLACK); else ips114_writedata_16bit(RGB565_BLACK);
} }
} }
} }

View File

@@ -77,10 +77,10 @@
//<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD>д<EFBFBD>ֱʵ<D6B1><CAB5><EFBFBD>ɫ
#define IPS114_PENCOLOR RED #define IPS114_PENCOLOR RGB565_RED
//<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ //<2F><><EFBFBD><EFBFBD><E5B1B3><EFBFBD><EFBFBD>ɫ
#define IPS114_BGCOLOR WHITE #define IPS114_BGCOLOR RGB565_WHITE

Some files were not shown because too many files have changed in this diff Show More