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 + -
显示快捷键?