📄 ascii_draw_api.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 + -