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