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

📄 ascii_draw_api.c

📁 MSP430z_f247.rar
💻 C
字号:
/*****************************************************************
*   函数库名称:ASCII图形码绘制API源文件                         *
*   版本:      v0.01                                            *
*   作者:      I ROBOT                                          *
*   创建日期:  Copyright (C) 2008年11月20日                     *
*----------------------------------------------------------------*
*   [支持库]                                                     *
*   支持库名称:                                                 *
*   支持库版本:v0.01                                            *
*   支持库说明:与本文件相应的函数声明                           *
*----------------------------------------------------------------*
*   [版本更新]                                                   *
*   更新:      I ROBOT                                          *
*   更新日期:                                                    *
*   版本:                                                       *
*----------------------------------------------------------------*
*   [版本历史]                                                   *
*        v0.01  创建版本,创建了ASCII图形码绘制API               *
*----------------------------------------------------------------*
*   [使用说明]                                                   *
*            1.直接调用API                                       *
*****************************************************************/

/********************
* 头 文 件 配 置 区 *
********************/
# include "ASCII_Draw_API.h"
/********************
*   系 统 宏 定 义  *
********************/

/*------------------*
*   常 数 宏 定 义  *
*------------------*/

/*------------------*
*   动 作 宏 定 义  *
*------------------*/
                                                             
/********************
*  模块结构体定义区 *
********************/

/********************
*   函 数 声 明 区  *
********************/
void Write_Char(Draw_Info *Queue,UINT8 chCur_ID_Draw,
const UINT8 Word_Table[][5],UINT8 chChar,UINT8 chHead_x,UINT8 chHead_y);

void Write_String(Draw_Info *Queue,UINT8 chCur_ID_Draw,
const UINT8 Word_Table[][5],CHAR *Str,UINT8 chHead_x,UINT8 chHead_y);

void Write_Cn(Draw_Info *Queue,UINT8 chCur_ID_Draw,
const UINT8 *Cn_Word,UINT16 wPos,UINT8 chScreen_x,UINT8 chScreen_y);

void Write_Cn_Str(Draw_Info *Queue,UINT8 chCur_ID_Draw,
const UINT8 *Cn_Word,UINT16 *chPos_Buffer,UINT8 chWord_Num,
UINT8 chScreen_x,UINT8 chScreen_y);
/********************
*   模块函数声明区  *
********************/

/********************
*   模块变量声明区  *
********************/

/********************
*   全局变量声明区  *
********************/

/******************************************************************
*                       函  数  定  义  区                        *
******************************************************************/

/****************************************
*  函数说明: 12864忙状态检测函数       *
*  输入    :无                         *
*  输出    :无                         *
*  调用函数: 无                       *
****************************************/
void Write_Char(Draw_Info *Queue,UINT8 chCur_ID_Draw,
const UINT8 Word_Table[][5],UINT8 chChar,UINT8 chHead_x,UINT8 chHead_y)
{
	UINT8 chWid_Counter = 0,chHig_Counter = 0;
	UINT8 chx_Temp = chHead_x,chy_Temp = chHead_y;
	chChar -= HEAD_PTR_OFFISITE;
	for (chWid_Counter = 0;chWid_Counter < 5;chWid_Counter++)
	{
	  	for (chHig_Counter = 0;chHig_Counter < 8;chHig_Counter++)
		{
		  	if (Word_Table[chChar][chWid_Counter]&BIT(chHig_Counter))
			{
			  	Draw_Dot(Queue,chCur_ID_Draw,chx_Temp,chy_Temp);
			}
			else 
			{
			  	Clear_Dot(Queue,chCur_ID_Draw,chx_Temp,chy_Temp);
			}
			chy_Temp--;
		}
		chy_Temp = chHead_y;
		chx_Temp++;
	}
}

/****************************************
*  函数说明: 12864忙状态检测函数       *
*  输入    :无                         *
*  输出    :无                         *
*  调用函数: 无                       *
****************************************/
void Write_String(Draw_Info *Queue,UINT8 chCur_ID_Draw,
const UINT8 Word_Table[][5],CHAR *Str,UINT8 chHead_x,UINT8 chHead_y)
{
  	UINT8 chCounter = 0;
	for (chCounter = 0;Str[chCounter] != '\0';chCounter++)
	{
	  	Write_Char(Queue,chCur_ID_Draw,Word_Table,
		Str[chCounter],chHead_x,chHead_y);
		chHead_x += 5;
	}
}

/****************************************
*  函数说明: 12864忙状态检测函数       *
*  输入    :无                         *
*  输出    :无                         *
*  调用函数: 无                       *
****************************************/
void Write_Cn(Draw_Info *Queue,UINT8 chCur_ID_Draw,
const UINT8 *Cn_Word,UINT16 wPos,UINT8 chScreen_x,UINT8 chScreen_y)
{
  	UINT8 chx = 0,chy = 0;
	for (chx = 0;chx < 16;chx++)
	{
	  	for (chy = 0;chy < 8;chy++)
		{
		  	if (Cn_Word[wPos]&BIT(chy))
			{
			  	Draw_Dot(Queue,chCur_ID_Draw,
						 chScreen_x+chx,chScreen_y-chy);
			}
			else 
			{
			  	Clear_Dot(Queue,chCur_ID_Draw,
						 chScreen_x+chx,chScreen_y-chy);
			}
		}
		wPos++;
	}
	chScreen_y -= 8;
	for (chx = 0;chx < 16;chx++)
	{
	  	for (chy = 0;chy < 8;chy++)
		{
		  	if (Cn_Word[wPos]&BIT(chy))
			{
			  	Draw_Dot(Queue,chCur_ID_Draw,
						 chScreen_x+chx,chScreen_y-chy);
			}
			else 
			{
			  	Clear_Dot(Queue,chCur_ID_Draw,
						 chScreen_x+chx,chScreen_y-chy);
			}
		}
		wPos++;
	}
}
void Write_Cn_Str(Draw_Info *Queue,UINT8 chCur_ID_Draw,
const UINT8 *Cn_Word,UINT16 *chPos_Buffer,UINT8 chWord_Num,
UINT8 chScreen_x,UINT8 chScreen_y)
{
  UINT8 chCounter = 0;
  UINT8 chTemp_x = chScreen_x;
  UINT8 chTemp_y = chScreen_y;
  for (chCounter = 0;chCounter < chWord_Num;chCounter++)
  {
		Write_Cn(Queue,chCur_ID_Draw,Cn_Word,
				 chPos_Buffer[chCounter],chTemp_x,chTemp_y);
		chTemp_x += 16;
  }
}

⌨️ 快捷键说明

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