add motor initial testing
This commit is contained in:
parent
fd295ba480
commit
fcb3457c42
18
touchscreengames/Core/Inc/ILI9341_GFX.h
Normal file
18
touchscreengames/Core/Inc/ILI9341_GFX.h
Normal file
@ -0,0 +1,18 @@
|
||||
#ifndef ILI9341_GFX_H
|
||||
#define ILI9341_GFX_H
|
||||
|
||||
#include "stm32f4xx_hal.h"
|
||||
#include "fonts.h"
|
||||
|
||||
#define HORIZONTAL_IMAGE 0
|
||||
#define VERTICAL_IMAGE 1
|
||||
|
||||
void ILI9341_DrawHollowCircle(uint16_t X, uint16_t Y, uint16_t radius, uint16_t color);
|
||||
void ILI9341_DrawFilledCircle(uint16_t X, uint16_t Y, uint16_t radius, uint16_t color);
|
||||
void ILI9341_DrawHollowRectangleCoord(uint16_t X0, uint16_t Y0, uint16_t X1, uint16_t Y1, uint16_t color);
|
||||
void ILI9341_DrawFilledRectangleCoord(uint16_t X0, uint16_t Y0, uint16_t X1, uint16_t Y1, uint16_t color);
|
||||
void ILI9341_DrawChar(char ch, const uint8_t font[], uint16_t X, uint16_t Y, uint16_t color, uint16_t bgcolor);
|
||||
void ILI9341_DrawText(const char* str, const uint8_t font[], uint16_t X, uint16_t Y, uint16_t color, uint16_t bgcolor);
|
||||
void ILI9341_DrawImage(const uint8_t* image, uint8_t orientation);
|
||||
|
||||
#endif
|
||||
61
touchscreengames/Core/Inc/ILI9341_STM32_Driver.h
Normal file
61
touchscreengames/Core/Inc/ILI9341_STM32_Driver.h
Normal file
@ -0,0 +1,61 @@
|
||||
#ifndef ILI9341_STM32_DRIVER_H
|
||||
#define ILI9341_STM32_DRIVER_H
|
||||
|
||||
#include "stm32f4xx_hal.h"
|
||||
|
||||
extern SPI_HandleTypeDef hspi1;
|
||||
|
||||
#define ILI9341_SCREEN_HEIGHT 240
|
||||
#define ILI9341_SCREEN_WIDTH 320
|
||||
|
||||
/* PIN Configuration */
|
||||
#define HSPI_INSTANCE &hspi1 //&hspi1
|
||||
#define LCD_CS_PORT GPIOA
|
||||
#define LCD_CS_PIN GPIO_PIN_4
|
||||
#define LCD_DC_PORT GPIOB
|
||||
#define LCD_DC_PIN GPIO_PIN_2
|
||||
#define LCD_RST_PORT GPIOA
|
||||
#define LCD_RST_PIN GPIO_PIN_10
|
||||
|
||||
#define BURST_MAX_SIZE 500
|
||||
#define BLACK 0x0000
|
||||
#define NAVY 0x000F
|
||||
#define DARKGREEN 0x03E0
|
||||
#define DARKCYAN 0x03EF
|
||||
#define MAROON 0x7800
|
||||
#define PURPLE 0x780F
|
||||
#define OLIVE 0x7BE0
|
||||
#define LIGHTGREY 0xC618
|
||||
#define DARKGREY 0x7BEF
|
||||
#define BLUE 0x001F
|
||||
#define GREEN 0x07E0
|
||||
#define CYAN 0x07FF
|
||||
#define RED 0xF800
|
||||
#define MAGENTA 0xF81F
|
||||
#define YELLOW 0xFFE0
|
||||
#define WHITE 0xFFFF
|
||||
#define ORANGE 0xFD20
|
||||
#define GREENYELLOW 0xAFE5
|
||||
#define PINK 0xF81F
|
||||
|
||||
#define SCREEN_VERTICAL_1 0
|
||||
#define SCREEN_HORIZONTAL_1 1
|
||||
#define SCREEN_VERTICAL_2 2
|
||||
#define SCREEN_HORIZONTAL_2 3
|
||||
|
||||
void ILI9341_WriteCommand(uint8_t cmd);
|
||||
void ILI9341_WriteData(uint8_t data);
|
||||
void ILI9341_WriteBuffer(uint8_t *buffer, uint16_t len);
|
||||
void ILI9341_Reset(void);
|
||||
void ILI9341_Enable(void);
|
||||
void ILI9341_Init(void);
|
||||
void ILI9341_SetRotation(uint8_t rotation);
|
||||
void ILI9341_SetAddress(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);
|
||||
void ILI9341_DrawColor(uint16_t color);
|
||||
void ILI9341_DrawColorBurst(uint16_t color, uint32_t size);
|
||||
void ILI9341_FillScreen(uint16_t color);
|
||||
void ILI9341_DrawPixel(uint16_t x,uint16_t y,uint16_t color);
|
||||
void ILI9341_DrawRectangle(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t color);
|
||||
void ILI9341_DrawHLine(uint16_t x, uint16_t y, uint16_t width, uint16_t color);
|
||||
void ILI9341_DrawVLine(uint16_t x, uint16_t y, uint16_t height, uint16_t color);
|
||||
#endif
|
||||
16
touchscreengames/Core/Inc/fonts.h
Normal file
16
touchscreengames/Core/Inc/fonts.h
Normal file
@ -0,0 +1,16 @@
|
||||
#ifndef __FONTS_H__
|
||||
#define __FONTS_H__
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#define FONT1 Arial_Narrow8x12
|
||||
#define FONT2 Arial_Narrow10x13
|
||||
#define FONT3 Arial_Narrow12x16
|
||||
#define FONT4 Arial_Narrow15x19
|
||||
|
||||
extern const uint8_t Arial_Narrow8x12[];
|
||||
extern const uint8_t Arial_Narrow10x13[];
|
||||
extern const uint8_t Arial_Narrow12x16[];
|
||||
extern const uint8_t Arial_Narrow15x19[];
|
||||
|
||||
#endif // __FONTS_H__
|
||||
79
touchscreengames/Core/Inc/main.h
Normal file
79
touchscreengames/Core/Inc/main.h
Normal file
@ -0,0 +1,79 @@
|
||||
/* USER CODE BEGIN Header */
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file : main.h
|
||||
* @brief : Header for main.c file.
|
||||
* This file contains the common defines of the application.
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2025 STMicroelectronics.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef __MAIN_H
|
||||
#define __MAIN_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "stm32f4xx_hal.h"
|
||||
|
||||
/* Private includes ----------------------------------------------------------*/
|
||||
/* USER CODE BEGIN Includes */
|
||||
|
||||
/* USER CODE END Includes */
|
||||
|
||||
/* Exported types ------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN ET */
|
||||
|
||||
/* USER CODE END ET */
|
||||
|
||||
/* Exported constants --------------------------------------------------------*/
|
||||
/* USER CODE BEGIN EC */
|
||||
|
||||
/* USER CODE END EC */
|
||||
|
||||
/* Exported macro ------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN EM */
|
||||
|
||||
/* USER CODE END EM */
|
||||
|
||||
void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
|
||||
|
||||
/* Exported functions prototypes ---------------------------------------------*/
|
||||
void Error_Handler(void);
|
||||
|
||||
/* USER CODE BEGIN EFP */
|
||||
|
||||
/* USER CODE END EFP */
|
||||
|
||||
/* Private defines -----------------------------------------------------------*/
|
||||
#define LED_BLUE_Pin GPIO_PIN_13
|
||||
#define LED_BLUE_GPIO_Port GPIOC
|
||||
#define DISPLAY_CS_Pin GPIO_PIN_4
|
||||
#define DISPLAY_CS_GPIO_Port GPIOA
|
||||
#define DISPLAY_DC_Pin GPIO_PIN_2
|
||||
#define DISPLAY_DC_GPIO_Port GPIOB
|
||||
#define DISPLAY_RES_Pin GPIO_PIN_10
|
||||
#define DISPLAY_RES_GPIO_Port GPIOA
|
||||
|
||||
/* USER CODE BEGIN Private defines */
|
||||
|
||||
/* USER CODE END Private defines */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __MAIN_H */
|
||||
68
touchscreengames/Core/Inc/stm32f4xx_it.h
Normal file
68
touchscreengames/Core/Inc/stm32f4xx_it.h
Normal file
@ -0,0 +1,68 @@
|
||||
/* USER CODE BEGIN Header */
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file stm32f4xx_it.h
|
||||
* @brief This file contains the headers of the interrupt handlers.
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2025 STMicroelectronics.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef __STM32F4xx_IT_H
|
||||
#define __STM32F4xx_IT_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Private includes ----------------------------------------------------------*/
|
||||
/* USER CODE BEGIN Includes */
|
||||
|
||||
/* USER CODE END Includes */
|
||||
|
||||
/* Exported types ------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN ET */
|
||||
|
||||
/* USER CODE END ET */
|
||||
|
||||
/* Exported constants --------------------------------------------------------*/
|
||||
/* USER CODE BEGIN EC */
|
||||
|
||||
/* USER CODE END EC */
|
||||
|
||||
/* Exported macro ------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN EM */
|
||||
|
||||
/* USER CODE END EM */
|
||||
|
||||
/* Exported functions prototypes ---------------------------------------------*/
|
||||
void NMI_Handler(void);
|
||||
void HardFault_Handler(void);
|
||||
void MemManage_Handler(void);
|
||||
void BusFault_Handler(void);
|
||||
void UsageFault_Handler(void);
|
||||
void DebugMon_Handler(void);
|
||||
void TIM3_IRQHandler(void);
|
||||
void SPI1_IRQHandler(void);
|
||||
void DMA2_Stream0_IRQHandler(void);
|
||||
void DMA2_Stream3_IRQHandler(void);
|
||||
void USART6_IRQHandler(void);
|
||||
/* USER CODE BEGIN EFP */
|
||||
|
||||
/* USER CODE END EFP */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __STM32F4xx_IT_H */
|
||||
261
touchscreengames/Core/Src/ILI9341_GFX.c
Normal file
261
touchscreengames/Core/Src/ILI9341_GFX.c
Normal file
@ -0,0 +1,261 @@
|
||||
#include "ILI9341_STM32_Driver.h"
|
||||
#include "ILI9341_GFX.h"
|
||||
|
||||
/* imprecise small delay */
|
||||
__STATIC_INLINE void DelayUs(volatile uint32_t us)
|
||||
{
|
||||
us *= (SystemCoreClock / 1000000);
|
||||
while (us--);
|
||||
}
|
||||
|
||||
void ILI9341_DrawHollowCircle(uint16_t X, uint16_t Y, uint16_t radius, uint16_t color)
|
||||
{
|
||||
int x = radius-1;
|
||||
int y = 0;
|
||||
int dx = 1;
|
||||
int dy = 1;
|
||||
int err = dx - (radius << 1);
|
||||
|
||||
while (x >= y)
|
||||
{
|
||||
ILI9341_DrawPixel(X + x, Y + y, color);
|
||||
ILI9341_DrawPixel(X + y, Y + x, color);
|
||||
ILI9341_DrawPixel(X - y, Y + x, color);
|
||||
ILI9341_DrawPixel(X - x, Y + y, color);
|
||||
ILI9341_DrawPixel(X - x, Y - y, color);
|
||||
ILI9341_DrawPixel(X - y, Y - x, color);
|
||||
ILI9341_DrawPixel(X + y, Y - x, color);
|
||||
ILI9341_DrawPixel(X + x, Y - y, color);
|
||||
|
||||
if (err <= 0)
|
||||
{
|
||||
y++;
|
||||
err += dy;
|
||||
dy += 2;
|
||||
}
|
||||
|
||||
if (err > 0)
|
||||
{
|
||||
x--;
|
||||
dx += 2;
|
||||
err += (-radius << 1) + dx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ILI9341_DrawFilledCircle(uint16_t X, uint16_t Y, uint16_t radius, uint16_t color)
|
||||
{
|
||||
|
||||
int x = radius;
|
||||
int y = 0;
|
||||
int xChange = 1 - (radius << 1);
|
||||
int yChange = 0;
|
||||
int radiusError = 0;
|
||||
|
||||
while (x >= y)
|
||||
{
|
||||
for (int i = X - x; i <= X + x; i++)
|
||||
{
|
||||
ILI9341_DrawPixel(i, Y + y,color);
|
||||
ILI9341_DrawPixel(i, Y - y,color);
|
||||
}
|
||||
|
||||
for (int i = X - y; i <= X + y; i++)
|
||||
{
|
||||
ILI9341_DrawPixel(i, Y + x,color);
|
||||
ILI9341_DrawPixel(i, Y - x,color);
|
||||
}
|
||||
|
||||
y++;
|
||||
radiusError += yChange;
|
||||
yChange += 2;
|
||||
|
||||
if (((radiusError << 1) + xChange) > 0)
|
||||
{
|
||||
x--;
|
||||
radiusError += xChange;
|
||||
xChange += 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ILI9341_DrawHollowRectangleCoord(uint16_t X0, uint16_t Y0, uint16_t X1, uint16_t Y1, uint16_t color)
|
||||
{
|
||||
uint16_t xLen = 0;
|
||||
uint16_t yLen = 0;
|
||||
uint8_t negX = 0;
|
||||
uint8_t negY = 0;
|
||||
float negCalc = 0;
|
||||
|
||||
negCalc = X1 - X0;
|
||||
if(negCalc < 0) negX = 1;
|
||||
negCalc = 0;
|
||||
|
||||
negCalc = Y1 - Y0;
|
||||
if(negCalc < 0) negY = 1;
|
||||
|
||||
//DRAW HORIZONTAL!
|
||||
if(!negX)
|
||||
{
|
||||
xLen = X1 - X0;
|
||||
}
|
||||
else
|
||||
{
|
||||
xLen = X0 - X1;
|
||||
}
|
||||
ILI9341_DrawHLine(X0, Y0, xLen, color);
|
||||
ILI9341_DrawHLine(X0, Y1, xLen, color);
|
||||
|
||||
//DRAW VERTICAL!
|
||||
if(!negY)
|
||||
{
|
||||
yLen = Y1 - Y0;
|
||||
}
|
||||
else
|
||||
{
|
||||
yLen = Y0 - Y1;
|
||||
}
|
||||
|
||||
ILI9341_DrawVLine(X0, Y0, yLen, color);
|
||||
ILI9341_DrawVLine(X1, Y0, yLen, color);
|
||||
|
||||
if((xLen > 0)||(yLen > 0))
|
||||
{
|
||||
ILI9341_DrawPixel(X1, Y1, color);
|
||||
}
|
||||
}
|
||||
|
||||
void ILI9341_DrawFilledRectangleCoord(uint16_t X0, uint16_t Y0, uint16_t X1, uint16_t Y1, uint16_t color)
|
||||
{
|
||||
uint16_t xLen = 0;
|
||||
uint16_t yLen = 0;
|
||||
uint8_t negX = 0;
|
||||
uint8_t negY = 0;
|
||||
int32_t negCalc = 0;
|
||||
uint16_t X0True = 0;
|
||||
uint16_t Y0True = 0;
|
||||
|
||||
negCalc = X1 - X0;
|
||||
if(negCalc < 0) negX = 1;
|
||||
negCalc = 0;
|
||||
|
||||
negCalc = Y1 - Y0;
|
||||
if(negCalc < 0) negY = 1;
|
||||
|
||||
if(!negX)
|
||||
{
|
||||
xLen = X1 - X0;
|
||||
X0True = X0;
|
||||
}
|
||||
else
|
||||
{
|
||||
xLen = X0 - X1;
|
||||
X0True = X1;
|
||||
}
|
||||
|
||||
if(!negY)
|
||||
{
|
||||
yLen = Y1 - Y0;
|
||||
Y0True = Y0;
|
||||
}
|
||||
else
|
||||
{
|
||||
yLen = Y0 - Y1;
|
||||
Y0True = Y1;
|
||||
}
|
||||
|
||||
ILI9341_DrawRectangle(X0True, Y0True, xLen, yLen, color);
|
||||
}
|
||||
|
||||
void ILI9341_DrawChar(char ch, const uint8_t font[], uint16_t X, uint16_t Y, uint16_t color, uint16_t bgcolor)
|
||||
{
|
||||
if ((ch < 31) || (ch > 127)) return;
|
||||
|
||||
uint8_t fOffset, fWidth, fHeight, fBPL;
|
||||
uint8_t *tempChar;
|
||||
|
||||
fOffset = font[0];
|
||||
fWidth = font[1];
|
||||
fHeight = font[2];
|
||||
fBPL = font[3];
|
||||
|
||||
tempChar = (uint8_t*)&font[((ch - 0x20) * fOffset) + 4]; /* Current Character = Meta + (Character Index * Offset) */
|
||||
|
||||
/* Clear background first */
|
||||
ILI9341_DrawRectangle(X, Y, fWidth, fHeight, bgcolor);
|
||||
|
||||
for (int j=0; j < fHeight; j++)
|
||||
{
|
||||
for (int i=0; i < fWidth; i++)
|
||||
{
|
||||
uint8_t z = tempChar[fBPL * i + ((j & 0xF8) >> 3) + 1]; /* (j & 0xF8) >> 3, increase one by 8-bits */
|
||||
uint8_t b = 1 << (j & 0x07);
|
||||
if (( z & b ) != 0x00)
|
||||
{
|
||||
ILI9341_DrawPixel(X+i, Y+j, color);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ILI9341_DrawText(const char* str, const uint8_t font[], uint16_t X, uint16_t Y, uint16_t color, uint16_t bgcolor)
|
||||
{
|
||||
uint8_t charWidth; /* Width of character */
|
||||
uint8_t fOffset = font[0]; /* Offset of character */
|
||||
uint8_t fWidth = font[1]; /* Width of font */
|
||||
|
||||
while (*str)
|
||||
{
|
||||
ILI9341_DrawChar(*str, font, X, Y, color, bgcolor);
|
||||
|
||||
/* Check character width and calculate proper position */
|
||||
uint8_t *tempChar = (uint8_t*)&font[((*str - 0x20) * fOffset) + 4];
|
||||
charWidth = tempChar[0];
|
||||
|
||||
if(charWidth + 2 < fWidth)
|
||||
{
|
||||
/* If character width is smaller than font width */
|
||||
X += (charWidth + 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
X += fWidth;
|
||||
}
|
||||
|
||||
str++;
|
||||
}
|
||||
}
|
||||
|
||||
void ILI9341_DrawImage(const uint8_t* image, uint8_t orientation)
|
||||
{
|
||||
if(orientation == SCREEN_HORIZONTAL_1)
|
||||
{
|
||||
ILI9341_SetRotation(SCREEN_HORIZONTAL_1);
|
||||
ILI9341_SetAddress(0,0,ILI9341_SCREEN_WIDTH,ILI9341_SCREEN_HEIGHT);
|
||||
}
|
||||
else if(orientation == SCREEN_HORIZONTAL_2)
|
||||
{
|
||||
ILI9341_SetRotation(SCREEN_HORIZONTAL_2);
|
||||
ILI9341_SetAddress(0,0,ILI9341_SCREEN_WIDTH,ILI9341_SCREEN_HEIGHT);
|
||||
}
|
||||
else if(orientation == SCREEN_VERTICAL_2)
|
||||
{
|
||||
ILI9341_SetRotation(SCREEN_VERTICAL_2);
|
||||
ILI9341_SetAddress(0,0,ILI9341_SCREEN_HEIGHT,ILI9341_SCREEN_WIDTH);
|
||||
}
|
||||
else if(orientation == SCREEN_VERTICAL_1)
|
||||
{
|
||||
ILI9341_SetRotation(SCREEN_VERTICAL_1);
|
||||
ILI9341_SetAddress(0,0,ILI9341_SCREEN_HEIGHT,ILI9341_SCREEN_WIDTH);
|
||||
}
|
||||
|
||||
uint32_t counter = 0;
|
||||
for(uint32_t i = 0; i < ILI9341_SCREEN_WIDTH*ILI9341_SCREEN_HEIGHT*2/BURST_MAX_SIZE; i++)
|
||||
{
|
||||
ILI9341_WriteBuffer((uint8_t*)(image + counter), BURST_MAX_SIZE);
|
||||
counter += BURST_MAX_SIZE;
|
||||
|
||||
/* DMA Tx is too fast, It needs some delay */
|
||||
DelayUs(1);
|
||||
}
|
||||
}
|
||||
371
touchscreengames/Core/Src/ILI9341_STM32_Driver.c
Normal file
371
touchscreengames/Core/Src/ILI9341_STM32_Driver.c
Normal file
@ -0,0 +1,371 @@
|
||||
#include "ILI9341_STM32_Driver.h"
|
||||
|
||||
volatile uint16_t LCD_HEIGHT = ILI9341_SCREEN_HEIGHT;
|
||||
volatile uint16_t LCD_WIDTH = ILI9341_SCREEN_WIDTH;
|
||||
|
||||
void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi)
|
||||
{
|
||||
/* Deselect when Tx Complete */
|
||||
if(hspi == HSPI_INSTANCE)
|
||||
{
|
||||
HAL_GPIO_WritePin(LCD_CS_PORT, LCD_CS_PIN, GPIO_PIN_SET);
|
||||
}
|
||||
}
|
||||
|
||||
static void ILI9341_SPI_Tx(uint8_t data)
|
||||
{
|
||||
while(!__HAL_SPI_GET_FLAG(HSPI_INSTANCE, SPI_FLAG_TXE));
|
||||
HAL_SPI_Transmit_DMA(HSPI_INSTANCE, &data, 1);
|
||||
//HAL_SPI_Transmit(HSPI_INSTANCE, &data, 1, 10);
|
||||
}
|
||||
|
||||
static void ILI9341_SPI_TxBuffer(uint8_t *buffer, uint16_t len)
|
||||
{
|
||||
while(!__HAL_SPI_GET_FLAG(HSPI_INSTANCE, SPI_FLAG_TXE));
|
||||
HAL_SPI_Transmit_DMA(HSPI_INSTANCE, buffer, len);
|
||||
//HAL_SPI_Transmit(HSPI_INSTANCE, buffer, len, 10);
|
||||
}
|
||||
|
||||
void ILI9341_WriteCommand(uint8_t cmd)
|
||||
{
|
||||
HAL_GPIO_WritePin(LCD_DC_PORT, LCD_DC_PIN, GPIO_PIN_RESET); //command
|
||||
HAL_GPIO_WritePin(LCD_CS_PORT, LCD_CS_PIN, GPIO_PIN_RESET); //select
|
||||
ILI9341_SPI_Tx(cmd);
|
||||
//HAL_GPIO_WritePin(LCD_CS_PORT, LCD_CS_PIN, GPIO_PIN_SET); //deselect
|
||||
}
|
||||
|
||||
void ILI9341_WriteData(uint8_t data)
|
||||
{
|
||||
HAL_GPIO_WritePin(LCD_DC_PORT, LCD_DC_PIN, GPIO_PIN_SET); //data
|
||||
HAL_GPIO_WritePin(LCD_CS_PORT, LCD_CS_PIN, GPIO_PIN_RESET); //select
|
||||
ILI9341_SPI_Tx(data);
|
||||
//HAL_GPIO_WritePin(LCD_CS_PORT, LCD_CS_PIN, GPIO_PIN_SET); //deselect
|
||||
}
|
||||
|
||||
void ILI9341_WriteBuffer(uint8_t *buffer, uint16_t len)
|
||||
{
|
||||
HAL_GPIO_WritePin(LCD_DC_PORT, LCD_DC_PIN, GPIO_PIN_SET); //data
|
||||
HAL_GPIO_WritePin(LCD_CS_PORT, LCD_CS_PIN, GPIO_PIN_RESET); //select
|
||||
ILI9341_SPI_TxBuffer(buffer, len);
|
||||
//HAL_GPIO_WritePin(LCD_CS_PORT, LCD_CS_PIN, GPIO_PIN_SET); //deselect
|
||||
}
|
||||
|
||||
void ILI9341_SetAddress(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2)
|
||||
{
|
||||
uint8_t buffer[4];
|
||||
buffer[0] = x1 >> 8;
|
||||
buffer[1] = x1;
|
||||
buffer[2] = x2 >> 8;
|
||||
buffer[3] = x2;
|
||||
|
||||
ILI9341_WriteCommand(0x2A);
|
||||
ILI9341_WriteBuffer(buffer, sizeof(buffer));
|
||||
|
||||
buffer[0] = y1 >> 8;
|
||||
buffer[1] = y1;
|
||||
buffer[2] = y2 >> 8;
|
||||
buffer[3] = y2;
|
||||
|
||||
ILI9341_WriteCommand(0x2B);
|
||||
ILI9341_WriteBuffer(buffer, sizeof(buffer));
|
||||
|
||||
ILI9341_WriteCommand(0x2C);
|
||||
}
|
||||
|
||||
void ILI9341_Reset(void)
|
||||
{
|
||||
HAL_GPIO_WritePin(LCD_RST_PORT, LCD_RST_PIN, GPIO_PIN_RESET); //Disable
|
||||
HAL_Delay(10);
|
||||
HAL_GPIO_WritePin(LCD_CS_PORT, LCD_CS_PIN, GPIO_PIN_RESET); //Select
|
||||
HAL_Delay(10);
|
||||
HAL_GPIO_WritePin(LCD_RST_PORT, LCD_RST_PIN, GPIO_PIN_SET); //Enable
|
||||
HAL_GPIO_WritePin(LCD_CS_PORT, LCD_CS_PIN, GPIO_PIN_SET); //Deselect
|
||||
}
|
||||
|
||||
void ILI9341_Enable(void)
|
||||
{
|
||||
HAL_GPIO_WritePin(LCD_RST_PORT, LCD_RST_PIN, GPIO_PIN_SET); //Enable
|
||||
}
|
||||
|
||||
void ILI9341_Init(void)
|
||||
{
|
||||
ILI9341_Enable();
|
||||
ILI9341_Reset();
|
||||
|
||||
//SOFTWARE RESET
|
||||
ILI9341_WriteCommand(0x01);
|
||||
HAL_Delay(10);
|
||||
|
||||
//POWER CONTROL A
|
||||
ILI9341_WriteCommand(0xCB);
|
||||
ILI9341_WriteData(0x39);
|
||||
ILI9341_WriteData(0x2C);
|
||||
ILI9341_WriteData(0x00);
|
||||
ILI9341_WriteData(0x34);
|
||||
ILI9341_WriteData(0x02);
|
||||
|
||||
//POWER CONTROL B
|
||||
ILI9341_WriteCommand(0xCF);
|
||||
ILI9341_WriteData(0x00);
|
||||
ILI9341_WriteData(0xC1);
|
||||
ILI9341_WriteData(0x30);
|
||||
|
||||
//DRIVER TIMING CONTROL A
|
||||
ILI9341_WriteCommand(0xE8);
|
||||
ILI9341_WriteData(0x85);
|
||||
ILI9341_WriteData(0x00);
|
||||
ILI9341_WriteData(0x78);
|
||||
|
||||
//DRIVER TIMING CONTROL B
|
||||
ILI9341_WriteCommand(0xEA);
|
||||
ILI9341_WriteData(0x00);
|
||||
ILI9341_WriteData(0x00);
|
||||
|
||||
//POWER ON SEQUENCE CONTROL
|
||||
ILI9341_WriteCommand(0xED);
|
||||
ILI9341_WriteData(0x64);
|
||||
ILI9341_WriteData(0x03);
|
||||
ILI9341_WriteData(0x12);
|
||||
ILI9341_WriteData(0x81);
|
||||
|
||||
//PUMP RATIO CONTROL
|
||||
ILI9341_WriteCommand(0xF7);
|
||||
ILI9341_WriteData(0x20);
|
||||
|
||||
//POWER CONTROL,VRH[5:0]
|
||||
ILI9341_WriteCommand(0xC0);
|
||||
ILI9341_WriteData(0x23);
|
||||
|
||||
//POWER CONTROL,SAP[2:0];BT[3:0]
|
||||
ILI9341_WriteCommand(0xC1);
|
||||
ILI9341_WriteData(0x10);
|
||||
|
||||
//VCM CONTROL
|
||||
ILI9341_WriteCommand(0xC5);
|
||||
ILI9341_WriteData(0x3E);
|
||||
ILI9341_WriteData(0x28);
|
||||
|
||||
//VCM CONTROL 2
|
||||
ILI9341_WriteCommand(0xC7);
|
||||
ILI9341_WriteData(0x86);
|
||||
|
||||
//MEMORY ACCESS CONTROL
|
||||
ILI9341_WriteCommand(0x36);
|
||||
ILI9341_WriteData(0x48);
|
||||
|
||||
//PIXEL FORMAT
|
||||
ILI9341_WriteCommand(0x3A);
|
||||
ILI9341_WriteData(0x55);
|
||||
|
||||
//FRAME RATIO CONTROL, STANDARD RGB COLOR
|
||||
ILI9341_WriteCommand(0xB1);
|
||||
ILI9341_WriteData(0x00);
|
||||
ILI9341_WriteData(0x18);
|
||||
|
||||
//DISPLAY FUNCTION CONTROL
|
||||
ILI9341_WriteCommand(0xB6);
|
||||
ILI9341_WriteData(0x08);
|
||||
ILI9341_WriteData(0x82);
|
||||
ILI9341_WriteData(0x27);
|
||||
|
||||
//3GAMMA FUNCTION DISABLE
|
||||
ILI9341_WriteCommand(0xF2);
|
||||
ILI9341_WriteData(0x00);
|
||||
|
||||
//GAMMA CURVE SELECTED
|
||||
ILI9341_WriteCommand(0x26);
|
||||
ILI9341_WriteData(0x01);
|
||||
|
||||
//POSITIVE GAMMA CORRECTION
|
||||
ILI9341_WriteCommand(0xE0);
|
||||
ILI9341_WriteData(0x0F);
|
||||
ILI9341_WriteData(0x31);
|
||||
ILI9341_WriteData(0x2B);
|
||||
ILI9341_WriteData(0x0C);
|
||||
ILI9341_WriteData(0x0E);
|
||||
ILI9341_WriteData(0x08);
|
||||
ILI9341_WriteData(0x4E);
|
||||
ILI9341_WriteData(0xF1);
|
||||
ILI9341_WriteData(0x37);
|
||||
ILI9341_WriteData(0x07);
|
||||
ILI9341_WriteData(0x10);
|
||||
ILI9341_WriteData(0x03);
|
||||
ILI9341_WriteData(0x0E);
|
||||
ILI9341_WriteData(0x09);
|
||||
ILI9341_WriteData(0x00);
|
||||
|
||||
//NEGATIVE GAMMA CORRECTION
|
||||
ILI9341_WriteCommand(0xE1);
|
||||
ILI9341_WriteData(0x00);
|
||||
ILI9341_WriteData(0x0E);
|
||||
ILI9341_WriteData(0x14);
|
||||
ILI9341_WriteData(0x03);
|
||||
ILI9341_WriteData(0x11);
|
||||
ILI9341_WriteData(0x07);
|
||||
ILI9341_WriteData(0x31);
|
||||
ILI9341_WriteData(0xC1);
|
||||
ILI9341_WriteData(0x48);
|
||||
ILI9341_WriteData(0x08);
|
||||
ILI9341_WriteData(0x0F);
|
||||
ILI9341_WriteData(0x0C);
|
||||
ILI9341_WriteData(0x31);
|
||||
ILI9341_WriteData(0x36);
|
||||
ILI9341_WriteData(0x0F);
|
||||
|
||||
//EXIT SLEEP
|
||||
ILI9341_WriteCommand(0x11);
|
||||
HAL_Delay(100);
|
||||
|
||||
//TURN ON DISPLAY
|
||||
ILI9341_WriteCommand(0x29);
|
||||
|
||||
//STARTING ROTATION
|
||||
ILI9341_SetRotation(SCREEN_VERTICAL_1);
|
||||
}
|
||||
|
||||
void ILI9341_SetRotation(uint8_t rotation)
|
||||
{
|
||||
ILI9341_WriteCommand(0x36);
|
||||
HAL_Delay(1);
|
||||
|
||||
switch(rotation)
|
||||
{
|
||||
case SCREEN_VERTICAL_1:
|
||||
ILI9341_WriteData(0x40|0x08);
|
||||
LCD_WIDTH = 240;
|
||||
LCD_HEIGHT = 320;
|
||||
break;
|
||||
case SCREEN_HORIZONTAL_1:
|
||||
ILI9341_WriteData(0x20|0x08);
|
||||
LCD_WIDTH = 320;
|
||||
LCD_HEIGHT = 240;
|
||||
break;
|
||||
case SCREEN_VERTICAL_2:
|
||||
ILI9341_WriteData(0x80|0x08);
|
||||
LCD_WIDTH = 240;
|
||||
LCD_HEIGHT = 320;
|
||||
break;
|
||||
case SCREEN_HORIZONTAL_2:
|
||||
ILI9341_WriteData(0x40|0x80|0x20|0x08);
|
||||
LCD_WIDTH = 320;
|
||||
LCD_HEIGHT = 240;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void ILI9341_DrawColor(uint16_t color)
|
||||
{
|
||||
uint8_t buffer[2] = {color>>8, color};
|
||||
ILI9341_WriteBuffer(buffer, sizeof(buffer));
|
||||
}
|
||||
|
||||
void ILI9341_DrawColorBurst(uint16_t color, uint32_t size)
|
||||
{
|
||||
uint32_t BufferSize = 0;
|
||||
|
||||
if((size*2) < BURST_MAX_SIZE)
|
||||
{
|
||||
BufferSize = size;
|
||||
}
|
||||
else
|
||||
{
|
||||
BufferSize = BURST_MAX_SIZE;
|
||||
}
|
||||
|
||||
HAL_GPIO_WritePin(LCD_DC_PORT, LCD_DC_PIN, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(LCD_CS_PORT, LCD_CS_PIN, GPIO_PIN_RESET);
|
||||
|
||||
uint8_t chifted = color>>8;
|
||||
uint8_t BurstBuffer[BufferSize];
|
||||
|
||||
for(uint32_t j = 0; j < BufferSize; j+=2)
|
||||
{
|
||||
BurstBuffer[j] = chifted;
|
||||
BurstBuffer[j+1] = color;
|
||||
}
|
||||
|
||||
uint32_t SendingSize = size * 2;
|
||||
uint32_t SendingInBlock = SendingSize / BufferSize;
|
||||
uint32_t RemainderFromBlock = SendingSize % BufferSize;
|
||||
|
||||
if(SendingInBlock != 0)
|
||||
{
|
||||
for(uint32_t j = 0; j < (SendingInBlock); j++)
|
||||
{
|
||||
HAL_SPI_Transmit(HSPI_INSTANCE, BurstBuffer, BufferSize, 10);
|
||||
}
|
||||
}
|
||||
|
||||
HAL_SPI_Transmit(HSPI_INSTANCE, BurstBuffer, RemainderFromBlock, 10);
|
||||
HAL_GPIO_WritePin(LCD_CS_PORT, LCD_CS_PIN, GPIO_PIN_SET);
|
||||
}
|
||||
|
||||
void ILI9341_FillScreen(uint16_t color)
|
||||
{
|
||||
ILI9341_SetAddress(0, 0, LCD_WIDTH, LCD_HEIGHT);
|
||||
ILI9341_DrawColorBurst(color, LCD_WIDTH*LCD_HEIGHT);
|
||||
}
|
||||
|
||||
void ILI9341_DrawPixel(uint16_t x,uint16_t y,uint16_t color)
|
||||
{
|
||||
if((x >=LCD_WIDTH) || (y >=LCD_HEIGHT)) return;
|
||||
|
||||
uint8_t bufferX[4] = {x>>8, x, (x+1)>>8, (x+1)};
|
||||
uint8_t bufferY[4] = {y>>8, y, (y+1)>>8, (y+1)};
|
||||
uint8_t bufferC[2] = {color>>8, color};
|
||||
|
||||
ILI9341_WriteCommand(0x2A); //ADDRESS
|
||||
ILI9341_WriteBuffer(bufferX, sizeof(bufferX)); //XDATA
|
||||
|
||||
ILI9341_WriteCommand(0x2B); //ADDRESS
|
||||
ILI9341_WriteBuffer(bufferY, sizeof(bufferY)); //YDATA
|
||||
|
||||
ILI9341_WriteCommand(0x2C); //ADDRESS
|
||||
ILI9341_WriteBuffer(bufferC, sizeof(bufferC)); //COLOR
|
||||
}
|
||||
|
||||
void ILI9341_DrawRectangle(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t color)
|
||||
{
|
||||
if((x >=LCD_WIDTH) || (y >=LCD_HEIGHT)) return;
|
||||
|
||||
if((x+width-1)>=LCD_WIDTH)
|
||||
{
|
||||
width=LCD_WIDTH-x;
|
||||
}
|
||||
|
||||
if((y+height-1)>=LCD_HEIGHT)
|
||||
{
|
||||
height=LCD_HEIGHT-y;
|
||||
}
|
||||
|
||||
ILI9341_SetAddress(x, y, x+width-1, y+height-1);
|
||||
ILI9341_DrawColorBurst(color, height*width);
|
||||
}
|
||||
|
||||
void ILI9341_DrawHLine(uint16_t x, uint16_t y, uint16_t width, uint16_t color)
|
||||
{
|
||||
if((x >=LCD_WIDTH) || (y >=LCD_HEIGHT)) return;
|
||||
|
||||
if((x+width-1)>=LCD_WIDTH)
|
||||
{
|
||||
width=LCD_WIDTH-x;
|
||||
}
|
||||
|
||||
ILI9341_SetAddress(x, y, x+width-1, y);
|
||||
ILI9341_DrawColorBurst(color, width);
|
||||
}
|
||||
|
||||
void ILI9341_DrawVLine(uint16_t x, uint16_t y, uint16_t height, uint16_t color)
|
||||
{
|
||||
if((x >=LCD_WIDTH) || (y >=LCD_HEIGHT)) return;
|
||||
|
||||
if((y+height-1)>=LCD_HEIGHT)
|
||||
{
|
||||
height=LCD_HEIGHT-y;
|
||||
}
|
||||
|
||||
ILI9341_SetAddress(x, y, x, y+height-1);
|
||||
ILI9341_DrawColorBurst(color, height);
|
||||
}
|
||||
409
touchscreengames/Core/Src/fonts.c
Normal file
409
touchscreengames/Core/Src/fonts.c
Normal file
@ -0,0 +1,409 @@
|
||||
#include "fonts.h"
|
||||
|
||||
const uint8_t Arial_Narrow8x12[] = {
|
||||
/* Offset, Width, Height, BPL */
|
||||
17,8,12,2,
|
||||
|
||||
0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char
|
||||
0x02, 0x00, 0x00, 0x7E, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char !
|
||||
0x03, 0x0E, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char "
|
||||
0x05, 0xE8, 0x01, 0x5E, 0x00, 0xE8, 0x01, 0x5E, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char #
|
||||
0x05, 0x8C, 0x00, 0x12, 0x01, 0xFF, 0x03, 0x12, 0x01, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char $
|
||||
0x07, 0x0C, 0x00, 0x12, 0x00, 0x8C, 0x01, 0x70, 0x00, 0xCC, 0x00, 0x22, 0x01, 0xC0, 0x00, 0x00, 0x00, // Code for char %
|
||||
0x05, 0xE0, 0x00, 0x2C, 0x01, 0x32, 0x01, 0xCC, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char &
|
||||
0x01, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char '
|
||||
0x02, 0xFC, 0x03, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char (
|
||||
0x02, 0x02, 0x04, 0xFC, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char )
|
||||
0x03, 0x14, 0x00, 0x0E, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char *
|
||||
0x05, 0x20, 0x00, 0x20, 0x00, 0xF8, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char +
|
||||
0x02, 0x00, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ,
|
||||
0x02, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char -
|
||||
0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char .
|
||||
0x03, 0xC0, 0x01, 0x30, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char /
|
||||
0x04, 0xFC, 0x00, 0x02, 0x01, 0x02, 0x01, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 0
|
||||
0x03, 0x08, 0x00, 0x04, 0x00, 0xFE, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 1
|
||||
0x04, 0x84, 0x01, 0x42, 0x01, 0x22, 0x01, 0x1C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 2
|
||||
0x04, 0x84, 0x00, 0x12, 0x01, 0x12, 0x01, 0xEC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 3
|
||||
0x05, 0x60, 0x00, 0x58, 0x00, 0x44, 0x00, 0xFE, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 4
|
||||
0x04, 0x98, 0x00, 0x16, 0x01, 0x12, 0x01, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 5
|
||||
0x04, 0xFC, 0x00, 0x22, 0x01, 0x12, 0x01, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 6
|
||||
0x04, 0x02, 0x00, 0xC2, 0x01, 0x3A, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 7
|
||||
0x04, 0xEC, 0x00, 0x12, 0x01, 0x12, 0x01, 0xEC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 8
|
||||
0x04, 0x9C, 0x00, 0x22, 0x01, 0x12, 0x01, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 9
|
||||
0x02, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char :
|
||||
0x02, 0x00, 0x04, 0x08, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ;
|
||||
0x04, 0x20, 0x00, 0x50, 0x00, 0x50, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char <
|
||||
0x04, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char =
|
||||
0x04, 0x88, 0x00, 0x50, 0x00, 0x50, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char >
|
||||
0x04, 0x04, 0x00, 0x62, 0x01, 0x12, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ?
|
||||
0x08, 0xF0, 0x01, 0x08, 0x02, 0xF4, 0x04, 0x0A, 0x09, 0x0A, 0x09, 0xF2, 0x09, 0x0C, 0x05, 0xF8, 0x02, // Code for char @
|
||||
0x05, 0x80, 0x01, 0x7C, 0x00, 0x42, 0x00, 0x7C, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char A
|
||||
0x05, 0xFE, 0x01, 0x12, 0x01, 0x12, 0x01, 0x12, 0x01, 0xEC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char B
|
||||
0x06, 0x78, 0x00, 0x84, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char C
|
||||
0x05, 0xFE, 0x01, 0x02, 0x01, 0x02, 0x01, 0x84, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char D
|
||||
0x05, 0xFE, 0x01, 0x12, 0x01, 0x12, 0x01, 0x12, 0x01, 0x12, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char E
|
||||
0x05, 0x00, 0x00, 0xFE, 0x01, 0x12, 0x00, 0x12, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char F
|
||||
0x06, 0x78, 0x00, 0x84, 0x00, 0x02, 0x01, 0x22, 0x01, 0x22, 0x01, 0xEC, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char G
|
||||
0x05, 0xFE, 0x01, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0xFE, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char H
|
||||
0x01, 0xFE, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char I
|
||||
0x04, 0xC0, 0x00, 0x00, 0x01, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char J
|
||||
0x05, 0xFE, 0x01, 0x10, 0x00, 0x38, 0x00, 0xC4, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char K
|
||||
0x04, 0xFE, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char L
|
||||
0x07, 0xFE, 0x01, 0x0C, 0x00, 0xF0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x0C, 0x00, 0xFE, 0x01, 0x00, 0x00, // Code for char M
|
||||
0x06, 0xFE, 0x01, 0x04, 0x00, 0x18, 0x00, 0x60, 0x00, 0x80, 0x00, 0xFE, 0x01, 0x00, 0x00, 0x00, 0x00, // Code for char N
|
||||
0x06, 0x78, 0x00, 0x84, 0x00, 0x02, 0x01, 0x02, 0x01, 0x84, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char O
|
||||
0x05, 0xFE, 0x01, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char P
|
||||
0x06, 0x78, 0x00, 0x84, 0x00, 0x02, 0x01, 0x82, 0x01, 0x84, 0x00, 0x78, 0x03, 0x00, 0x00, 0x00, 0x00, // Code for char Q
|
||||
0x07, 0x00, 0x00, 0xFE, 0x01, 0x12, 0x00, 0x32, 0x00, 0x52, 0x00, 0x8C, 0x00, 0x00, 0x01, 0x00, 0x00, // Code for char R
|
||||
0x05, 0xCC, 0x00, 0x12, 0x01, 0x12, 0x01, 0x12, 0x01, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char S
|
||||
0x05, 0x02, 0x00, 0x02, 0x00, 0xFE, 0x01, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char T
|
||||
0x06, 0x7E, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x01, 0x80, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char U
|
||||
0x05, 0x06, 0x00, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char V
|
||||
0x07, 0xFE, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x02, 0x00, 0xFC, 0x00, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x00, // Code for char W
|
||||
0x06, 0x02, 0x01, 0xCC, 0x00, 0x30, 0x00, 0x30, 0x00, 0xCC, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, // Code for char X
|
||||
0x05, 0x02, 0x00, 0x0C, 0x00, 0xF0, 0x01, 0x0C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Y
|
||||
0x05, 0x82, 0x01, 0x42, 0x01, 0x32, 0x01, 0x0A, 0x01, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Z
|
||||
0x02, 0xFE, 0x07, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char [
|
||||
0x03, 0x06, 0x00, 0x78, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char BackSlash
|
||||
0x02, 0x02, 0x04, 0xFE, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ]
|
||||
0x03, 0x1C, 0x00, 0x02, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ^
|
||||
0x05, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char _
|
||||
0x02, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char `
|
||||
0x04, 0xC8, 0x00, 0x28, 0x01, 0x28, 0x01, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char a
|
||||
0x04, 0xFE, 0x01, 0x90, 0x00, 0x08, 0x01, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char b
|
||||
0x04, 0xF0, 0x00, 0x08, 0x01, 0x08, 0x01, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char c
|
||||
0x04, 0xF0, 0x00, 0x08, 0x01, 0x90, 0x00, 0xFE, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char d
|
||||
0x04, 0xF0, 0x00, 0x28, 0x01, 0x28, 0x01, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char e
|
||||
0x02, 0xFE, 0x01, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char f
|
||||
0x04, 0xF0, 0x04, 0x08, 0x05, 0x90, 0x04, 0xF8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char g
|
||||
0x04, 0xFE, 0x01, 0x10, 0x00, 0x08, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char h
|
||||
0x01, 0xFA, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char i
|
||||
0x01, 0xFA, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char j
|
||||
0x04, 0xFE, 0x01, 0x20, 0x00, 0x50, 0x00, 0x88, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char k
|
||||
0x01, 0xFE, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char l
|
||||
0x07, 0xF8, 0x01, 0x10, 0x00, 0x08, 0x00, 0xF0, 0x01, 0x10, 0x00, 0x08, 0x00, 0xF8, 0x01, 0x00, 0x00, // Code for char m
|
||||
0x04, 0xF8, 0x01, 0x10, 0x00, 0x08, 0x00, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char n
|
||||
0x04, 0xF0, 0x00, 0x08, 0x01, 0x08, 0x01, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char o
|
||||
0x04, 0xF8, 0x07, 0x90, 0x00, 0x08, 0x01, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char p
|
||||
0x04, 0xF0, 0x00, 0x08, 0x01, 0x90, 0x00, 0xF8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char q
|
||||
0x03, 0xF8, 0x01, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char r
|
||||
0x04, 0x98, 0x00, 0x28, 0x01, 0x48, 0x01, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char s
|
||||
0x02, 0xFE, 0x01, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char t
|
||||
0x04, 0xF8, 0x00, 0x00, 0x01, 0x80, 0x00, 0xF8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char u
|
||||
0x05, 0x18, 0x00, 0xE0, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char v
|
||||
0x07, 0xF8, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x08, 0x00, 0xF0, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x00, // Code for char w
|
||||
0x05, 0x08, 0x01, 0x90, 0x00, 0x60, 0x00, 0x90, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char x
|
||||
0x05, 0x08, 0x00, 0x70, 0x04, 0x80, 0x03, 0x70, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char y
|
||||
0x04, 0x88, 0x01, 0x48, 0x01, 0x28, 0x01, 0x18, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char z
|
||||
0x02, 0xDE, 0x03, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char {
|
||||
0x01, 0xFE, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char |
|
||||
0x03, 0x02, 0x04, 0xDE, 0x07, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char }
|
||||
0x05, 0x30, 0x00, 0x10, 0x00, 0x30, 0x00, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ~
|
||||
0x03, 0xFF, 0x00, 0x81, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Code for char
|
||||
};
|
||||
|
||||
const uint8_t Arial_Narrow10x13[] = {
|
||||
/* Offset, Width, Height, BPL */
|
||||
21,10,13,2,
|
||||
|
||||
0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char
|
||||
0x02, 0x00, 0x00, 0xFE, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char !
|
||||
0x03, 0x0E, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char "
|
||||
0x07, 0x50, 0x00, 0x50, 0x03, 0xF8, 0x00, 0x56, 0x00, 0x50, 0x03, 0xF8, 0x00, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char #
|
||||
0x05, 0x9C, 0x01, 0x22, 0x02, 0xFF, 0x07, 0x22, 0x02, 0xC4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char $
|
||||
0x0A, 0x1C, 0x00, 0x22, 0x00, 0x22, 0x02, 0x9C, 0x01, 0x40, 0x00, 0x30, 0x00, 0xCC, 0x01, 0x22, 0x02, 0x20, 0x02, 0xC0, 0x01, // Code for char %
|
||||
0x08, 0x00, 0x00, 0xC0, 0x01, 0x3C, 0x02, 0x22, 0x02, 0x52, 0x02, 0x8C, 0x01, 0xC0, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, // Code for char &
|
||||
0x01, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char '
|
||||
0x04, 0x00, 0x00, 0xF0, 0x03, 0x0C, 0x0C, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char (
|
||||
0x03, 0x02, 0x10, 0x0C, 0x0C, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char )
|
||||
0x03, 0x14, 0x00, 0x0E, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char *
|
||||
0x07, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xF8, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char +
|
||||
0x02, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ,
|
||||
0x03, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char -
|
||||
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char .
|
||||
0x03, 0x00, 0x03, 0xF0, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char /
|
||||
0x05, 0xF8, 0x00, 0x04, 0x01, 0x02, 0x02, 0x04, 0x01, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 0
|
||||
0x03, 0x08, 0x00, 0x04, 0x00, 0xFE, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 1
|
||||
0x05, 0x0C, 0x03, 0x82, 0x02, 0x42, 0x02, 0x24, 0x02, 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 2
|
||||
0x05, 0x84, 0x01, 0x02, 0x02, 0x22, 0x02, 0x54, 0x01, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 3
|
||||
0x05, 0xC0, 0x00, 0xB0, 0x00, 0x8C, 0x00, 0xFE, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 4
|
||||
0x05, 0xB8, 0x01, 0x16, 0x02, 0x12, 0x02, 0x22, 0x01, 0xC2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 5
|
||||
0x05, 0xF8, 0x00, 0x24, 0x01, 0x12, 0x02, 0x22, 0x01, 0xC4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 6
|
||||
0x05, 0x02, 0x00, 0x82, 0x03, 0x72, 0x00, 0x0A, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 7
|
||||
0x05, 0x88, 0x00, 0x54, 0x01, 0x22, 0x02, 0x54, 0x01, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 8
|
||||
0x05, 0x18, 0x01, 0x24, 0x02, 0x42, 0x02, 0x24, 0x01, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 9
|
||||
0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char :
|
||||
0x02, 0x00, 0x08, 0x08, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ;
|
||||
0x05, 0x20, 0x00, 0x50, 0x00, 0x50, 0x00, 0x88, 0x00, 0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char <
|
||||
0x05, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char =
|
||||
0x05, 0x04, 0x01, 0x88, 0x00, 0x50, 0x00, 0x50, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char >
|
||||
0x05, 0x0C, 0x00, 0x06, 0x00, 0xC2, 0x02, 0x22, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ?
|
||||
0x0A, 0xF0, 0x03, 0x08, 0x04, 0xF4, 0x09, 0x0A, 0x12, 0x0A, 0x12, 0x0A, 0x11, 0xF2, 0x13, 0x1A, 0x12, 0x04, 0x0A, 0xF8, 0x05, // Code for char @
|
||||
0x07, 0x00, 0x03, 0xE0, 0x00, 0x5C, 0x00, 0x42, 0x00, 0x5C, 0x00, 0xE0, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char A
|
||||
0x06, 0x00, 0x00, 0xFE, 0x03, 0x22, 0x02, 0x22, 0x02, 0x22, 0x02, 0xDC, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char B
|
||||
0x07, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x8C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char C
|
||||
0x07, 0x00, 0x00, 0xFE, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x01, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char D
|
||||
0x06, 0x00, 0x00, 0xFE, 0x03, 0x22, 0x02, 0x22, 0x02, 0x22, 0x02, 0x22, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char E
|
||||
0x06, 0x00, 0x00, 0xFE, 0x03, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char F
|
||||
0x07, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x01, 0x02, 0x02, 0x22, 0x02, 0x22, 0x02, 0xEC, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char G
|
||||
0x07, 0x00, 0x00, 0xFE, 0x03, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xFE, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char H
|
||||
0x02, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char I
|
||||
0x04, 0x80, 0x01, 0x00, 0x02, 0x00, 0x02, 0xFE, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char J
|
||||
0x06, 0x00, 0x00, 0xFE, 0x03, 0x20, 0x00, 0x78, 0x00, 0x84, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char K
|
||||
0x06, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char L
|
||||
0x08, 0x00, 0x00, 0xFE, 0x03, 0x1C, 0x00, 0xE0, 0x01, 0x00, 0x02, 0xE0, 0x01, 0x1C, 0x00, 0xFE, 0x03, 0x00, 0x00, 0x00, 0x00, // Code for char M
|
||||
0x07, 0x00, 0x00, 0xFE, 0x03, 0x0C, 0x00, 0x30, 0x00, 0x40, 0x00, 0x80, 0x01, 0xFE, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char N
|
||||
0x07, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x01, 0x02, 0x02, 0x02, 0x02, 0x04, 0x01, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char O
|
||||
0x06, 0x00, 0x00, 0xFE, 0x03, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char P
|
||||
0x07, 0x00, 0x00, 0xF8, 0x00, 0x04, 0x01, 0x02, 0x02, 0x02, 0x03, 0x04, 0x01, 0xF8, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Q
|
||||
0x08, 0x00, 0x00, 0xFE, 0x03, 0x22, 0x00, 0x22, 0x00, 0x62, 0x00, 0xA2, 0x00, 0x1C, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, // Code for char R
|
||||
0x06, 0x00, 0x00, 0x9C, 0x01, 0x22, 0x02, 0x22, 0x02, 0x22, 0x02, 0xCC, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char S
|
||||
0x06, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0xFE, 0x03, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char T
|
||||
0x07, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char U
|
||||
0x07, 0x06, 0x00, 0x38, 0x00, 0xC0, 0x01, 0x00, 0x02, 0xC0, 0x01, 0x38, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char V
|
||||
0x09, 0x06, 0x00, 0xF8, 0x01, 0x00, 0x02, 0xFC, 0x01, 0x02, 0x00, 0xFC, 0x01, 0x00, 0x02, 0xF0, 0x01, 0x0E, 0x00, 0x00, 0x00, // Code for char W
|
||||
0x07, 0x02, 0x02, 0x04, 0x01, 0xD8, 0x00, 0x20, 0x00, 0xD8, 0x00, 0x04, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char X
|
||||
0x07, 0x02, 0x00, 0x0C, 0x00, 0x10, 0x00, 0xE0, 0x03, 0x10, 0x00, 0x0C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Y
|
||||
0x06, 0x02, 0x03, 0x82, 0x02, 0x62, 0x02, 0x12, 0x02, 0x0A, 0x02, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Z
|
||||
0x03, 0x00, 0x00, 0xFE, 0x1F, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char [
|
||||
0x03, 0x06, 0x00, 0xF8, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char BackSlash
|
||||
0x02, 0x02, 0x10, 0xFE, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ]
|
||||
0x05, 0x20, 0x00, 0x1C, 0x00, 0x02, 0x00, 0x1C, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ^
|
||||
0x06, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char _
|
||||
0x02, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char `
|
||||
0x05, 0x90, 0x01, 0x48, 0x02, 0x48, 0x02, 0x48, 0x02, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char a
|
||||
0x05, 0xFE, 0x03, 0x10, 0x01, 0x08, 0x02, 0x08, 0x02, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char b
|
||||
0x04, 0xF0, 0x01, 0x08, 0x02, 0x08, 0x02, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char c
|
||||
0x05, 0xF0, 0x01, 0x08, 0x02, 0x08, 0x02, 0x10, 0x01, 0xFE, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char d
|
||||
0x05, 0xF0, 0x01, 0x48, 0x02, 0x48, 0x02, 0x48, 0x02, 0x70, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char e
|
||||
0x02, 0xFE, 0x03, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char f
|
||||
0x05, 0xF0, 0x09, 0x08, 0x12, 0x08, 0x12, 0x10, 0x11, 0xF8, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char g
|
||||
0x05, 0xFE, 0x03, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char h
|
||||
0x01, 0xFA, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char i
|
||||
0x01, 0xFA, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char j
|
||||
0x04, 0xFE, 0x03, 0x20, 0x00, 0xD0, 0x00, 0x08, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char k
|
||||
0x01, 0xFE, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char l
|
||||
0x07, 0xF8, 0x03, 0x10, 0x00, 0x08, 0x00, 0xF0, 0x03, 0x10, 0x00, 0x08, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char m
|
||||
0x05, 0xF8, 0x03, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char n
|
||||
0x05, 0xF0, 0x01, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char o
|
||||
0x05, 0xF8, 0x1F, 0x10, 0x01, 0x08, 0x02, 0x08, 0x02, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char p
|
||||
0x05, 0xF0, 0x01, 0x08, 0x02, 0x08, 0x02, 0x10, 0x01, 0xF8, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char q
|
||||
0x03, 0xF8, 0x03, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char r
|
||||
0x04, 0x30, 0x01, 0x48, 0x02, 0x48, 0x02, 0x90, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char s
|
||||
0x02, 0xFE, 0x03, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char t
|
||||
0x05, 0xF8, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0xF8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char u
|
||||
0x05, 0x18, 0x00, 0xE0, 0x01, 0x00, 0x02, 0xE0, 0x01, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char v
|
||||
0x07, 0xF8, 0x01, 0x00, 0x02, 0xE0, 0x01, 0x18, 0x00, 0xE0, 0x01, 0x00, 0x02, 0xF8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char w
|
||||
0x05, 0x08, 0x02, 0xB0, 0x01, 0x40, 0x00, 0xB0, 0x01, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char x
|
||||
0x05, 0x18, 0x10, 0xE0, 0x10, 0x00, 0x0F, 0xE0, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char y
|
||||
0x04, 0x08, 0x03, 0xC8, 0x02, 0x28, 0x02, 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char z
|
||||
0x03, 0x40, 0x00, 0xBC, 0x0F, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char {
|
||||
0x02, 0x00, 0x00, 0xFE, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char |
|
||||
0x03, 0x02, 0x10, 0xBC, 0x0F, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char }
|
||||
0x05, 0x30, 0x00, 0x10, 0x00, 0x30, 0x00, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ~
|
||||
0x03, 0xFF, 0x03, 0x01, 0x02, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Code for char
|
||||
};
|
||||
|
||||
const uint8_t Arial_Narrow12x16[] = {
|
||||
/* Offset, Width, Height, BPL */
|
||||
25,12,16,2,
|
||||
|
||||
0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char
|
||||
0x02, 0x00, 0x00, 0xFE, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char !
|
||||
0x04, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char "
|
||||
0x08, 0x10, 0x01, 0x10, 0x0F, 0xF0, 0x01, 0x1E, 0x01, 0x10, 0x0F, 0xF0, 0x01, 0x1E, 0x01, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char #
|
||||
0x06, 0x1C, 0x06, 0x22, 0x08, 0x42, 0x08, 0xFF, 0x1F, 0x42, 0x08, 0x8C, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char $
|
||||
0x0B, 0x00, 0x00, 0x3C, 0x00, 0x42, 0x00, 0x42, 0x08, 0x3C, 0x06, 0x80, 0x01, 0x70, 0x00, 0x8C, 0x07, 0x42, 0x08, 0x40, 0x08, 0x80, 0x07, 0x00, 0x00, // Code for char %
|
||||
0x09, 0x00, 0x00, 0x80, 0x07, 0xDC, 0x08, 0x62, 0x08, 0xA2, 0x08, 0x1C, 0x07, 0x00, 0x07, 0x80, 0x09, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char &
|
||||
0x02, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char '
|
||||
0x04, 0x00, 0x00, 0xF0, 0x0F, 0x0C, 0x38, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char (
|
||||
0x03, 0x02, 0x40, 0x0C, 0x38, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char )
|
||||
0x05, 0x04, 0x00, 0x34, 0x00, 0x0E, 0x00, 0x34, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char *
|
||||
0x07, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0xF8, 0x03, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char +
|
||||
0x02, 0x00, 0x20, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ,
|
||||
0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char -
|
||||
0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char .
|
||||
0x04, 0x00, 0x0C, 0x80, 0x03, 0x70, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char /
|
||||
0x06, 0xF8, 0x03, 0x04, 0x04, 0x02, 0x08, 0x02, 0x08, 0x04, 0x04, 0xF8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 0
|
||||
0x04, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 1
|
||||
0x06, 0x0C, 0x0C, 0x02, 0x0A, 0x02, 0x09, 0x82, 0x08, 0x44, 0x08, 0x38, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 2
|
||||
0x06, 0x0C, 0x06, 0x02, 0x08, 0x42, 0x08, 0x42, 0x08, 0xA4, 0x04, 0x18, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 3
|
||||
0x06, 0x80, 0x01, 0x40, 0x01, 0x30, 0x01, 0x0C, 0x01, 0xFE, 0x0F, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 4
|
||||
0x06, 0x70, 0x06, 0x4E, 0x08, 0x22, 0x08, 0x22, 0x08, 0x42, 0x04, 0x82, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 5
|
||||
0x06, 0xF8, 0x03, 0x44, 0x04, 0x22, 0x08, 0x22, 0x08, 0x42, 0x04, 0x8C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 6
|
||||
0x06, 0x02, 0x00, 0x02, 0x0E, 0xC2, 0x01, 0x32, 0x00, 0x0A, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 7
|
||||
0x06, 0x18, 0x03, 0xA4, 0x04, 0x42, 0x08, 0x42, 0x08, 0xA4, 0x04, 0x18, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 8
|
||||
0x06, 0x38, 0x06, 0x44, 0x08, 0x82, 0x08, 0x82, 0x08, 0x44, 0x04, 0xF8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 9
|
||||
0x02, 0x00, 0x00, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char :
|
||||
0x02, 0x00, 0x20, 0x10, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ;
|
||||
0x07, 0x00, 0x00, 0x40, 0x00, 0xA0, 0x00, 0xA0, 0x00, 0x10, 0x01, 0x10, 0x01, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char <
|
||||
0x07, 0x00, 0x00, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char =
|
||||
0x07, 0x00, 0x00, 0x08, 0x02, 0x10, 0x01, 0x10, 0x01, 0xA0, 0x00, 0xA0, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char >
|
||||
0x06, 0x0C, 0x00, 0x02, 0x00, 0x02, 0x0B, 0x82, 0x00, 0x42, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ?
|
||||
0x0C, 0x00, 0x00, 0xE0, 0x07, 0x10, 0x08, 0xE8, 0x17, 0x14, 0x28, 0x12, 0x48, 0x12, 0x44, 0x22, 0x47, 0xF2, 0x48, 0x04, 0x28, 0x08, 0x28, 0xF0, 0x17, // Code for char @
|
||||
0x09, 0x00, 0x08, 0x00, 0x07, 0xE0, 0x00, 0x9C, 0x00, 0x82, 0x00, 0x9C, 0x00, 0xE0, 0x00, 0x00, 0x07, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char A
|
||||
0x08, 0x00, 0x00, 0xFE, 0x0F, 0x42, 0x08, 0x42, 0x08, 0x42, 0x08, 0x42, 0x08, 0x42, 0x08, 0xBC, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char B
|
||||
0x08, 0x00, 0x00, 0xF8, 0x03, 0x04, 0x04, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x04, 0x04, 0x18, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char C
|
||||
0x08, 0x00, 0x00, 0xFE, 0x0F, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x04, 0x04, 0xF8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char D
|
||||
0x08, 0x00, 0x00, 0xFE, 0x0F, 0x42, 0x08, 0x42, 0x08, 0x42, 0x08, 0x42, 0x08, 0x42, 0x08, 0x42, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char E
|
||||
0x07, 0x00, 0x00, 0xFE, 0x0F, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char F
|
||||
0x09, 0x00, 0x00, 0xF8, 0x03, 0x04, 0x04, 0x02, 0x08, 0x02, 0x08, 0x82, 0x08, 0x82, 0x08, 0x84, 0x08, 0x98, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char G
|
||||
0x08, 0x00, 0x00, 0xFE, 0x0F, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char H
|
||||
0x02, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char I
|
||||
0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0xFE, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char J
|
||||
0x08, 0x00, 0x00, 0xFE, 0x0F, 0x40, 0x00, 0x20, 0x00, 0xD0, 0x00, 0x08, 0x01, 0x04, 0x06, 0x02, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char K
|
||||
0x07, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char L
|
||||
0x0A, 0x00, 0x00, 0xFE, 0x0F, 0x06, 0x00, 0x78, 0x00, 0x80, 0x03, 0x00, 0x0C, 0x80, 0x03, 0x78, 0x00, 0x06, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0x00, 0x00, // Code for char M
|
||||
0x08, 0x00, 0x00, 0xFE, 0x0F, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x00, 0x00, 0x01, 0x00, 0x06, 0xFE, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char N
|
||||
0x09, 0x00, 0x00, 0xF8, 0x03, 0x04, 0x04, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0x08, 0x04, 0x04, 0xF8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char O
|
||||
0x08, 0x00, 0x00, 0xFE, 0x0F, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char P
|
||||
0x09, 0x00, 0x00, 0xF8, 0x03, 0x04, 0x04, 0x02, 0x08, 0x02, 0x08, 0x02, 0x0A, 0x02, 0x04, 0x04, 0x06, 0xF8, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Q
|
||||
0x09, 0x00, 0x00, 0xFE, 0x0F, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0xC2, 0x00, 0xC2, 0x01, 0x3C, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char R
|
||||
0x08, 0x00, 0x00, 0x18, 0x03, 0x24, 0x04, 0x42, 0x08, 0x42, 0x08, 0x42, 0x08, 0x84, 0x04, 0x18, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char S
|
||||
0x07, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0xFE, 0x0F, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char T
|
||||
0x08, 0x00, 0x00, 0xFE, 0x03, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x04, 0xFE, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char U
|
||||
0x09, 0x02, 0x00, 0x1C, 0x00, 0xE0, 0x00, 0x00, 0x07, 0x00, 0x08, 0x00, 0x07, 0xE0, 0x00, 0x1C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char V
|
||||
0x0B, 0x1E, 0x00, 0xE0, 0x03, 0x00, 0x0C, 0xC0, 0x03, 0x3C, 0x00, 0x02, 0x00, 0x3C, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0xE0, 0x03, 0x1E, 0x00, 0x00, 0x00, // Code for char W
|
||||
0x08, 0x02, 0x08, 0x04, 0x04, 0x18, 0x03, 0xE0, 0x00, 0xA0, 0x00, 0x18, 0x03, 0x04, 0x04, 0x02, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char X
|
||||
0x09, 0x02, 0x00, 0x04, 0x00, 0x18, 0x00, 0x60, 0x00, 0x80, 0x0F, 0x60, 0x00, 0x18, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Y
|
||||
0x07, 0x02, 0x0C, 0x02, 0x0A, 0x82, 0x09, 0x42, 0x08, 0x32, 0x08, 0x0A, 0x08, 0x06, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Z
|
||||
0x03, 0x00, 0x00, 0xFE, 0x7F, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char [
|
||||
0x04, 0x06, 0x00, 0x78, 0x00, 0x80, 0x03, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char BackSlash
|
||||
0x03, 0x00, 0x00, 0x02, 0x40, 0xFE, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ]
|
||||
0x05, 0x40, 0x00, 0x38, 0x00, 0x06, 0x00, 0x38, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ^
|
||||
0x07, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char _
|
||||
0x03, 0x00, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char `
|
||||
0x06, 0x00, 0x00, 0x60, 0x06, 0x10, 0x09, 0x10, 0x09, 0xA0, 0x04, 0xC0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char a
|
||||
0x07, 0x00, 0x00, 0xFE, 0x0F, 0x20, 0x04, 0x10, 0x08, 0x10, 0x08, 0x20, 0x04, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char b
|
||||
0x06, 0x00, 0x00, 0xC0, 0x03, 0x20, 0x04, 0x10, 0x08, 0x10, 0x08, 0x60, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char c
|
||||
0x07, 0x00, 0x00, 0xC0, 0x03, 0x20, 0x04, 0x10, 0x08, 0x10, 0x08, 0x20, 0x04, 0xFE, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char d
|
||||
0x07, 0x00, 0x00, 0xC0, 0x03, 0xA0, 0x04, 0x90, 0x08, 0x90, 0x08, 0xA0, 0x04, 0xC0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char e
|
||||
0x03, 0x10, 0x00, 0xFE, 0x0F, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char f
|
||||
0x07, 0x00, 0x00, 0xC0, 0x33, 0x20, 0x44, 0x10, 0x48, 0x10, 0x48, 0x20, 0x24, 0xF0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char g
|
||||
0x06, 0x00, 0x00, 0xFE, 0x0F, 0x20, 0x00, 0x10, 0x00, 0x10, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char h
|
||||
0x02, 0x00, 0x00, 0xF2, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char i
|
||||
0x02, 0x00, 0x40, 0xF2, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char j
|
||||
0x06, 0x00, 0x00, 0xFE, 0x0F, 0x80, 0x00, 0xC0, 0x00, 0x20, 0x03, 0x10, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char k
|
||||
0x02, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char l
|
||||
0x0A, 0x00, 0x00, 0xF0, 0x0F, 0x20, 0x00, 0x10, 0x00, 0x10, 0x00, 0xE0, 0x0F, 0x30, 0x00, 0x10, 0x00, 0x10, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x00, // Code for char m
|
||||
0x06, 0x00, 0x00, 0xF0, 0x0F, 0x20, 0x00, 0x10, 0x00, 0x10, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char n
|
||||
0x07, 0x00, 0x00, 0xC0, 0x03, 0x20, 0x04, 0x10, 0x08, 0x10, 0x08, 0x20, 0x04, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char o
|
||||
0x07, 0x00, 0x00, 0xF0, 0x7F, 0x20, 0x04, 0x10, 0x08, 0x10, 0x08, 0x20, 0x04, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char p
|
||||
0x07, 0x00, 0x00, 0xC0, 0x03, 0x20, 0x04, 0x10, 0x08, 0x10, 0x08, 0x20, 0x04, 0xF0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char q
|
||||
0x04, 0x00, 0x00, 0xF0, 0x0F, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char r
|
||||
0x06, 0x00, 0x00, 0x60, 0x06, 0x90, 0x08, 0x90, 0x08, 0x10, 0x09, 0x20, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char s
|
||||
0x03, 0x10, 0x00, 0xFE, 0x0F, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char t
|
||||
0x06, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x08, 0x00, 0x08, 0x00, 0x04, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char u
|
||||
0x07, 0x10, 0x00, 0xE0, 0x00, 0x00, 0x07, 0x00, 0x08, 0x00, 0x07, 0xE0, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char v
|
||||
0x09, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0xC0, 0x03, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0xC0, 0x03, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char w
|
||||
0x06, 0x00, 0x00, 0x10, 0x08, 0x60, 0x06, 0x80, 0x01, 0x60, 0x06, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char x
|
||||
0x07, 0x10, 0x00, 0xE0, 0x40, 0x00, 0x47, 0x00, 0x38, 0x00, 0x07, 0xE0, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char y
|
||||
0x06, 0x00, 0x00, 0x10, 0x0C, 0x10, 0x0A, 0x90, 0x09, 0x50, 0x08, 0x30, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char z
|
||||
0x03, 0x00, 0x01, 0xFE, 0x7E, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char {
|
||||
0x02, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char |
|
||||
0x03, 0x02, 0x40, 0xFE, 0x7E, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char }
|
||||
0x07, 0x40, 0x00, 0x20, 0x00, 0x20, 0x00, 0x60, 0x00, 0x40, 0x00, 0x40, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ~
|
||||
0x04, 0xFF, 0x0F, 0x01, 0x08, 0x01, 0x08, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Code for char
|
||||
};
|
||||
|
||||
const uint8_t Arial_Narrow15x19[] = {
|
||||
/* Offset, Width, Height, BPL */
|
||||
46,15,19,3,
|
||||
|
||||
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char
|
||||
0x02, 0x00, 0x00, 0x00, 0xFE, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char !
|
||||
0x04, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char "
|
||||
0x08, 0x20, 0x04, 0x00, 0x20, 0x74, 0x00, 0xF0, 0x0F, 0x00, 0x2E, 0x04, 0x00, 0x20, 0x74, 0x00, 0xF0, 0x0F, 0x00, 0x2E, 0x04, 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char #
|
||||
0x08, 0x00, 0x00, 0x00, 0x78, 0x18, 0x00, 0xC6, 0x20, 0x00, 0x82, 0x40, 0x00, 0xFF, 0xFF, 0x01, 0x02, 0x41, 0x00, 0x06, 0x23, 0x00, 0x0C, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char $
|
||||
0x0B, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x82, 0x00, 0x00, 0x82, 0x40, 0x00, 0x7C, 0x38, 0x00, 0x00, 0x07, 0x00, 0xE0, 0x00, 0x00, 0x18, 0x3E, 0x00, 0x06, 0x41, 0x00, 0x00, 0x41, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char %
|
||||
0x0B, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0xBC, 0x21, 0x00, 0xC6, 0x40, 0x00, 0xC2, 0x41, 0x00, 0x42, 0x42, 0x00, 0x66, 0x64, 0x00, 0x3C, 0x3C, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x63, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char &
|
||||
0x02, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char '
|
||||
0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x7F, 0x00, 0x1C, 0xC0, 0x03, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char (
|
||||
0x03, 0x02, 0x00, 0x04, 0x1C, 0xC0, 0x03, 0xE0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char )
|
||||
0x05, 0x04, 0x00, 0x00, 0x34, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x34, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char *
|
||||
0x0A, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char +
|
||||
0x02, 0x00, 0x00, 0x02, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ,
|
||||
0x04, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char -
|
||||
0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char .
|
||||
0x04, 0x00, 0x40, 0x00, 0x00, 0x3E, 0x00, 0xE0, 0x01, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char /
|
||||
0x08, 0xF8, 0x0F, 0x00, 0x06, 0x30, 0x00, 0x03, 0x60, 0x00, 0x01, 0x40, 0x00, 0x01, 0x40, 0x00, 0x03, 0x60, 0x00, 0x06, 0x30, 0x00, 0xF8, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 0
|
||||
0x05, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x00, 0x04, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 1
|
||||
0x08, 0x0C, 0x60, 0x00, 0x02, 0x50, 0x00, 0x01, 0x48, 0x00, 0x01, 0x44, 0x00, 0x01, 0x42, 0x00, 0x81, 0x41, 0x00, 0xC2, 0x40, 0x00, 0x3C, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 2
|
||||
0x08, 0x04, 0x18, 0x00, 0x02, 0x20, 0x00, 0x01, 0x40, 0x00, 0x81, 0x40, 0x00, 0x81, 0x40, 0x00, 0x81, 0x40, 0x00, 0xC2, 0x21, 0x00, 0x3C, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 3
|
||||
0x08, 0x00, 0x06, 0x00, 0x80, 0x05, 0x00, 0x40, 0x04, 0x00, 0x30, 0x04, 0x00, 0x0C, 0x04, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 4
|
||||
0x08, 0xF0, 0x18, 0x00, 0x6F, 0x20, 0x00, 0x21, 0x40, 0x00, 0x21, 0x40, 0x00, 0x21, 0x40, 0x00, 0x61, 0x60, 0x00, 0xC1, 0x30, 0x00, 0x81, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 5
|
||||
0x08, 0xF8, 0x0F, 0x00, 0x86, 0x30, 0x00, 0x42, 0x60, 0x00, 0x41, 0x40, 0x00, 0x41, 0x40, 0x00, 0x41, 0x40, 0x00, 0x82, 0x20, 0x00, 0x04, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 6
|
||||
0x08, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x78, 0x00, 0x01, 0x07, 0x00, 0xE1, 0x00, 0x00, 0x39, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 7
|
||||
0x08, 0x3C, 0x1F, 0x00, 0xC2, 0x21, 0x00, 0x81, 0x40, 0x00, 0x81, 0x40, 0x00, 0x81, 0x40, 0x00, 0x81, 0x40, 0x00, 0xC2, 0x21, 0x00, 0x7C, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 8
|
||||
0x08, 0x7C, 0x10, 0x00, 0x86, 0x20, 0x00, 0x03, 0x41, 0x00, 0x01, 0x41, 0x00, 0x01, 0x41, 0x00, 0x01, 0x21, 0x00, 0x86, 0x38, 0x00, 0xF8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 9
|
||||
0x02, 0x00, 0x00, 0x00, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char :
|
||||
0x02, 0x00, 0x00, 0x02, 0x20, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ;
|
||||
0x08, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x80, 0x02, 0x00, 0x80, 0x02, 0x00, 0x40, 0x04, 0x00, 0x20, 0x08, 0x00, 0x20, 0x08, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char <
|
||||
0x08, 0x00, 0x00, 0x00, 0x40, 0x04, 0x00, 0x40, 0x04, 0x00, 0x40, 0x04, 0x00, 0x40, 0x04, 0x00, 0x40, 0x04, 0x00, 0x40, 0x04, 0x00, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char =
|
||||
0x08, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x20, 0x08, 0x00, 0x20, 0x08, 0x00, 0x40, 0x04, 0x00, 0x80, 0x02, 0x00, 0x80, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char >
|
||||
0x07, 0x18, 0x00, 0x00, 0x04, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x5C, 0x00, 0x02, 0x03, 0x00, 0x84, 0x01, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ?
|
||||
0x0F, 0x00, 0x00, 0x00, 0x80, 0x3F, 0x00, 0x60, 0xC0, 0x00, 0x18, 0x00, 0x01, 0x0C, 0x1F, 0x02, 0xC4, 0x60, 0x02, 0x62, 0x40, 0x04, 0x22, 0x40, 0x04, 0x22, 0x20, 0x04, 0x42, 0x38, 0x04, 0xE2, 0x47, 0x04, 0x04, 0x40, 0x02, 0x0C, 0x20, 0x02, 0x38, 0x18, 0x01, 0xE0, 0x87, 0x00, // Code for char @
|
||||
0x0B, 0x00, 0x40, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0x00, 0xE0, 0x02, 0x00, 0x1C, 0x02, 0x00, 0x02, 0x02, 0x00, 0x1C, 0x02, 0x00, 0xE0, 0x02, 0x00, 0x00, 0x07, 0x00, 0x00, 0x38, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char A
|
||||
0x09, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x82, 0x40, 0x00, 0x82, 0x40, 0x00, 0x82, 0x40, 0x00, 0x82, 0x40, 0x00, 0x82, 0x40, 0x00, 0xC4, 0x21, 0x00, 0x78, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char B
|
||||
0x0A, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x18, 0x18, 0x00, 0x04, 0x20, 0x00, 0x02, 0x40, 0x00, 0x02, 0x40, 0x00, 0x02, 0x40, 0x00, 0x02, 0x40, 0x00, 0x04, 0x20, 0x00, 0x18, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char C
|
||||
0x0A, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x02, 0x40, 0x00, 0x02, 0x40, 0x00, 0x02, 0x40, 0x00, 0x02, 0x40, 0x00, 0x02, 0x40, 0x00, 0x04, 0x20, 0x00, 0x0C, 0x18, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char D
|
||||
0x09, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x82, 0x40, 0x00, 0x82, 0x40, 0x00, 0x82, 0x40, 0x00, 0x82, 0x40, 0x00, 0x82, 0x40, 0x00, 0x82, 0x40, 0x00, 0x82, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char E
|
||||
0x09, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x82, 0x00, 0x00, 0x82, 0x00, 0x00, 0x82, 0x00, 0x00, 0x82, 0x00, 0x00, 0x82, 0x00, 0x00, 0x82, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char F
|
||||
0x0B, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x18, 0x18, 0x00, 0x04, 0x20, 0x00, 0x02, 0x40, 0x00, 0x02, 0x40, 0x00, 0x02, 0x41, 0x00, 0x02, 0x41, 0x00, 0x02, 0x61, 0x00, 0x04, 0x21, 0x00, 0x18, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char G
|
||||
0x0A, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char H
|
||||
0x02, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char I
|
||||
0x07, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char J
|
||||
0x0A, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0x03, 0x00, 0x80, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x20, 0x01, 0x00, 0x10, 0x06, 0x00, 0x08, 0x18, 0x00, 0x06, 0x20, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char K
|
||||
0x08, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char L
|
||||
0x0C, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x06, 0x00, 0x00, 0x38, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1C, 0x00, 0x80, 0x03, 0x00, 0x70, 0x00, 0x00, 0x0E, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char M
|
||||
0x0A, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x04, 0x00, 0x00, 0x18, 0x00, 0x00, 0x60, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x06, 0x00, 0x00, 0x18, 0x00, 0x00, 0x20, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char N
|
||||
0x0B, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x18, 0x18, 0x00, 0x04, 0x20, 0x00, 0x02, 0x40, 0x00, 0x02, 0x40, 0x00, 0x02, 0x40, 0x00, 0x02, 0x40, 0x00, 0x04, 0x20, 0x00, 0x18, 0x18, 0x00, 0xE0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char O
|
||||
0x09, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x02, 0x01, 0x00, 0x02, 0x01, 0x00, 0x02, 0x01, 0x00, 0x02, 0x01, 0x00, 0x02, 0x01, 0x00, 0x86, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char P
|
||||
0x0B, 0x00, 0x00, 0x00, 0xE0, 0x07, 0x00, 0x18, 0x18, 0x00, 0x04, 0x20, 0x00, 0x02, 0x40, 0x00, 0x02, 0x40, 0x00, 0x02, 0x58, 0x00, 0x02, 0x70, 0x00, 0x04, 0x20, 0x00, 0x18, 0x78, 0x00, 0xE0, 0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Q
|
||||
0x0B, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x02, 0x01, 0x00, 0x02, 0x01, 0x00, 0x02, 0x01, 0x00, 0x02, 0x01, 0x00, 0x02, 0x01, 0x00, 0x02, 0x07, 0x00, 0x86, 0x0C, 0x00, 0x78, 0x30, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char R
|
||||
0x09, 0x00, 0x00, 0x00, 0x38, 0x18, 0x00, 0x44, 0x20, 0x00, 0x82, 0x40, 0x00, 0x82, 0x40, 0x00, 0x02, 0x41, 0x00, 0x02, 0x41, 0x00, 0x04, 0x22, 0x00, 0x18, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char S
|
||||
0x09, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char T
|
||||
0x0A, 0x00, 0x00, 0x00, 0xFE, 0x1F, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0xFE, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char U
|
||||
0x0B, 0x02, 0x00, 0x00, 0x1C, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x38, 0x00, 0x00, 0x40, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0x00, 0xE0, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char V
|
||||
0x0E, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1C, 0x00, 0xC0, 0x03, 0x00, 0x38, 0x00, 0x00, 0x06, 0x00, 0x00, 0x38, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x60, 0x00, 0xC0, 0x1F, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char W
|
||||
0x0A, 0x02, 0x40, 0x00, 0x04, 0x20, 0x00, 0x18, 0x18, 0x00, 0x20, 0x04, 0x00, 0xC0, 0x03, 0x00, 0xC0, 0x03, 0x00, 0x20, 0x04, 0x00, 0x18, 0x18, 0x00, 0x04, 0x20, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char X
|
||||
0x09, 0x02, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x30, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x7F, 0x00, 0xC0, 0x00, 0x00, 0x30, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Y
|
||||
0x09, 0x02, 0x60, 0x00, 0x02, 0x50, 0x00, 0x02, 0x4C, 0x00, 0x02, 0x42, 0x00, 0x82, 0x41, 0x00, 0x42, 0x40, 0x00, 0x32, 0x40, 0x00, 0x0A, 0x40, 0x00, 0x06, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Z
|
||||
0x04, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x07, 0x02, 0x00, 0x04, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char [
|
||||
0x04, 0x06, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char BackSlash
|
||||
0x03, 0x02, 0x00, 0x04, 0x02, 0x00, 0x04, 0xFE, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ]
|
||||
0x07, 0x80, 0x00, 0x00, 0x60, 0x00, 0x00, 0x18, 0x00, 0x00, 0x06, 0x00, 0x00, 0x18, 0x00, 0x00, 0x60, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ^
|
||||
0x09, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char _
|
||||
0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char `
|
||||
0x08, 0x00, 0x00, 0x00, 0x80, 0x3C, 0x00, 0x40, 0x66, 0x00, 0x20, 0x42, 0x00, 0x20, 0x42, 0x00, 0x20, 0x42, 0x00, 0x20, 0x31, 0x00, 0xC0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char a
|
||||
0x08, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x40, 0x20, 0x00, 0x20, 0x40, 0x00, 0x20, 0x40, 0x00, 0x20, 0x40, 0x00, 0x40, 0x20, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char b
|
||||
0x07, 0x80, 0x1F, 0x00, 0x40, 0x20, 0x00, 0x20, 0x40, 0x00, 0x20, 0x40, 0x00, 0x20, 0x40, 0x00, 0x60, 0x20, 0x00, 0x80, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char c
|
||||
0x08, 0x00, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x40, 0x20, 0x00, 0x20, 0x40, 0x00, 0x20, 0x40, 0x00, 0x20, 0x40, 0x00, 0x40, 0x20, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char d
|
||||
0x08, 0x00, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x40, 0x22, 0x00, 0x20, 0x42, 0x00, 0x20, 0x42, 0x00, 0x20, 0x42, 0x00, 0x40, 0x22, 0x00, 0x80, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char e
|
||||
0x05, 0x20, 0x00, 0x00, 0xFC, 0x7F, 0x00, 0x22, 0x00, 0x00, 0x22, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char f
|
||||
0x08, 0x00, 0x00, 0x00, 0x80, 0x1F, 0x03, 0x40, 0x20, 0x04, 0x20, 0x40, 0x04, 0x20, 0x40, 0x04, 0x20, 0x40, 0x04, 0x40, 0x20, 0x02, 0xE0, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char g
|
||||
0x08, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x60, 0x00, 0x00, 0xC0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char h
|
||||
0x02, 0x00, 0x00, 0x00, 0xE2, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char i
|
||||
0x02, 0x00, 0x00, 0x04, 0xE2, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char j
|
||||
0x07, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0x02, 0x00, 0x00, 0x03, 0x00, 0x80, 0x04, 0x00, 0x40, 0x18, 0x00, 0x20, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char k
|
||||
0x02, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char l
|
||||
0x0C, 0x00, 0x00, 0x00, 0xE0, 0x7F, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0xC0, 0x7F, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0xC0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char m
|
||||
0x08, 0x00, 0x00, 0x00, 0xE0, 0x7F, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x60, 0x00, 0x00, 0xC0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char n
|
||||
0x08, 0x00, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x40, 0x20, 0x00, 0x20, 0x40, 0x00, 0x20, 0x40, 0x00, 0x20, 0x40, 0x00, 0x40, 0x20, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char o
|
||||
0x08, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x07, 0x40, 0x20, 0x00, 0x20, 0x40, 0x00, 0x20, 0x40, 0x00, 0x20, 0x40, 0x00, 0x40, 0x20, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char p
|
||||
0x08, 0x00, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x40, 0x20, 0x00, 0x20, 0x40, 0x00, 0x20, 0x40, 0x00, 0x20, 0x40, 0x00, 0x40, 0x20, 0x00, 0xE0, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char q
|
||||
0x05, 0x00, 0x00, 0x00, 0xE0, 0x7F, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char r
|
||||
0x07, 0x00, 0x00, 0x00, 0xC0, 0x31, 0x00, 0x20, 0x42, 0x00, 0x20, 0x42, 0x00, 0x20, 0x44, 0x00, 0x20, 0x44, 0x00, 0xC0, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char s
|
||||
0x03, 0x20, 0x00, 0x00, 0xFC, 0x7F, 0x00, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char t
|
||||
0x08, 0x00, 0x00, 0x00, 0xE0, 0x3F, 0x00, 0x00, 0x60, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0xE0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char u
|
||||
0x07, 0x60, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x40, 0x00, 0x00, 0x3C, 0x00, 0x80, 0x03, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char v
|
||||
0x0B, 0x60, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x60, 0x00, 0x80, 0x1F, 0x00, 0x60, 0x00, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1C, 0x00, 0x80, 0x03, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char w
|
||||
0x07, 0x20, 0x40, 0x00, 0xC0, 0x30, 0x00, 0x00, 0x09, 0x00, 0x00, 0x06, 0x00, 0x00, 0x09, 0x00, 0xC0, 0x30, 0x00, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char x
|
||||
0x07, 0x60, 0x00, 0x04, 0x80, 0x03, 0x04, 0x00, 0x3C, 0x02, 0x00, 0xC0, 0x01, 0x00, 0x3C, 0x00, 0x80, 0x03, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char y
|
||||
0x07, 0x20, 0x60, 0x00, 0x20, 0x50, 0x00, 0x20, 0x48, 0x00, 0x20, 0x46, 0x00, 0x20, 0x41, 0x00, 0xA0, 0x40, 0x00, 0x60, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char z
|
||||
0x05, 0x00, 0x04, 0x00, 0x00, 0x0E, 0x00, 0xFC, 0xFB, 0x03, 0x02, 0x00, 0x04, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char {
|
||||
0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char |
|
||||
0x05, 0x02, 0x00, 0x04, 0x02, 0x00, 0x04, 0xFC, 0xFB, 0x03, 0x00, 0x0E, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char }
|
||||
0x08, 0x00, 0x01, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ~
|
||||
0x05, 0xFE, 0x3F, 0x00, 0x02, 0x20, 0x00, 0x02, 0x20, 0x00, 0x02, 0x20, 0x00, 0xFE, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Code for char
|
||||
};
|
||||
1038
touchscreengames/Core/Src/main.c
Normal file
1038
touchscreengames/Core/Src/main.c
Normal file
File diff suppressed because it is too large
Load Diff
92
touchscreengames/Core/Src/script.py
Normal file
92
touchscreengames/Core/Src/script.py
Normal file
@ -0,0 +1,92 @@
|
||||
#!/usr/bin/env python3
|
||||
import evdev
|
||||
from evdev import InputDevice, categorize, ecodes
|
||||
import glob
|
||||
import serial
|
||||
import time
|
||||
# Controller
|
||||
#device_candidates = glob.glob('/dev/input/by-id/usb-8BitDo*-event*')
|
||||
device_candidates = glob.glob('/dev/input/by-id/usb-8Bit*')
|
||||
if not device_candidates:
|
||||
print("Error: No matching 8BitDo input device found.")
|
||||
sys.exit(1)
|
||||
|
||||
device_path = device_candidates[0]
|
||||
#device_path = '/dev/input/by-id/usb-8BitDo_8BitDo_Ultimate_Controller_6fdf5bd817e4-event-joystick' #or just put it in
|
||||
|
||||
# UART
|
||||
serial_port = '/dev/ttyUSB0'
|
||||
baudrate = 115200
|
||||
|
||||
|
||||
device = InputDevice(device_path)
|
||||
print(f"Listening on {device.name} ({device_path})")
|
||||
|
||||
ser = serial.Serial(serial_port, baudrate, timeout=1)
|
||||
print(f"UART opened on {serial_port} at {baudrate} bps")
|
||||
|
||||
# diganostic time stamps
|
||||
def timestamp_ms():
|
||||
return int(time.time() * 1000)
|
||||
|
||||
import select
|
||||
|
||||
button_map = {
|
||||
'BTN_SOUTH': 'B',
|
||||
'BTN_EAST': 'A',
|
||||
'BTN_NORTH': 'Y',
|
||||
'BTN_WEST': 'X',
|
||||
}
|
||||
try:
|
||||
while True:
|
||||
r, w, x = select.select([device.fd], [], [], 0.005) # timeout = 10ms
|
||||
if device.fd in r:
|
||||
for event in device.read():
|
||||
ts = timestamp_ms()
|
||||
if event.type == ecodes.EV_KEY:
|
||||
key_event = categorize(event)
|
||||
k = key_event.keycode
|
||||
if isinstance(k, tuple):
|
||||
name = next((button_map[x] for x in k if x in button_map), str(k))
|
||||
else:
|
||||
name = button_map.get(k, k)
|
||||
|
||||
msg = f"KEY:{name}:{key_event.keystate}\n"
|
||||
ser.write(msg.encode('utf-8'))
|
||||
print(f"[{ts}] Sent: {msg.strip()}")
|
||||
|
||||
elif event.type == ecodes.EV_ABS:
|
||||
axis = ecodes.ABS.get(event.code, f"ABS_{event.code}")
|
||||
val = event.value
|
||||
if axis == 'ABS_HAT0Y' or axis == 'ABS_HAT0X':
|
||||
if axis == 'ABS_HAT0Y':
|
||||
if val == -1:
|
||||
ser.write(b"KEY:U:1\r\n")
|
||||
print(f"[{ts}] Sent: KEY:U:1:")
|
||||
elif val == 1:
|
||||
ser.write(b"KEY:D:1\r\n")
|
||||
print(f"[{ts}] Sent: KEY:D:1:")
|
||||
elif val == 0:
|
||||
#ser.write(b"KEY:U:0\r\nKEY:D:0\r\n")
|
||||
print(f"[{ts}] Sent: KEY:U:0\n[{ts}] Sent: KEY:D:0")
|
||||
elif axis == 'ABS_HAT0X':
|
||||
if val == -1:
|
||||
ser.write(b"KEY:L:1\r\n")
|
||||
print(f"[{ts}] Sent: KEY:L:1:")
|
||||
elif val == 1:
|
||||
ser.write(b"KEY:R:1\r\n")
|
||||
print(f"[{ts}] Sent: KEY:R:1:")
|
||||
elif val == 0:
|
||||
#ser.write(b"KEY:L:0\r\nKEY:R:0\r\n")
|
||||
print(f"[{ts}] Sent: KEY:L:0\n[{ts}] Sent: KEY:R:0")
|
||||
else:
|
||||
msg = f"ABS:{axis}:{event.value}:\r\n"
|
||||
ser.write(msg.encode('utf-8'))
|
||||
print(f"[{ts}] Sent: {msg.strip()}")
|
||||
|
||||
except KeyboardInterrupt:
|
||||
print("\nExiting...")
|
||||
|
||||
finally:
|
||||
ser.close()
|
||||
print("UART closed.")
|
||||
285
touchscreengames/Core/Src/snake.c
Normal file
285
touchscreengames/Core/Src/snake.c
Normal file
@ -0,0 +1,285 @@
|
||||
#include "main.h" // HAL, ILI9341, CMSIS-RTOS handles
|
||||
#include "cmsis_os.h" // RTOS types like osMutexAcquire, osMessageQueueGet
|
||||
#include "stdlib.h" // For rand()
|
||||
#include "stdio.h" // For sprintf()
|
||||
#include "snake.h" // Your own header for declarations
|
||||
#include "ILI9341_STM32_Driver.h"
|
||||
#include "fonts.h"
|
||||
|
||||
struct Snake snake; // define the global variable here
|
||||
#define FLASH_USER_ADDR ((uint32_t)0x0803F000) // Last 4 KB
|
||||
void Flash_Write_HighScore(uint32_t highscore) {
|
||||
HAL_FLASH_Unlock();
|
||||
|
||||
// Erase the sector first
|
||||
FLASH_EraseInitTypeDef EraseInitStruct;
|
||||
uint32_t PageError = 0;
|
||||
|
||||
EraseInitStruct.TypeErase = FLASH_TYPEERASE_SECTORS;
|
||||
EraseInitStruct.VoltageRange = FLASH_VOLTAGE_RANGE_3;
|
||||
EraseInitStruct.Sector = FLASH_SECTOR_5;
|
||||
EraseInitStruct.NbSectors = 1;
|
||||
|
||||
if (HAL_FLASHEx_Erase(&EraseInitStruct, &PageError) != HAL_OK) {
|
||||
// Handle error
|
||||
return;
|
||||
}
|
||||
|
||||
// Program the word
|
||||
if (HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, FLASH_USER_ADDR, highscore)
|
||||
!= HAL_OK) {
|
||||
// Handle error
|
||||
}
|
||||
|
||||
HAL_FLASH_Lock();
|
||||
}
|
||||
uint32_t Flash_Read_HighScore(void) {
|
||||
return *(uint32_t*) FLASH_USER_ADDR;
|
||||
}
|
||||
|
||||
|
||||
// Function to initialize game variables
|
||||
void GameInit() {
|
||||
|
||||
snake.gamesizeheight = 6;
|
||||
snake.gamesizewidth = 8;
|
||||
snake.isGameOver = 0;
|
||||
snake.Dir = RIGHT;
|
||||
snake.x = 1; //snake.gamesizewidth / 2;
|
||||
snake.y = 1; //snake.gamesizeheight / 2;
|
||||
snake.fruitCordX = rand() % snake.gamesizewidth;
|
||||
snake.fruitCordY = rand() % snake.gamesizeheight;
|
||||
snake.playerScore = 0;
|
||||
snake.TailLen = 0;
|
||||
snake.TailGrowPending = 0;
|
||||
if (osMutexAcquire(displayHandle, osWaitForever) == osOK) {
|
||||
ILI9341_FillScreen(WHITE);
|
||||
osMutexRelease(displayHandle);
|
||||
}
|
||||
}
|
||||
// Function for updating the game state
|
||||
void UpdateGame() {
|
||||
|
||||
char dir;
|
||||
// check the queue non blocking
|
||||
osStatus_t status = osMessageQueueGet(pressesHandle, &dir, NULL, 0); // 0 = no wait
|
||||
|
||||
if (status == osOK) {
|
||||
switch (dir) {
|
||||
case 'L':
|
||||
snake.Dir = LEFT;
|
||||
break;
|
||||
case 'R':
|
||||
snake.Dir = RIGHT;
|
||||
break;
|
||||
case 'U':
|
||||
snake.Dir = UP;
|
||||
break;
|
||||
case 'D':
|
||||
snake.Dir = DOWN;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!snake.TailGrowPending) {
|
||||
if (snake.TailLen > 0) {
|
||||
snake.TailPendingDeletionX = snake.TailX[snake.TailLen - 1];
|
||||
snake.TailPendingDeletionY = snake.TailY[snake.TailLen - 1];
|
||||
} else {
|
||||
snake.TailPendingDeletionX = snake.x;
|
||||
snake.TailPendingDeletionY = snake.y;
|
||||
}
|
||||
}
|
||||
snake.TailGrowPending = 0;
|
||||
// tail movement
|
||||
if (snake.TailLen > 0) {
|
||||
for (int i = snake.TailLen - 1; i > 0; i--) {
|
||||
snake.TailX[i] = snake.TailX[i - 1];
|
||||
snake.TailY[i] = snake.TailY[i - 1];
|
||||
}
|
||||
snake.TailX[0] = snake.x;
|
||||
snake.TailY[0] = snake.y;
|
||||
}
|
||||
|
||||
switch (snake.Dir) {
|
||||
case LEFT:
|
||||
snake.x--;
|
||||
break;
|
||||
case RIGHT:
|
||||
snake.x++;
|
||||
break;
|
||||
case UP:
|
||||
snake.y--;
|
||||
break;
|
||||
case DOWN:
|
||||
snake.y++;
|
||||
break;
|
||||
}
|
||||
|
||||
// Checks for snake's collision with the wall
|
||||
if (snake.x >= snake.gamesizewidth || snake.x < 0
|
||||
|| snake.y >= snake.gamesizeheight || snake.y < 0)
|
||||
snake.isGameOver = 1;
|
||||
|
||||
// Checks for collision with the tail (o)
|
||||
for (int i = 0; i < snake.TailLen; i++) {
|
||||
if (snake.TailX[i] == snake.x && snake.TailY[i] == snake.y)
|
||||
snake.isGameOver = 1;
|
||||
}
|
||||
|
||||
// Checks for snake's collision with the food (#)
|
||||
if (snake.x == snake.fruitCordX && snake.y == snake.fruitCordY) {
|
||||
snake.playerScore += 10;
|
||||
snake.fruitCordX = rand() % snake.gamesizewidth;
|
||||
snake.fruitCordY = rand() % snake.gamesizeheight;
|
||||
snake.TailLen++;
|
||||
snake.TailX[snake.TailLen - 1] = snake.x;
|
||||
snake.TailY[snake.TailLen - 1] = snake.y;
|
||||
snake.TailGrowPending = 1;
|
||||
//snake.TailPendingDeletionX = -1;
|
||||
}
|
||||
if (snake.isGameOver) {
|
||||
if (osMutexAcquire(displayHandle, osWaitForever) == osOK) {
|
||||
|
||||
if (Flash_Read_HighScore() > snake.playerScore) {
|
||||
char str[50];
|
||||
sprintf(str, "Highscore Remains: %lu", Flash_Read_HighScore());
|
||||
ILI9341_DrawText(str, FONT3, 320 / 2 - 70, 240 / 2, BLACK,
|
||||
WHITE);
|
||||
// ILI9341_WriteString(320 / 2 - 70, 240 / 2, str, Font_11x18,
|
||||
//ILI9341_MAGENTA, ILI9341_WHITE);
|
||||
} else {
|
||||
char str[50];
|
||||
sprintf(str, "New Highscore: %lu", snake.playerScore);
|
||||
//ILI9341_WriteString(320 / 2 - 70, 240 / 2, str, Font_11x18,
|
||||
//ILI9341_MAGENTA, ILI9341_WHITE);
|
||||
ILI9341_DrawText(str, FONT3, 320 / 2 - 70, 240 / 2, BLACK,
|
||||
WHITE);
|
||||
Flash_Write_HighScore(snake.playerScore);
|
||||
}
|
||||
osMutexRelease(displayHandle);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Function for creating the game board & rendering
|
||||
void GameRender() {
|
||||
|
||||
// Creating top walls
|
||||
// Creating side walls
|
||||
//ILI9341_FillRectangle(j, i, ILI9341_WIDTH/snake.gamesizewidth, ILI9341_HEIGHT/snake.gamesizeheight, ILI9341_YELLOW);
|
||||
//ILI9341_FillScreen(MAGENTA);
|
||||
for (int x = 0; x < snake.gamesizewidth; x++) {
|
||||
for (int y = 0; y <= snake.gamesizeheight; y++) {
|
||||
|
||||
if (x == snake.x && y == snake.y) {
|
||||
if (osMutexAcquire(displayHandle, osWaitForever) == osOK) {
|
||||
ILI9341_DrawFilledRectangleCoord(
|
||||
(x * ILI9341_SCREEN_WIDTH) / snake.gamesizewidth,
|
||||
(y * ILI9341_SCREEN_HEIGHT) / snake.gamesizeheight,
|
||||
(x * ILI9341_SCREEN_WIDTH) / snake.gamesizewidth
|
||||
+ ILI9341_SCREEN_WIDTH
|
||||
/ snake.gamesizewidth,
|
||||
(y * ILI9341_SCREEN_HEIGHT) / snake.gamesizeheight
|
||||
+ ILI9341_SCREEN_HEIGHT
|
||||
/ snake.gamesizeheight,
|
||||
BLACK);
|
||||
// ILI9341_FillRectangle(
|
||||
// (x * ILI9341_WIDTH) / snake.gamesizewidth,
|
||||
// (y * ILI9341_HEIGHT) / snake.gamesizeheight,
|
||||
// ILI9341_WIDTH / snake.gamesizewidth,
|
||||
// ILI9341_HEIGHT / snake.gamesizeheight,
|
||||
// ILI9341_BLACK);
|
||||
osMutexRelease(displayHandle);
|
||||
}
|
||||
}
|
||||
|
||||
//cout << "O";
|
||||
// Creating the sanke's food with '#'
|
||||
else if (x == snake.fruitCordX && y == snake.fruitCordY) {
|
||||
if (osMutexAcquire(displayHandle, osWaitForever) == osOK) {
|
||||
ILI9341_DrawFilledRectangleCoord(
|
||||
(x * ILI9341_SCREEN_WIDTH) / snake.gamesizewidth,
|
||||
(y * ILI9341_SCREEN_HEIGHT) / snake.gamesizeheight,
|
||||
(x * ILI9341_SCREEN_WIDTH) / snake.gamesizewidth
|
||||
+ ILI9341_SCREEN_WIDTH
|
||||
/ snake.gamesizewidth,
|
||||
(y * ILI9341_SCREEN_HEIGHT) / snake.gamesizeheight
|
||||
+ ILI9341_SCREEN_HEIGHT
|
||||
/ snake.gamesizeheight,
|
||||
RED);
|
||||
// ILI9341_FillRectangle(
|
||||
// (x * ILI9341_WIDTH) / snake.gamesizewidth,
|
||||
// (y * ILI9341_HEIGHT) / snake.gamesizeheight,
|
||||
// ILI9341_WIDTH / snake.gamesizewidth,
|
||||
// ILI9341_HEIGHT / snake.gamesizeheight, ILI9341_RED);
|
||||
osMutexRelease(displayHandle);
|
||||
}
|
||||
}
|
||||
|
||||
//cout << "#";
|
||||
|
||||
else if (snake.TailLen >= 0) {
|
||||
for (int i = 0; i < snake.TailLen; i++) {
|
||||
|
||||
if (snake.TailX[0] == x && snake.TailY[0] == y) {
|
||||
if (osMutexAcquire(displayHandle, osWaitForever)
|
||||
== osOK) {
|
||||
ILI9341_DrawFilledRectangleCoord(
|
||||
(x * ILI9341_SCREEN_WIDTH)
|
||||
/ snake.gamesizewidth,
|
||||
(y * ILI9341_SCREEN_HEIGHT)
|
||||
/ snake.gamesizeheight,
|
||||
(x * ILI9341_SCREEN_WIDTH)
|
||||
/ snake.gamesizewidth
|
||||
+ ILI9341_SCREEN_WIDTH
|
||||
/ snake.gamesizewidth,
|
||||
(y * ILI9341_SCREEN_HEIGHT)
|
||||
/ snake.gamesizeheight
|
||||
+ ILI9341_SCREEN_HEIGHT
|
||||
/ snake.gamesizeheight,
|
||||
GREEN);
|
||||
// ILI9341_FillRectangle(
|
||||
// (x * ILI9341_WIDTH) / snake.gamesizewidth,
|
||||
// (y * ILI9341_HEIGHT) / snake.gamesizeheight,
|
||||
// ILI9341_WIDTH / snake.gamesizewidth,
|
||||
// ILI9341_HEIGHT / snake.gamesizeheight,
|
||||
// ILI9341_GREEN);
|
||||
osMutexRelease(displayHandle);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if (snake.TailPendingDeletionX == x
|
||||
&& snake.TailPendingDeletionY == y) {
|
||||
|
||||
if (osMutexAcquire(displayHandle, osWaitForever) == osOK) {
|
||||
ILI9341_DrawFilledRectangleCoord(
|
||||
(x * ILI9341_SCREEN_WIDTH) / snake.gamesizewidth,
|
||||
(y * ILI9341_SCREEN_HEIGHT) / snake.gamesizeheight,
|
||||
(x * ILI9341_SCREEN_WIDTH) / snake.gamesizewidth
|
||||
+ ILI9341_SCREEN_WIDTH
|
||||
/ snake.gamesizewidth,
|
||||
(y * ILI9341_SCREEN_HEIGHT) / snake.gamesizeheight
|
||||
+ ILI9341_SCREEN_HEIGHT
|
||||
/ snake.gamesizeheight,
|
||||
WHITE);
|
||||
// ILI9341_FillRectangle(
|
||||
// (x * ILI9341_WIDTH) / snake.gamesizewidth,
|
||||
// (y * ILI9341_HEIGHT) / snake.gamesizeheight,
|
||||
// ILI9341_WIDTH / snake.gamesizewidth,
|
||||
// ILI9341_HEIGHT / snake.gamesizeheight,
|
||||
// ILI9341_WHITE);
|
||||
osMutexRelease(displayHandle);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
int isGameOver(){
|
||||
return snake.isGameOver;
|
||||
}
|
||||
54
touchscreengames/Core/Src/snake.h
Normal file
54
touchscreengames/Core/Src/snake.h
Normal file
@ -0,0 +1,54 @@
|
||||
/*
|
||||
* snake.h
|
||||
*
|
||||
* Created on: Jul 10, 2025
|
||||
* Author: user
|
||||
*/
|
||||
|
||||
#ifndef SRC_SNAKE_H_
|
||||
#define SRC_SNAKE_H_
|
||||
|
||||
|
||||
#include "main.h"
|
||||
extern osMutexId_t displayHandle;
|
||||
extern osMessageQueueId_t pressesHandle;
|
||||
// Flash storage address for highscore
|
||||
#define FLASH_USER_ADDR ((uint32_t)0x0803F000) // Adjusted to your sector layout
|
||||
|
||||
// Highscore flash functions
|
||||
void Flash_Write_HighScore(uint32_t highscore);
|
||||
uint32_t Flash_Read_HighScore(void);
|
||||
|
||||
// Snake movement direction enum
|
||||
enum Direction {
|
||||
STOP = 0, LEFT, RIGHT, UP, DOWN
|
||||
};
|
||||
|
||||
// Snake structure definition
|
||||
struct Snake {
|
||||
int x, y;
|
||||
int fruitCordX, fruitCordY;
|
||||
int playerScore;
|
||||
int TailX[100], TailY[100];
|
||||
int TailLen;
|
||||
enum Direction Dir;
|
||||
int gamesizewidth;
|
||||
int gamesizeheight;
|
||||
int TailPendingDeletionX;
|
||||
int TailPendingDeletionY;
|
||||
int TailGrowPending;
|
||||
int isGameOver;
|
||||
};
|
||||
|
||||
// External instance of the snake object
|
||||
extern struct Snake snake;
|
||||
|
||||
|
||||
// Game functions
|
||||
void GameInit(void);
|
||||
void UpdateGame(void);
|
||||
void GameRender(void);
|
||||
int isGameOver();
|
||||
|
||||
|
||||
#endif /* SRC_SNAKE_H_ */
|
||||
237
touchscreengames/Core/Src/stm32f4xx_it.c
Normal file
237
touchscreengames/Core/Src/stm32f4xx_it.c
Normal file
@ -0,0 +1,237 @@
|
||||
/* USER CODE BEGIN Header */
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file stm32f4xx_it.c
|
||||
* @brief Interrupt Service Routines.
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2025 STMicroelectronics.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "main.h"
|
||||
#include "stm32f4xx_it.h"
|
||||
/* Private includes ----------------------------------------------------------*/
|
||||
/* USER CODE BEGIN Includes */
|
||||
/* USER CODE END Includes */
|
||||
|
||||
/* Private typedef -----------------------------------------------------------*/
|
||||
/* USER CODE BEGIN TD */
|
||||
|
||||
/* USER CODE END TD */
|
||||
|
||||
/* Private define ------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN PD */
|
||||
|
||||
/* USER CODE END PD */
|
||||
|
||||
/* Private macro -------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN PM */
|
||||
|
||||
/* USER CODE END PM */
|
||||
|
||||
/* Private variables ---------------------------------------------------------*/
|
||||
/* USER CODE BEGIN PV */
|
||||
|
||||
/* USER CODE END PV */
|
||||
|
||||
/* Private function prototypes -----------------------------------------------*/
|
||||
/* USER CODE BEGIN PFP */
|
||||
|
||||
/* USER CODE END PFP */
|
||||
|
||||
/* Private user code ---------------------------------------------------------*/
|
||||
/* USER CODE BEGIN 0 */
|
||||
|
||||
/* USER CODE END 0 */
|
||||
|
||||
/* External variables --------------------------------------------------------*/
|
||||
extern DMA_HandleTypeDef hdma_spi1_rx;
|
||||
extern DMA_HandleTypeDef hdma_spi1_tx;
|
||||
extern SPI_HandleTypeDef hspi1;
|
||||
extern UART_HandleTypeDef huart6;
|
||||
extern TIM_HandleTypeDef htim3;
|
||||
|
||||
/* USER CODE BEGIN EV */
|
||||
|
||||
/* USER CODE END EV */
|
||||
|
||||
/******************************************************************************/
|
||||
/* Cortex-M4 Processor Interruption and Exception Handlers */
|
||||
/******************************************************************************/
|
||||
/**
|
||||
* @brief This function handles Non maskable interrupt.
|
||||
*/
|
||||
void NMI_Handler(void)
|
||||
{
|
||||
/* USER CODE BEGIN NonMaskableInt_IRQn 0 */
|
||||
|
||||
/* USER CODE END NonMaskableInt_IRQn 0 */
|
||||
/* USER CODE BEGIN NonMaskableInt_IRQn 1 */
|
||||
while (1) {
|
||||
}
|
||||
/* USER CODE END NonMaskableInt_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles Hard fault interrupt.
|
||||
*/
|
||||
void HardFault_Handler(void)
|
||||
{
|
||||
/* USER CODE BEGIN HardFault_IRQn 0 */
|
||||
|
||||
/* USER CODE END HardFault_IRQn 0 */
|
||||
while (1)
|
||||
{
|
||||
/* USER CODE BEGIN W1_HardFault_IRQn 0 */
|
||||
/* USER CODE END W1_HardFault_IRQn 0 */
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles Memory management fault.
|
||||
*/
|
||||
void MemManage_Handler(void)
|
||||
{
|
||||
/* USER CODE BEGIN MemoryManagement_IRQn 0 */
|
||||
|
||||
/* USER CODE END MemoryManagement_IRQn 0 */
|
||||
while (1)
|
||||
{
|
||||
/* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */
|
||||
/* USER CODE END W1_MemoryManagement_IRQn 0 */
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles Pre-fetch fault, memory access fault.
|
||||
*/
|
||||
void BusFault_Handler(void)
|
||||
{
|
||||
/* USER CODE BEGIN BusFault_IRQn 0 */
|
||||
|
||||
/* USER CODE END BusFault_IRQn 0 */
|
||||
while (1)
|
||||
{
|
||||
/* USER CODE BEGIN W1_BusFault_IRQn 0 */
|
||||
/* USER CODE END W1_BusFault_IRQn 0 */
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles Undefined instruction or illegal state.
|
||||
*/
|
||||
void UsageFault_Handler(void)
|
||||
{
|
||||
/* USER CODE BEGIN UsageFault_IRQn 0 */
|
||||
|
||||
/* USER CODE END UsageFault_IRQn 0 */
|
||||
while (1)
|
||||
{
|
||||
/* USER CODE BEGIN W1_UsageFault_IRQn 0 */
|
||||
/* USER CODE END W1_UsageFault_IRQn 0 */
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles Debug monitor.
|
||||
*/
|
||||
void DebugMon_Handler(void)
|
||||
{
|
||||
/* USER CODE BEGIN DebugMonitor_IRQn 0 */
|
||||
|
||||
/* USER CODE END DebugMonitor_IRQn 0 */
|
||||
/* USER CODE BEGIN DebugMonitor_IRQn 1 */
|
||||
|
||||
/* USER CODE END DebugMonitor_IRQn 1 */
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
/* STM32F4xx Peripheral Interrupt Handlers */
|
||||
/* Add here the Interrupt Handlers for the used peripherals. */
|
||||
/* For the available peripheral interrupt handler names, */
|
||||
/* please refer to the startup file (startup_stm32f4xx.s). */
|
||||
/******************************************************************************/
|
||||
|
||||
/**
|
||||
* @brief This function handles TIM3 global interrupt.
|
||||
*/
|
||||
void TIM3_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN TIM3_IRQn 0 */
|
||||
|
||||
/* USER CODE END TIM3_IRQn 0 */
|
||||
HAL_TIM_IRQHandler(&htim3);
|
||||
/* USER CODE BEGIN TIM3_IRQn 1 */
|
||||
|
||||
/* USER CODE END TIM3_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles SPI1 global interrupt.
|
||||
*/
|
||||
void SPI1_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN SPI1_IRQn 0 */
|
||||
|
||||
/* USER CODE END SPI1_IRQn 0 */
|
||||
HAL_SPI_IRQHandler(&hspi1);
|
||||
/* USER CODE BEGIN SPI1_IRQn 1 */
|
||||
|
||||
/* USER CODE END SPI1_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles DMA2 stream0 global interrupt.
|
||||
*/
|
||||
void DMA2_Stream0_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN DMA2_Stream0_IRQn 0 */
|
||||
|
||||
/* USER CODE END DMA2_Stream0_IRQn 0 */
|
||||
HAL_DMA_IRQHandler(&hdma_spi1_rx);
|
||||
/* USER CODE BEGIN DMA2_Stream0_IRQn 1 */
|
||||
|
||||
/* USER CODE END DMA2_Stream0_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles DMA2 stream3 global interrupt.
|
||||
*/
|
||||
void DMA2_Stream3_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN DMA2_Stream3_IRQn 0 */
|
||||
|
||||
/* USER CODE END DMA2_Stream3_IRQn 0 */
|
||||
HAL_DMA_IRQHandler(&hdma_spi1_tx);
|
||||
/* USER CODE BEGIN DMA2_Stream3_IRQn 1 */
|
||||
|
||||
/* USER CODE END DMA2_Stream3_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles USART6 global interrupt.
|
||||
*/
|
||||
void USART6_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN USART6_IRQn 0 */
|
||||
|
||||
/* USER CODE END USART6_IRQn 0 */
|
||||
HAL_UART_IRQHandler(&huart6);
|
||||
/* USER CODE BEGIN USART6_IRQn 1 */
|
||||
//UART_CALLBACK();
|
||||
/* USER CODE END USART6_IRQn 1 */
|
||||
}
|
||||
|
||||
/* USER CODE BEGIN 1 */
|
||||
|
||||
/* USER CODE END 1 */
|
||||
Loading…
Reference in New Issue
Block a user