📄 buxx_adrt.c
字号:
0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF,
0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
};
const UINT16 sl10_w[] = {
0x0006, 0x000A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000,
0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000,
0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF,
0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF,
0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
};
const UINT16 sl10_x[] = {
0x0006, 0x000A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000,
0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF,
0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
};
const UINT16 sl10_y[] = {
0x0006, 0x000A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000,
0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF,
0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF,
0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000,
0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
};
const UINT16 sl10_z[] = {
0x0006, 0x000A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
};
const UINT16 font_sp[] = {
0x0006, 0x000A, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
};
/*
const UINT16 font_colom[] = {
0x0006, 0x000A,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
};
*/
//FONT TABLE
const UINT16 *const fonttable[] = {
font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, //0x00-0x0f
font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, //0x10-0x1f
font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, //0x20-0x2f
n10_0, n10_1, n10_2, n10_3, n10_4, n10_5, n10_6, n10_7, n10_8, n10_9, font_sp, font_sp, font_sp, font_sp, font_sp, font_sp, //0x30-0x3f
font_sp, cl10_A, cl10_B, cl10_C, cl10_D, cl10_E, cl10_F, cl10_G, cl10_H, cl10_I, cl10_J, cl10_K, cl10_L, cl10_M, cl10_N, cl10_O, //0x40-0x4f
cl10_P, cl10_Q, cl10_R, cl10_S, cl10_T, cl10_U, cl10_V, cl10_W, cl10_X, cl10_Y, cl10_Z, font_sp, font_sp, font_sp, font_sp, font_sp, //0x50-0x5f
font_sp, sl10_a, sl10_b, sl10_c, sl10_d, sl10_e, sl10_f, sl10_g, sl10_h, sl10_i, sl10_j, sl10_k, sl10_l, sl10_m, sl10_n, sl10_o, //0x60-0x6f
sl10_p, sl10_q, sl10_r, sl10_s, sl10_t, sl10_u, sl10_v, sl10_w, sl10_x, sl10_y, sl10_z, font_sp, font_sp, font_sp, font_sp, font_sp, //0x70-0x7f
};
#endif
/* ************************************************** */
/* GLOBAL FUNCTIONS */
/* ************************************************** */
/* ************************************************** */
/* LOCAL FUNCTIONS */
/* ************************************************** */
//-----------------------------------------------------------------------------
// lcd display clear (LCD direct write)
//-----------------------------------------------------------------------------
void aDRT_clear(const UINT16 st_x, const UINT16 st_y, const UINT16 xsize,
const UINT16 ysize, const UINT32 back_color)
{
UINT16 /*UINT8 */ mcdata[] =
{
M_CMD_DATA1, M_CMD_DATA2, M_CMD_DATA3, M_CMD_DATA4, M_CMD_DATA5,
M_CMD_DATA6, M_CMD_DATA7};
UINT16 /*UINT8 */ scdata[] =
{
S_CMD_DATA1, S_CMD_DATA2, S_CMD_DATA3, S_CMD_DATA4, S_CMD_DATA5,
S_CMD_DATA6, S_CMD_DATA7};
int i, wcnt, write_count;
UINT16 color_data;
UINT16 colortype;
aDSC_Quit_Preview();
//A setup of a LCD indication area
column_page_set(st_x, st_x + xsize - 1, st_y, st_y + ysize - 1);
// Main or Sub LCD setup (write area)
if (bit_read(LCDCNT, bLCD_SEL) == sMAIN_ACS)
{
for (i = 0; i < M_EXCMD; i++)
{
*LCD_CMD_WRITE = mcdata[i];
}
colortype = M_LCD_CTYPE;
}
else
{
for (i = 0; i < S_EXCMD; i++)
{
*LCD_CMD_WRITE = scdata[i];
}
colortype = S_LCD_CTYPE;
}
//data write
switch (colortype)
{
case sC444B8A2:
write_count = xsize * ysize;
for (wcnt = 0; wcnt < write_count; wcnt++)
{
*LCD_PDAT_WRITE = ((back_color & 0xf00000) >> 16) | ((back_color & 0x00f000) >> 12); //RGB Data are written
*LCD_PDAT_WRITE = back_color & 0x0000f0;
}
break;
case sC444B8A2B:
write_count = xsize * ysize;
for (wcnt = 0; wcnt < write_count; wcnt++)
{
*LCD_PDAT_WRITE = (back_color & 0xf00000) >> 20; //RGB Data are written
*LCD_PDAT_WRITE =
((back_color & 0x00f000) >> 8) | ((back_color & 0x0000f0)
>> 4);
}
break;
case sC444B8A15:
write_count = xsize * ysize / 2;
for (wcnt = 0; wcnt < write_count; wcnt++)
{
*LCD_PDAT_WRITE = ((back_color & 0xf00000) >> 16) | ((back_color & 0x00f000) >> 12); //RGB Data are written
*LCD_PDAT_WRITE =
(back_color & 0xf0) | ((back_color & 0xf00000) >> 20);
*LCD_PDAT_WRITE =
((back_color & 0x00f000) >> 8) | ((back_color & 0xf0) >>
4);
}
break;
case sC565B16A1:
write_count = xsize * ysize;
color_data = ((back_color & 0xf80000) >> 8) | ((back_color & 0x00fc00) >> 5) | ((back_color & 0x0000f8) >> 3); //RGB Data are written
for (wcnt = 0; wcnt < write_count; wcnt++)
{
*LCD_PDAT_WRITE = color_data;
}
break;
case sC565B8A2:
write_count = xsize * ysize;
for (wcnt = 0; wcnt < write_count; wcnt++)
{
*LCD_PDAT_WRITE = ((back_color & 0xf80000) >> 16) | (back_color & 0x00e000) >> 13; //RGB Data are written
*LCD_PDAT_WRITE =
((back_color & 0x001c00) >> 5) | (back_color & 0x0000f8) >>
3;
}
break;
case sC666B8A3:
write_count = xsize * ysize;
for (wcnt = 0; wcnt < write_count; wcnt++)
{
*LCD_PDAT_WRITE = (back_color & 0xfc0000) >> 16; //RGB Data are written
*LCD_PDAT_WRITE = (back_color & 0x00fc00) >> 8;
*LCD_PDAT_WRITE = back_color & 0x0000fc;
}
break;
case sC666B8A3B:
write_count = xsize * ysize;
for (wcnt = 0; wcnt < write_count; wcnt++)
{
*LCD_PDAT_WRITE = ((back_color & 0xfc0000) >> 16) | ((back_color & 0x00c000) >> 14); //RGB Data are written
*LCD_PDAT_WRITE =
(back_color & 0x003c00) >> 6 | ((back_color & 0x0000f0) >>
4);
*LCD_PDAT_WRITE = (back_color & 0x00000c) << 4;
}
break;
#if defined sC666B9a2
case sC666B9A2:
write_count = xsize * ysize;
for (wcnt = 0; wcnt < write_count; wcnt++)
{
*LCD_PDAT_WRITE = ((back_color & 0xfc0000) >> 15) | (back_color & 0x00e000) >> 13; //RGB Data are written
*LCD_PDAT_WRITE =
((back_color & 0x001c00) >> 4) | (back_color & 0x0000fc) >>
2;
}
break;
#endif
}
if (bit_read(LCDCNT, bLCD_SEL) == sMAIN_ACS)
{
column_page_set(0, M_LCD_WSIZE - 1, 0, M_LCD_HSIZE - 1);
}
else
{
column_page_set(0, S_LCD_WSIZE - 1, 0, S_LCD_HSIZE - 1);
}
}
//-----------------------------------------------------------------------------
// rgb565 data write (LCD direct write)
//-----------------------------------------------------------------------------
void aDRT_write_rgb565(const UINT16 * rgb_data, const UINT16 st_x,
const UINT16 st_y)
{
UINT16 /*UINT8 */ mcdata[] =
{
M_CMD_DATA1, M_CMD_DATA2, M_CMD_DATA3, M_CMD_DATA4, M_CMD_DATA5,
M_CMD_DATA6, M_CMD_DATA7};
UINT16 /*UINT8 */ scdata[] =
{
S_CMD_DATA1, S_CMD_DATA2, S_CMD_DATA3, S_CMD_DATA4, S_CMD_DATA5,
S_CMD_DATA6, S_CMD_DATA7};
int i, wcnt, write_count;
UINT16 temp;
UINT16 colortype;
UINT16 xsize, ysize;
xsize = *rgb_data;
rgb_data++;
ysize = *rgb_data;
rgb_data++;
aDSC_Quit_Preview();
// Main or Sub LCD setup (write area)
column_page_set(st_x, st_x + xsize - 1, st_y, st_y + ysize - 1);
if (bit_read(LCDCNT, bLCD_SEL) == sMAIN_ACS)
{
for (i = 0; i < M_EXCMD; i++)
{
*LCD_CMD_WRITE = mcdata[i];
}
colortype = M_LCD_CTYPE;
}
else
{
for (i = 0; i < S_EXCMD; i++)
{
*LCD_CMD_WRITE = scdata[i];
}
colortype = S_LCD_CTYPE;
}
//data write
switch (colortype)
{
case sC444B8A2:
write_count = xsize * ysize;
for (wcnt = 0; wcnt < write_count; wcnt++)
{
*LCD_PDAT_WRITE = (*rgb_data & 0xf000) >> 8 | (*rgb_data & 0x0780) >> 7; //RGB Data are written
*LCD_PDAT_WRITE = (*rgb_data & 0x001e) << 3;
rgb_data++;
}
break;
case sC444B8A2B:
write_count = xsize * ysize;
for (wcnt = 0; wcnt < write_count; wcnt++)
{
*LCD_PDAT_WRITE = (*rgb_data & 0xf000) >> 12; //RGB Data are written
*LCD_PDAT_WRITE =
(*rgb_data & 0x0780) >> 3 | (*rgb_data & 0x001e) >> 1;
rgb_data++;
}
break;
case sC444B8A15:
write_count = xsize * ysize / 2;
for (wcnt = 0; wcnt < write_count; wcnt++)
{
*LCD_PDAT_WRITE = ((*rgb_data & 0xf000) >> 8) | ((*rgb_data & 0x0780) >> 7); //RGB Data are written
temp = (*rgb_data & 0x001e) << 3;
rgb_data++;
*LCD_PDAT_WRITE = temp | ((*rgb_data & 0xf000) >> 12);
*LCD_PDAT_WRITE =
((*rgb_data & 0x0780) >> 3) | ((*rgb_data & 0x001e) >> 1);
rgb_data++;
}
break;
case sC565B16A1:
write_count = xsize * ysize;
for (wcnt = 0; wcnt < write_count; wcnt++)
{
*LCD_PDAT_WRITE = *rgb_data; //RGB Data are written
rgb_data++;
}
break;
case sC565B8A2:
write_count = xsize * ysize;
for (wcnt = 0; wcnt < write_count; wcnt++)
{
*LCD_PDAT_WRITE = (*rgb_data & 0xff00) >> 8; //RGB Data are written
*LCD_PDAT_WRITE = *rgb_data & 0x00ff;
rgb_data++;
}
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -