⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 displaydrv.c

📁 logic display driver
💻 C
📖 第 1 页 / 共 4 页
字号:
/*
@internal
@file	 LCD.c
Author: xieqin
Date: 2006-08-03
Dsc: Hitachi LCD Driver
-------------------------------------------------------------------------*/

#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <stdarg.h>
#include <stdio.h>

#include "system.h"


static void DisplayDrvPlot8( OSFPos current, OSFPos* pCenter , UINT32 frameColor , UINT32 fillColor,  DisplayDef * DispDrv );
/**************************************Bitmap Driver ***************************************************************/

static BMP_BIN_INFO *pBmpInfo;
static UINT32 BMPNums = 0;
/*------------------------------------------------------------------------*/
/*
Name:	 BitmapResourceInit
Desc:	 -位图资源初始化
Params:  -
Returns: - 
Caveats: - 
*/
void BitmapResourceInit( void )
{
   BMPNums = * ( ( volatile UINT32 * )BMP_SOURCE_INFO_START_ADD );
   pBmpInfo = ( BMP_BIN_INFO * )( BMP_SOURCE_INFO_START_ADD + 4 );
}

/*------------------------------------------------------------------------*/
/*
Name:	 BitmapGetNums
Desc:	 -获取位图总数
Params:  -
Returns: - 
Caveats: - 
*/
UINT32 BitmapGetNums( void )
{
   return BMPNums;
}

/*------------------------------------------------------------------------*/
/*
Name:	 BitmapGetNums
Desc:	 -获取位图总数
Params:  -
Returns: - 
Caveats: - 
*/
BMP_BIN_INFO* BitmapGetInfo( void )
{
   return pBmpInfo;
}

/*------------------------------------------------------------------------*/
/*
Name:	 BitmapCreateFromResource
Desc:	 -获取位图资源的信息
Params:  -resourceID:位图的编号
Returns: - 
Caveats: - 
*/
OSFBitmap BitmapCreateFromResource( UINT16 resourceID )
{
   static BOOLEAN bitmapInited = FALSE;
   OSFBitmap tempBitmap = { 0, 0, 0, NULL };
   if( !bitmapInited )
   	{
   	   BitmapResourceInit( );
	   bitmapInited = TRUE;
   	}
   if( resourceID < BitmapGetNums( ) )
   	{
   	  tempBitmap.w = pBmpInfo[ resourceID ].w;
	  tempBitmap.h = pBmpInfo[ resourceID ].h;
	  tempBitmap.bitsPerPixel = pBmpInfo[ resourceID ].bits ;
	  tempBitmap.pixels= ( UINT8* )( pBmpInfo[ resourceID ].offset + BMP_SOURCE_DATA_START_ADD );
   	}
   return tempBitmap;
}


/**************************************Display driver Start***********************************************************/
#define ASCII_FONT_W  8 //( FONT_W / 2 )
#define ASCII_FONT_H  16 //( FONT_H )
#define ASCII_MODE_SIZE ( ( ( ASCII_FONT_W + 7 ) / 8 ) * ASCII_FONT_H )
	
	const UINT8 ASCII_MODE[ ] =
	{
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x01,0x02,0x02,0x02,0x02,0x02,0x3F,0x02,0x02,0x02,0x3A,0x46,0x42,0x45,0x38,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x38,0x10,0x08,0x04,0x02,0x02,0x01,0x01,0x0F,0x01,0x01,0x01,0x01,0x03,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x00,0x00,0x00,0x00,
	
	
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	
	/*--  文字:  !	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x18,0x3C,0x3C,0x3C,0x18,0x18,0x00,0x18,0x18,0x00,0x00,0x00,0x00,
	
	/*--  文字:  "	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x66,0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	
	/*--  文字:  #	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x36,0x36,0x7F,0x36,0x36,0x36,0x7F,0x36,0x36,0x00,0x00,0x00,0x00,
	
	/*--  文字:  $	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x18,0x18,0x3C,0x66,0x60,0x30,0x18,0x0C,0x06,0x66,0x3C,0x18,0x18,0x00,0x00,
	
	/*--  文字:  %	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x70,0xD8,0xDA,0x76,0x0C,0x18,0x30,0x6E,0x5B,0x1B,0x0E,0x00,0x00,0x00,
	
	/*--  文字:  &	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x38,0x6C,0x6C,0x38,0x60,0x6F,0x66,0x66,0x3B,0x00,0x00,0x00,0x00,
	
	/*--  文字:  '	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	
	/*--  文字:  (	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x0C,0x18,0x18,0x30,0x30,0x30,0x30,0x30,0x18,0x18,0x0C,0x00,0x00,
	
	/*--  文字:  )	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x30,0x18,0x18,0x0C,0x0C,0x0C,0x0C,0x0C,0x18,0x18,0x30,0x00,0x00,
	
	/*--  文字:  *	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x00,0x00,0x36,0x1C,0x7F,0x1C,0x36,0x00,0x00,0x00,0x00,0x00,0x00,
	
	/*--  文字:  +	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x7E,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,
	
	/*--  文字:  ,	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0x0C,0x18,0x00,0x00,
	
	/*--  文字:  -	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	
	/*--  文字:  .	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0x00,0x00,0x00,0x00,
	
	/*--  文字:  /	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x06,0x06,0x0C,0x0C,0x18,0x18,0x30,0x30,0x60,0x60,0x00,0x00,0x00,
	
	/*--  文字:  0	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x1E,0x33,0x37,0x37,0x33,0x3B,0x3B,0x33,0x1E,0x00,0x00,0x00,0x00,
	
	/*--  文字:  1	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x0C,0x1C,0x7C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x00,0x00,0x00,0x00,
	
	/*--  文字:  2	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x3C,0x66,0x66,0x06,0x0C,0x18,0x30,0x60,0x7E,0x00,0x00,0x00,0x00,
	
	/*--  文字:  3	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x3C,0x66,0x66,0x06,0x1C,0x06,0x66,0x66,0x3C,0x00,0x00,0x00,0x00,
	
	/*--  文字:  4	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x30,0x30,0x36,0x36,0x36,0x66,0x7F,0x06,0x06,0x00,0x00,0x00,0x00,
	
	/*--  文字:  5	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x60,0x60,0x60,0x7C,0x06,0x06,0x0C,0x78,0x00,0x00,0x00,0x00,
	
	/*--  文字:  6	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x1C,0x18,0x30,0x7C,0x66,0x66,0x66,0x66,0x3C,0x00,0x00,0x00,0x00,
	
	/*--  文字:  7	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x7E,0x06,0x0C,0x0C,0x18,0x18,0x30,0x30,0x30,0x00,0x00,0x00,0x00,
	
	/*--  文字:  8	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x3C,0x66,0x66,0x76,0x3C,0x6E,0x66,0x66,0x3C,0x00,0x00,0x00,0x00,
	
	/*--  文字:  9	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x3C,0x66,0x66,0x66,0x66,0x3E,0x0C,0x18,0x38,0x00,0x00,0x00,0x00,
	
	/*--  文字:  :	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0x00,0x00,0x00,0x1C,0x1C,0x00,0x00,0x00,0x00,
	
	/*--  文字:  ;	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0x00,0x00,0x00,0x1C,0x1C,0x0C,0x18,0x00,0x00,
	
	/*--  文字:  <	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x06,0x0C,0x18,0x30,0x60,0x30,0x18,0x0C,0x06,0x00,0x00,0x00,0x00,
	
	/*--  文字:  =	--*/
	/*--  Fixedsys12;  此字体下对应的点阵为:宽x高=8x16   --*/
	0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -