bitmap._c
来自「AVR控制12864液晶画圆弧,在AVR单片机的控制下完成圆弧的绘制。」· _C 代码 · 共 115 行
_C
115 行
//*****************************************************************
//本文件实现了显示位图的基本数据结构和加载位图的函数
// ---北京交通大学电气学院 杨罡
//*****************************************************************
#include "bitmap.h"
/* Draws a bitmap into the Framebuffer.
Bitmaps are converted from Windows BMP-Format to
C-Arrays with the fontgen-tool (see files bmp.h/bmp.c) */
void lcd_bitmap( uint8_t left, uint8_t top, const struct IMG_DEF *img_ptr, uint8_t mode)
{ uint8_t width, heigth, h, w, pattern, mask;
uint8_t* ptable;
width = pgm_read_byte( &(img_ptr->width_in_pixels) );
heigth = pgm_read_byte( &(img_ptr->height_in_pixels) );
ptable = (uint8_t*) pgm_read_word( (uint16_t*)(&(img_ptr->char_table)) );
//ptable = (uint8_t*) pgm_read_word( &(img_ptr->char_table) );
for ( h=0; h<heigth; h++ )
{ mask = 0x80;
pattern = pgm_read_byte( ptable );
ptable++;
for ( w=0; w<width; w++ )
{ if ( pattern & mask )
lcd_dot(w+left, h+top, mode);
mask >>= 1;
if ( mask == 0 )
{ mask = 0x80;
pattern = pgm_read_byte( ptable );
ptable++;
}
}
}
}
///////////////////////////////////////////////////
const unsigned char icon1_char_table[] =
{ 0xFF, 0xFF, 0xFF, 0xFC, /* [******************************] */
0x80, 0x00, 0x00, 0x04, /* [* *] */
0x80, 0x00, 0x00, 0x04, /* [* *] */
0x80, 0x00, 0x00, 0xC4, /* [* ** *] */
0x80, 0x00, 0x01, 0x24, /* [* * * *] */
0x8F, 0x02, 0x02, 0x14, /* [* **** * * * *] */
0x89, 0x12, 0x02, 0x14, /* [* * * * * * * *] */
0x8B, 0x07, 0x01, 0x24, /* [* * ** *** * * *] */
0x8F, 0x92, 0x00, 0xC4, /* [* ***** * * ** *] */
0x88, 0xD2, 0x00, 0x04, /* [* * ** * * *] */
0x88, 0x52, 0x00, 0x04, /* [* * * * * *] */
0x8F, 0xD3, 0x80, 0x04, /* [* ****** * *** *] */
0x80, 0x00, 0x00, 0x04, /* [* *] */
0x80, 0x00, 0x00, 0x04, /* [* *] */
0x80, 0x00, 0x00, 0x04, /* [* PROGMEM *] */
0x88, 0x20, 0x00, 0x04, /* [* * * *] */
0x8C, 0x60, 0x00, 0x04, /* [* ** ** *] */
0x8E, 0xE0, 0x00, 0x04, /* [* *** *** *] */
0x8B, 0xA0, 0x00, 0x04, /* [* * *** * *] */
0x89, 0x20, 0x07, 0x04, /* [* * * * *** *] */
0x88, 0x27, 0x8D, 0x84, /* [* * * **** ** ** *] */
0x88, 0x2C, 0x88, 0x84, /* [* * * ** * * * *] */
0x88, 0x28, 0x88, 0x84, /* [* * * * * * * *] */
0x88, 0x2C, 0x8D, 0x84, /* [* * * ** * ** ** *] */
0x88, 0x27, 0xCF, 0x04, /* [* * * ***** **** *] */
0x80, 0x00, 0x08, 0x04, /* [* * *] */
0x80, 0x00, 0x08, 0x04, /* [* * *] */
0x80, 0x00, 0x08, 0x04, /* [* * *] */
0x80, 0x00, 0x00, 0x04, /* [* *] */
0xFF, 0xFF, 0xFF, 0xFC, /* [******************************] */
};
const struct IMG_DEF icon1_bmp = {30, 30, icon1_char_table};
//-----------------------------
const unsigned char frame_char_table[] =
{ 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, /* [ ************************************************************************************************************** ] */
0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, /* [ ** ** ] */
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, /* [ * * ] */
0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, /* [ * * ] */
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* [ * * ] */
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* [ * * ] */
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, /* [* *] */
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x40, /* [* ****** *] */
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x40, /* [* ** ** *] */
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x03, 0x00, 0x40, /* [* ** ** *] */
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x80, 0x40, /* [* * * *] */
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x80, 0x40, /* [* * * *] */
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x40, /* [* * * *] */
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x40, /* [* * * *] */
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x20, 0x40, /* [* * * *] */
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x20, 0x40, /* [* * * *] */
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x20, 0x40, /* [* * * *] */
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x20, 0x40, /* [* * * *] */
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x40, /* [* * * *] */
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x40, /* [* * * *] */
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x80, 0x40, /* [* * * *] */
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x80, 0x40, /* [* * * *] */
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x03, 0x00, 0x40, /* [* ** ** *] */
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x40, /* [* ** ** *] */
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x40, /* [* ****** *] */
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, /* [* *] */
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* [ * * ] */
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* [ * * ] */
0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, /* [ * * ] */
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, /* [ * * ] */
0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, /* [ ** ** ] */
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, /* [ ************************************************************************************************************** ] */
};
const struct IMG_DEF frame_bmp = {122, 32, frame_char_table};
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?