всё работает
+экранчик
This commit is contained in:
52
Core/Inc/i2c.h
Normal file
52
Core/Inc/i2c.h
Normal file
@@ -0,0 +1,52 @@
|
||||
/* USER CODE BEGIN Header */
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file i2c.h
|
||||
* @brief This file contains all the function prototypes for
|
||||
* the i2c.c file
|
||||
******************************************************************************
|
||||
* @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 __I2C_H__
|
||||
#define __I2C_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "main.h"
|
||||
|
||||
/* USER CODE BEGIN Includes */
|
||||
|
||||
/* USER CODE END Includes */
|
||||
|
||||
extern I2C_HandleTypeDef hi2c1;
|
||||
|
||||
/* USER CODE BEGIN Private defines */
|
||||
|
||||
/* USER CODE END Private defines */
|
||||
|
||||
void MX_I2C1_Init(void);
|
||||
|
||||
/* USER CODE BEGIN Prototypes */
|
||||
|
||||
/* USER CODE END Prototypes */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __I2C_H__ */
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
/*#define HAL_HRTIM_MODULE_ENABLED */
|
||||
/*#define HAL_IRDA_MODULE_ENABLED */
|
||||
/*#define HAL_IWDG_MODULE_ENABLED */
|
||||
/*#define HAL_I2C_MODULE_ENABLED */
|
||||
#define HAL_I2C_MODULE_ENABLED
|
||||
/*#define HAL_I2S_MODULE_ENABLED */
|
||||
/*#define HAL_LPTIM_MODULE_ENABLED */
|
||||
/*#define HAL_NAND_MODULE_ENABLED */
|
||||
|
||||
135
Core/OLED_Driver/font_tahoma_15_prop.h
Normal file
135
Core/OLED_Driver/font_tahoma_15_prop.h
Normal file
@@ -0,0 +1,135 @@
|
||||
// Название шрифта Tahoma 12
|
||||
// Автор шрифта Anonymous
|
||||
// Дата и время генерации 24.12.2025 13:17:15
|
||||
// Сгенерировано matrixFont v2.1.2.84
|
||||
// Кодовая страница ANSI (ASCII 7-битная)
|
||||
// Riva Lab :: riva-lab.gitlab.io
|
||||
|
||||
#ifndef FONT_TAHOMA_15_H
|
||||
#define FONT_TAHOMA_15_H
|
||||
|
||||
#ifndef FONT_TYPE_MONOSPACED
|
||||
#define FONT_TYPE_MONOSPACED 0
|
||||
#endif
|
||||
|
||||
#ifndef FONT_TYPE_PROPORTIONAL
|
||||
#define FONT_TYPE_PROPORTIONAL 1
|
||||
#endif
|
||||
|
||||
#define FONT_TAHOMA_15_LENGTH 96
|
||||
#define FONT_TAHOMA_15_START_CHAR 32
|
||||
#define FONT_TAHOMA_15_CHAR_WIDTH 14
|
||||
#define FONT_TAHOMA_15_CHAR_HEIGHT 16
|
||||
#define FONT_TAHOMA_15_FONT_TYPE (FONT_TYPE_PROPORTIONAL)
|
||||
#define FONT_TAHOMA_15_ARRAY_LENGTH (FONT_TAHOMA_15_LENGTH * (1 + FONT_TAHOMA_15_CHAR_WIDTH * 2))
|
||||
|
||||
const unsigned char font_tahoma_15[FONT_TAHOMA_15_ARRAY_LENGTH] =
|
||||
{
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 32 < >
|
||||
1, /*N*/ 0xFE, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 33 <!>
|
||||
4, /*N*/ 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 34 <">
|
||||
11, /*N*/ 0x00, 0x02, 0x10, 0x1A, 0x90, 0x07, 0x78, 0x02, 0x16, 0x02, 0x10, 0x02, 0x10, 0x1A, 0x90, 0x07, 0x78, 0x02, 0x16, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 35 <#>
|
||||
7, /*N*/ 0x70, 0x08, 0x88, 0x10, 0x88, 0x10, 0xFE, 0xFF, 0x08, 0x11, 0x08, 0x11, 0x10, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 36 <$>
|
||||
14, /*N*/ 0x7C, 0x00, 0x82, 0x00, 0x82, 0x00, 0x82, 0x10, 0x82, 0x0C, 0x7C, 0x02, 0x80, 0x01, 0x60, 0x00, 0x90, 0x0F, 0x4C, 0x10, 0x42, 0x10, 0x40, 0x10, 0x40, 0x10, 0x80, 0x0F, // Символ 37 <%>
|
||||
10, /*N*/ 0x00, 0x07, 0x9C, 0x08, 0x62, 0x10, 0x42, 0x10, 0xC2, 0x10, 0x22, 0x11, 0x1C, 0x0A, 0x00, 0x06, 0xC0, 0x09, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 38 <&>
|
||||
1, /*N*/ 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 39 <'>
|
||||
4, /*N*/ 0xF0, 0x0F, 0x0C, 0x30, 0x02, 0x40, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 40 <(>
|
||||
4, /*N*/ 0x01, 0x80, 0x02, 0x40, 0x0C, 0x30, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 41 <)>
|
||||
7, /*N*/ 0x22, 0x00, 0x14, 0x00, 0x08, 0x00, 0x7F, 0x00, 0x08, 0x00, 0x14, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 42 <*>
|
||||
9, /*N*/ 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0xF8, 0x0F, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 43 <+>
|
||||
2, /*N*/ 0x00, 0xC0, 0x00, 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, // Символ 44 <,>
|
||||
5, /*N*/ 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 45 <->
|
||||
1, /*N*/ 0x00, 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, 0x00, // Символ 46 <.>
|
||||
6, /*N*/ 0x00, 0xC0, 0x00, 0x38, 0x00, 0x07, 0xE0, 0x00, 0x1C, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 47 </>
|
||||
|
||||
// Digits / Цифры
|
||||
8, /*N*/ 0xF8, 0x07, 0x04, 0x08, 0x02, 0x10, 0x02, 0x10, 0x02, 0x10, 0x02, 0x10, 0x04, 0x08, 0xF8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 48 <0>
|
||||
5, /*N*/ 0x08, 0x10, 0x08, 0x10, 0xFE, 0x1F, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 49 <1>
|
||||
7, /*N*/ 0x04, 0x18, 0x02, 0x14, 0x02, 0x12, 0x02, 0x11, 0x82, 0x10, 0x44, 0x10, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 50 <2>
|
||||
7, /*N*/ 0x04, 0x08, 0x02, 0x10, 0x42, 0x10, 0x42, 0x10, 0x42, 0x10, 0xA4, 0x08, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 51 <3>
|
||||
8, /*N*/ 0x80, 0x01, 0x40, 0x01, 0x20, 0x01, 0x10, 0x01, 0x08, 0x01, 0x04, 0x01, 0xFE, 0x1F, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 52 <4>
|
||||
7, /*N*/ 0x3E, 0x08, 0x22, 0x10, 0x22, 0x10, 0x22, 0x10, 0x22, 0x10, 0x42, 0x08, 0x82, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 53 <5>
|
||||
8, /*N*/ 0xF0, 0x07, 0x48, 0x08, 0x24, 0x10, 0x22, 0x10, 0x22, 0x10, 0x22, 0x10, 0x42, 0x08, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 54 <6>
|
||||
7, /*N*/ 0x02, 0x00, 0x02, 0x18, 0x02, 0x06, 0x82, 0x01, 0x62, 0x00, 0x1A, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 55 <7>
|
||||
8, /*N*/ 0x18, 0x07, 0xA4, 0x08, 0x42, 0x10, 0x42, 0x10, 0x42, 0x10, 0x42, 0x10, 0xA4, 0x08, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 56 <8>
|
||||
8, /*N*/ 0x78, 0x00, 0x84, 0x10, 0x02, 0x11, 0x02, 0x11, 0x02, 0x11, 0x02, 0x09, 0x84, 0x04, 0xF8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 57 <9>
|
||||
|
||||
1, /*N*/ 0x30, 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, 0x00, // Символ 58 <:>
|
||||
2, /*N*/ 0x00, 0xC0, 0x30, 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, // Символ 59 <;>
|
||||
8, /*N*/ 0x80, 0x00, 0x40, 0x01, 0x40, 0x01, 0x20, 0x02, 0x20, 0x02, 0x10, 0x04, 0x10, 0x04, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 60 <<>
|
||||
9, /*N*/ 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 61 <=>
|
||||
8, /*N*/ 0x08, 0x08, 0x10, 0x04, 0x10, 0x04, 0x20, 0x02, 0x20, 0x02, 0x40, 0x01, 0x40, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 62 <>>
|
||||
6, /*N*/ 0x04, 0x00, 0x02, 0x00, 0x02, 0x1B, 0x82, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 63 <?>
|
||||
13, /*N*/ 0xE0, 0x07, 0x18, 0x18, 0x04, 0x20, 0xC4, 0x23, 0x22, 0x44, 0x12, 0x48, 0x12, 0x48, 0x12, 0x48, 0x12, 0x44, 0xF4, 0x0F, 0x04, 0x08, 0x18, 0x08, 0xE0, 0x07, 0x00, 0x00, // Символ 64 <@>
|
||||
|
||||
// Roman Capitals / Латиница, прописные
|
||||
10, /*N*/ 0x00, 0x18, 0x00, 0x07, 0xE0, 0x01, 0x1C, 0x01, 0x02, 0x01, 0x02, 0x01, 0x1C, 0x01, 0xE0, 0x01, 0x00, 0x07, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 65 <A>
|
||||
8, /*N*/ 0xFE, 0x1F, 0x42, 0x10, 0x42, 0x10, 0x42, 0x10, 0x42, 0x10, 0x62, 0x10, 0x9C, 0x08, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 66 <B>
|
||||
9, /*N*/ 0xF0, 0x03, 0x0C, 0x0C, 0x04, 0x08, 0x02, 0x10, 0x02, 0x10, 0x02, 0x10, 0x02, 0x10, 0x02, 0x10, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 67 <C>
|
||||
10, /*N*/ 0xFE, 0x1F, 0x02, 0x10, 0x02, 0x10, 0x02, 0x10, 0x02, 0x10, 0x02, 0x10, 0x04, 0x08, 0x04, 0x08, 0x18, 0x06, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 68 <D>
|
||||
8, /*N*/ 0xFE, 0x1F, 0x42, 0x10, 0x42, 0x10, 0x42, 0x10, 0x42, 0x10, 0x42, 0x10, 0x42, 0x10, 0x42, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 69 <E>
|
||||
7, /*N*/ 0xFE, 0x1F, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 70 <F>
|
||||
10, /*N*/ 0xF0, 0x03, 0x0C, 0x0C, 0x04, 0x08, 0x02, 0x10, 0x02, 0x10, 0x82, 0x10, 0x82, 0x10, 0x82, 0x10, 0x82, 0x10, 0x84, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 71 <G>
|
||||
10, /*N*/ 0xFE, 0x1F, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0xFE, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 72 <H>
|
||||
3, /*N*/ 0x02, 0x10, 0xFE, 0x1F, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 73 <I>
|
||||
6, /*N*/ 0x00, 0x10, 0x00, 0x10, 0x02, 0x10, 0x02, 0x10, 0x02, 0x10, 0xFE, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 74 <J>
|
||||
8, /*N*/ 0xFE, 0x1F, 0x80, 0x00, 0xC0, 0x00, 0x20, 0x01, 0x10, 0x02, 0x08, 0x04, 0x04, 0x08, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 75 <K>
|
||||
7, /*N*/ 0xFE, 0x1F, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 76 <L>
|
||||
11, /*N*/ 0xFE, 0x1F, 0x06, 0x00, 0x18, 0x00, 0x60, 0x00, 0x80, 0x01, 0x00, 0x02, 0x80, 0x01, 0x60, 0x00, 0x18, 0x00, 0x06, 0x00, 0xFE, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 77 <M>
|
||||
10, /*N*/ 0xFE, 0x1F, 0x04, 0x00, 0x08, 0x00, 0x30, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x03, 0x00, 0x04, 0x00, 0x08, 0xFE, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 78 <N>
|
||||
11, /*N*/ 0xF0, 0x03, 0x0C, 0x0C, 0x04, 0x08, 0x02, 0x10, 0x02, 0x10, 0x02, 0x10, 0x02, 0x10, 0x02, 0x10, 0x04, 0x08, 0x0C, 0x0C, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 79 <O>
|
||||
8, /*N*/ 0xFE, 0x1F, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x84, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 80 <P>
|
||||
11, /*N*/ 0xF0, 0x03, 0x0C, 0x0C, 0x04, 0x08, 0x02, 0x10, 0x02, 0x10, 0x02, 0x10, 0x02, 0x70, 0x02, 0x90, 0x04, 0x88, 0x0C, 0x8C, 0xF0, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 81 <Q>
|
||||
9, /*N*/ 0xFE, 0x1F, 0x82, 0x00, 0x82, 0x00, 0x82, 0x00, 0x82, 0x01, 0x42, 0x02, 0x3C, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 82 <R>
|
||||
8, /*N*/ 0x38, 0x08, 0x44, 0x10, 0x42, 0x10, 0x42, 0x10, 0x82, 0x10, 0x82, 0x10, 0x82, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 83 <S>
|
||||
9, /*N*/ 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0xFE, 0x1F, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 84 <T>
|
||||
10, /*N*/ 0xFE, 0x07, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x08, 0xFE, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 85 <U>
|
||||
9, /*N*/ 0x06, 0x00, 0x38, 0x00, 0xC0, 0x01, 0x00, 0x0E, 0x00, 0x10, 0x00, 0x0E, 0xC0, 0x01, 0x38, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 86 <V>
|
||||
13, /*N*/ 0x06, 0x00, 0xF8, 0x00, 0x00, 0x0F, 0x00, 0x18, 0x80, 0x07, 0x7C, 0x00, 0x02, 0x00, 0x7C, 0x00, 0x80, 0x07, 0x00, 0x18, 0x00, 0x0F, 0xF8, 0x00, 0x06, 0x00, 0x00, 0x00, // Символ 87 <W>
|
||||
8, /*N*/ 0x02, 0x10, 0x0C, 0x0C, 0x10, 0x02, 0xE0, 0x01, 0xE0, 0x01, 0x10, 0x02, 0x0C, 0x0C, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 88 <X>
|
||||
9, /*N*/ 0x02, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x60, 0x00, 0x80, 0x1F, 0x60, 0x00, 0x10, 0x00, 0x0C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 89 <Y>
|
||||
8, /*N*/ 0x02, 0x18, 0x02, 0x14, 0x02, 0x13, 0x82, 0x10, 0x42, 0x10, 0x32, 0x10, 0x0A, 0x10, 0x06, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 90 <Z>
|
||||
|
||||
4, /*N*/ 0xFF, 0xFF, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 91 <[>
|
||||
6, /*N*/ 0x03, 0x00, 0x1C, 0x00, 0xE0, 0x00, 0x00, 0x07, 0x00, 0x38, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 92 <\>
|
||||
4, /*N*/ 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 93 <]>
|
||||
10, /*N*/ 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x0C, 0x00, 0x02, 0x00, 0x02, 0x00, 0x0C, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 94 <^>
|
||||
9, /*N*/ 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 95 <_>
|
||||
2, /*N*/ 0x03, 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, // Символ 96 <`>
|
||||
|
||||
// Roman Smalls / Латиница, строчные
|
||||
7, /*N*/ 0x00, 0x0E, 0x20, 0x11, 0x90, 0x10, 0x90, 0x10, 0x90, 0x10, 0x90, 0x08, 0xE0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 97 <a>
|
||||
8, /*N*/ 0xFF, 0x1F, 0x20, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x20, 0x08, 0xC0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 98 <b>
|
||||
6, /*N*/ 0xC0, 0x07, 0x20, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x20, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 99 <c>
|
||||
8, /*N*/ 0xC0, 0x07, 0x20, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 100 <d>
|
||||
7, /*N*/ 0xC0, 0x07, 0x20, 0x09, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x20, 0x11, 0xC0, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 101 <e>
|
||||
5, /*N*/ 0x10, 0x00, 0xFE, 0x1F, 0x11, 0x00, 0x11, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 102 <f>
|
||||
8, /*N*/ 0xC0, 0x07, 0x20, 0x48, 0x10, 0x90, 0x10, 0x90, 0x10, 0x90, 0x10, 0x90, 0x10, 0x48, 0xF0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 103 <g>
|
||||
8, /*N*/ 0xFF, 0x1F, 0x20, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 104 <h>
|
||||
1, /*N*/ 0xF6, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 105 <i>
|
||||
4, /*N*/ 0x00, 0x80, 0x10, 0x80, 0x10, 0x80, 0xF6, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 106 <j>
|
||||
7, /*N*/ 0xFF, 0x1F, 0x00, 0x01, 0x80, 0x01, 0x40, 0x02, 0x20, 0x04, 0x10, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 107 <k>
|
||||
1, /*N*/ 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 108 <l>
|
||||
11, /*N*/ 0xF0, 0x1F, 0x20, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0xE0, 0x1F, 0x20, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0xE0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 109 <m>
|
||||
8, /*N*/ 0xF0, 0x1F, 0x20, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 110 <n>
|
||||
8, /*N*/ 0xC0, 0x07, 0x20, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x20, 0x08, 0xC0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 111 <o>
|
||||
8, /*N*/ 0xF0, 0xFF, 0x20, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x20, 0x08, 0xC0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 112 <p>
|
||||
8, /*N*/ 0xC0, 0x07, 0x20, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0xF0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 113 <q>
|
||||
5, /*N*/ 0xF0, 0x1F, 0x20, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 114 <r>
|
||||
6, /*N*/ 0xE0, 0x08, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0x20, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 115 <s>
|
||||
5, /*N*/ 0x10, 0x00, 0xFE, 0x0F, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 116 <t>
|
||||
8, /*N*/ 0xF0, 0x07, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x08, 0xF0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 117 <u>
|
||||
7, /*N*/ 0x30, 0x00, 0xC0, 0x01, 0x00, 0x06, 0x00, 0x18, 0x00, 0x06, 0xC0, 0x01, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 118 <v>
|
||||
11, /*N*/ 0x30, 0x00, 0xC0, 0x03, 0x00, 0x1C, 0x00, 0x06, 0xC0, 0x01, 0x30, 0x00, 0xC0, 0x01, 0x00, 0x06, 0x00, 0x1C, 0xC0, 0x03, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 119 <w>
|
||||
7, /*N*/ 0x10, 0x10, 0x20, 0x08, 0xC0, 0x06, 0x00, 0x01, 0xC0, 0x06, 0x20, 0x08, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 120 <x>
|
||||
7, /*N*/ 0x30, 0x00, 0xC0, 0x01, 0x00, 0xE6, 0x00, 0x18, 0x00, 0x06, 0xC0, 0x01, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 121 <y>
|
||||
6, /*N*/ 0x10, 0x18, 0x10, 0x14, 0x10, 0x13, 0x90, 0x10, 0x50, 0x10, 0x30, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 122 <z>
|
||||
|
||||
7, /*N*/ 0x80, 0x00, 0x80, 0x00, 0x40, 0x01, 0x3E, 0x7E, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 123 <{>
|
||||
1, /*N*/ 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 124 <|>
|
||||
7, /*N*/ 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x3E, 0x7E, 0x40, 0x01, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 125 <}>
|
||||
10, /*N*/ 0x00, 0x03, 0x80, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 126 <~>
|
||||
4, /*N*/ 0xFE, 0x0F, 0x02, 0x08, 0x02, 0x08, 0xFE, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Символ 127 <DELETE>
|
||||
};
|
||||
|
||||
#endif // FONT_TAHOMA_15_H
|
||||
267
Core/OLED_Driver/font_tahoma_8_prop.h
Normal file
267
Core/OLED_Driver/font_tahoma_8_prop.h
Normal file
@@ -0,0 +1,267 @@
|
||||
// Название шрифта Tahoma 8
|
||||
// Автор шрифта ITS-PC / User
|
||||
// Дата и время генерации Пт 29.09.23 3:23:12
|
||||
// Сгенерировано matrixFont v1.2.0.55
|
||||
// Кодовая страница 1251 (ANSI - кириллица)
|
||||
// https://gitlab.com/riva-lab/matrixFont
|
||||
|
||||
#ifndef FONT_TAHOMA_8_H
|
||||
#define FONT_TAHOMA_8_H
|
||||
|
||||
#ifndef FONT_TYPE_MONOSPACED
|
||||
#define FONT_TYPE_MONOSPACED 0
|
||||
#endif
|
||||
|
||||
#ifndef FONT_TYPE_PROPORTIONAL
|
||||
#define FONT_TYPE_PROPORTIONAL 1
|
||||
#endif
|
||||
|
||||
#define FONT_TAHOMA_8_LENGTH 224
|
||||
#define FONT_TAHOMA_8_START_CHAR 32
|
||||
#define FONT_TAHOMA_8_CHAR_WIDTH 8
|
||||
#define FONT_TAHOMA_8_CHAR_HEIGHT 10
|
||||
#define FONT_TAHOMA_8_FONT_TYPE (FONT_TYPE_PROPORTIONAL)
|
||||
#define FONT_TAHOMA_8_ARRAY_LENGTH (FONT_TAHOMA_8_LENGTH * (1 + FONT_TAHOMA_8_CHAR_HEIGHT))
|
||||
|
||||
const unsigned char font_tahoma_8[FONT_TAHOMA_8_ARRAY_LENGTH] =
|
||||
{
|
||||
4, /*N*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 32 < >
|
||||
2, /*N*/ 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x40, 0x00, // Символ 33 <!>
|
||||
4, /*N*/ 0x50, 0x50, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 34 <">
|
||||
8, /*N*/ 0x00, 0x0A, 0x0A, 0x3F, 0x14, 0x14, 0x7E, 0x28, 0x28, 0x00, // Символ 35 <#>
|
||||
6, /*N*/ 0x10, 0x10, 0x3C, 0x50, 0x50, 0x38, 0x14, 0x14, 0x78, 0x10, // Символ 36 <$>
|
||||
8, /*N*/ 0x00, 0x30, 0x49, 0x4A, 0x34, 0x08, 0x16, 0x29, 0x49, 0x06, // Символ 37 <%>
|
||||
8, /*N*/ 0x00, 0x30, 0x48, 0x48, 0x32, 0x4A, 0x44, 0x46, 0x39, 0x00, // Символ 38 <&>
|
||||
2, /*N*/ 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 39 <'>
|
||||
4, /*N*/ 0x00, 0x10, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, 0x20, 0x10, // Символ 40 <(>
|
||||
4, /*N*/ 0x00, 0x40, 0x20, 0x10, 0x10, 0x10, 0x10, 0x10, 0x20, 0x40, // Символ 41 <)>
|
||||
6, /*N*/ 0x10, 0x54, 0x38, 0x54, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 42 <*>
|
||||
8, /*N*/ 0x00, 0x00, 0x08, 0x08, 0x08, 0x7F, 0x08, 0x08, 0x08, 0x00, // Символ 43 <+>
|
||||
3, /*N*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, // Символ 44 <,>
|
||||
4, /*N*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, // Символ 45 <->
|
||||
2, /*N*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, // Символ 46 <.>
|
||||
4, /*N*/ 0x00, 0x00, 0x10, 0x10, 0x20, 0x20, 0x20, 0x40, 0x40, 0x00, // Символ 47 </>
|
||||
|
||||
// Digits / Цифры
|
||||
6, /*N*/ 0x00, 0x38, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x38, 0x00, // Символ 48 <0>
|
||||
4, /*N*/ 0x00, 0x20, 0x60, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x00, // Символ 49 <1>
|
||||
6, /*N*/ 0x00, 0x38, 0x44, 0x04, 0x08, 0x10, 0x20, 0x40, 0x7C, 0x00, // Символ 50 <2>
|
||||
6, /*N*/ 0x00, 0x38, 0x44, 0x04, 0x18, 0x04, 0x04, 0x44, 0x38, 0x00, // Символ 51 <3>
|
||||
6, /*N*/ 0x00, 0x08, 0x18, 0x28, 0x48, 0x7C, 0x08, 0x08, 0x08, 0x00, // Символ 52 <4>
|
||||
6, /*N*/ 0x00, 0x7C, 0x40, 0x40, 0x78, 0x04, 0x04, 0x44, 0x38, 0x00, // Символ 53 <5>
|
||||
6, /*N*/ 0x00, 0x18, 0x20, 0x40, 0x78, 0x44, 0x44, 0x44, 0x38, 0x00, // Символ 54 <6>
|
||||
6, /*N*/ 0x00, 0x7C, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x00, // Символ 55 <7>
|
||||
6, /*N*/ 0x00, 0x38, 0x44, 0x44, 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, // Символ 56 <8>
|
||||
6, /*N*/ 0x00, 0x38, 0x44, 0x44, 0x44, 0x3C, 0x04, 0x08, 0x30, 0x00, // Символ 57 <9>
|
||||
|
||||
2, /*N*/ 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x40, 0x40, 0x00, // Символ 58 <:>
|
||||
3, /*N*/ 0x00, 0x00, 0x00, 0x20, 0x20, 0x00, 0x00, 0x20, 0x20, 0x20, // Символ 59 <;>
|
||||
7, /*N*/ 0x00, 0x00, 0x02, 0x0C, 0x30, 0x40, 0x30, 0x0C, 0x02, 0x00, // Символ 60 <<>
|
||||
8, /*N*/ 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x7F, 0x00, 0x00, 0x00, // Символ 61 <=>
|
||||
7, /*N*/ 0x00, 0x00, 0x40, 0x30, 0x0C, 0x02, 0x0C, 0x30, 0x40, 0x00, // Символ 62 <>>
|
||||
5, /*N*/ 0x00, 0x70, 0x08, 0x08, 0x10, 0x20, 0x20, 0x00, 0x20, 0x00, // Символ 63 <?>
|
||||
8, /*N*/ 0x3E, 0x41, 0x9D, 0xA5, 0xA5, 0xA5, 0x9F, 0x40, 0x3C, 0x00, // Символ 64 <@>
|
||||
|
||||
// Roman Capitals / Латиница, прописные
|
||||
7, /*N*/ 0x00, 0x18, 0x18, 0x24, 0x24, 0x24, 0x7E, 0x42, 0x42, 0x00, // Символ 65 <A>
|
||||
6, /*N*/ 0x00, 0x78, 0x44, 0x44, 0x78, 0x44, 0x44, 0x44, 0x78, 0x00, // Символ 66 <B>
|
||||
7, /*N*/ 0x00, 0x1E, 0x20, 0x40, 0x40, 0x40, 0x40, 0x20, 0x1E, 0x00, // Символ 67 <C>
|
||||
7, /*N*/ 0x00, 0x78, 0x44, 0x42, 0x42, 0x42, 0x42, 0x44, 0x78, 0x00, // Символ 68 <D>
|
||||
6, /*N*/ 0x00, 0x7C, 0x40, 0x40, 0x78, 0x40, 0x40, 0x40, 0x7C, 0x00, // Символ 69 <E>
|
||||
6, /*N*/ 0x00, 0x7C, 0x40, 0x40, 0x7C, 0x40, 0x40, 0x40, 0x40, 0x00, // Символ 70 <F>
|
||||
7, /*N*/ 0x00, 0x1E, 0x20, 0x40, 0x40, 0x4E, 0x42, 0x22, 0x1E, 0x00, // Символ 71 <G>
|
||||
7, /*N*/ 0x00, 0x42, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x42, 0x00, // Символ 72 <H>
|
||||
4, /*N*/ 0x00, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x00, // Символ 73 <I>
|
||||
5, /*N*/ 0x00, 0x38, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x70, 0x00, // Символ 74 <J>
|
||||
6, /*N*/ 0x00, 0x44, 0x48, 0x50, 0x60, 0x60, 0x50, 0x48, 0x44, 0x00, // Символ 75 <K>
|
||||
5, /*N*/ 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x78, 0x00, // Символ 76 <L>
|
||||
8, /*N*/ 0x00, 0x63, 0x63, 0x55, 0x55, 0x49, 0x49, 0x41, 0x41, 0x00, // Символ 77 <M>
|
||||
7, /*N*/ 0x00, 0x62, 0x62, 0x52, 0x52, 0x4A, 0x4A, 0x46, 0x46, 0x00, // Символ 78 <N>
|
||||
8, /*N*/ 0x00, 0x1C, 0x22, 0x41, 0x41, 0x41, 0x41, 0x22, 0x1C, 0x00, // Символ 79 <O>
|
||||
6, /*N*/ 0x00, 0x78, 0x44, 0x44, 0x44, 0x78, 0x40, 0x40, 0x40, 0x00, // Символ 80 <P>
|
||||
8, /*N*/ 0x00, 0x1C, 0x22, 0x41, 0x41, 0x41, 0x41, 0x22, 0x1C, 0x04, // Символ 81 <Q>
|
||||
7, /*N*/ 0x00, 0x78, 0x44, 0x44, 0x44, 0x78, 0x48, 0x44, 0x42, 0x00, // Символ 82 <R>
|
||||
6, /*N*/ 0x00, 0x3C, 0x40, 0x40, 0x38, 0x04, 0x04, 0x04, 0x78, 0x00, // Символ 83 <S>
|
||||
6, /*N*/ 0x00, 0x7C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, // Символ 84 <T>
|
||||
7, /*N*/ 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, // Символ 85 <U>
|
||||
6, /*N*/ 0x00, 0x44, 0x44, 0x44, 0x28, 0x28, 0x28, 0x10, 0x10, 0x00, // Символ 86 <V>
|
||||
8, /*N*/ 0x00, 0x49, 0x49, 0x49, 0x36, 0x36, 0x36, 0x12, 0x12, 0x00, // Символ 87 <W>
|
||||
6, /*N*/ 0x00, 0x44, 0x44, 0x28, 0x10, 0x10, 0x28, 0x44, 0x44, 0x00, // Символ 88 <X>
|
||||
6, /*N*/ 0x00, 0x44, 0x44, 0x28, 0x28, 0x10, 0x10, 0x10, 0x10, 0x00, // Символ 89 <Y>
|
||||
6, /*N*/ 0x00, 0x7C, 0x04, 0x08, 0x10, 0x10, 0x20, 0x40, 0x7C, 0x00, // Символ 90 <Z>
|
||||
|
||||
4, /*N*/ 0x70, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x70, 0x00, // Символ 91 <[>
|
||||
4, /*N*/ 0x00, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x00, // Символ 92 <\>
|
||||
4, /*N*/ 0x70, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x70, 0x00, // Символ 93 <]>
|
||||
8, /*N*/ 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 94 <^>
|
||||
7, /*N*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, // Символ 95 <_>
|
||||
3, /*N*/ 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 96 <`>
|
||||
|
||||
// Roman Smalls / Латиница, строчные
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x38, 0x04, 0x3C, 0x44, 0x44, 0x3C, 0x00, // Символ 97 <a>
|
||||
6, /*N*/ 0x40, 0x40, 0x40, 0x78, 0x44, 0x44, 0x44, 0x44, 0x78, 0x00, // Символ 98 <b>
|
||||
5, /*N*/ 0x00, 0x00, 0x00, 0x38, 0x40, 0x40, 0x40, 0x40, 0x38, 0x00, // Символ 99 <c>
|
||||
6, /*N*/ 0x04, 0x04, 0x04, 0x3C, 0x44, 0x44, 0x44, 0x44, 0x3C, 0x00, // Символ 100 <d>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x38, 0x44, 0x7C, 0x40, 0x44, 0x38, 0x00, // Символ 101 <e>
|
||||
4, /*N*/ 0x30, 0x40, 0x40, 0x70, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, // Символ 102 <f>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x3C, 0x44, 0x44, 0x44, 0x44, 0x3C, 0x04, // Символ 103 <g>
|
||||
6, /*N*/ 0x40, 0x40, 0x40, 0x78, 0x44, 0x44, 0x44, 0x44, 0x44, 0x00, // Символ 104 <h>
|
||||
2, /*N*/ 0x00, 0x40, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, // Символ 105 <i>
|
||||
3, /*N*/ 0x00, 0x20, 0x00, 0x60, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // Символ 106 <j>
|
||||
6, /*N*/ 0x40, 0x40, 0x40, 0x48, 0x50, 0x60, 0x50, 0x48, 0x44, 0x00, // Символ 107 <k>
|
||||
2, /*N*/ 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, // Символ 108 <l>
|
||||
8, /*N*/ 0x00, 0x00, 0x00, 0x76, 0x49, 0x49, 0x49, 0x49, 0x49, 0x00, // Символ 109 <m>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x78, 0x44, 0x44, 0x44, 0x44, 0x44, 0x00, // Символ 110 <n>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x38, 0x44, 0x44, 0x44, 0x44, 0x38, 0x00, // Символ 111 <o>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x78, 0x44, 0x44, 0x44, 0x44, 0x78, 0x40, // Символ 112 <p>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x3C, 0x44, 0x44, 0x44, 0x44, 0x3C, 0x04, // Символ 113 <q>
|
||||
4, /*N*/ 0x00, 0x00, 0x00, 0x50, 0x60, 0x40, 0x40, 0x40, 0x40, 0x00, // Символ 114 <r>
|
||||
5, /*N*/ 0x00, 0x00, 0x00, 0x38, 0x40, 0x60, 0x18, 0x08, 0x70, 0x00, // Символ 115 <s>
|
||||
4, /*N*/ 0x00, 0x40, 0x40, 0x70, 0x40, 0x40, 0x40, 0x40, 0x30, 0x00, // Символ 116 <t>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x44, 0x44, 0x44, 0x44, 0x44, 0x3C, 0x00, // Символ 117 <u>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x44, 0x44, 0x28, 0x28, 0x10, 0x10, 0x00, // Символ 118 <v>
|
||||
8, /*N*/ 0x00, 0x00, 0x00, 0x49, 0x49, 0x55, 0x55, 0x22, 0x22, 0x00, // Символ 119 <w>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x44, 0x28, 0x10, 0x10, 0x28, 0x44, 0x00, // Символ 120 <x>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x44, 0x44, 0x28, 0x28, 0x10, 0x10, 0x20, // Символ 121 <y>
|
||||
5, /*N*/ 0x00, 0x00, 0x00, 0x78, 0x08, 0x10, 0x20, 0x40, 0x78, 0x00, // Символ 122 <z>
|
||||
|
||||
4, /*N*/ 0x10, 0x20, 0x20, 0x20, 0x40, 0x40, 0x20, 0x20, 0x20, 0x10, // Символ 123 <{>
|
||||
2, /*N*/ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, // Символ 124 <|>
|
||||
4, /*N*/ 0x40, 0x20, 0x20, 0x20, 0x10, 0x10, 0x20, 0x20, 0x20, 0x40, // Символ 125 <}>
|
||||
8, /*N*/ 0x00, 0x00, 0x00, 0x00, 0x31, 0x49, 0x46, 0x00, 0x00, 0x00, // Символ 126 <~>
|
||||
4, /*N*/ 0x00, 0x70, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x70, 0x00, // Символ 127 <DELETE>
|
||||
8, /*N*/ 0x00, 0x7E, 0x10, 0x10, 0x1E, 0x11, 0x11, 0x11, 0x12, 0x00, // Символ 128 <Ђ>
|
||||
6, /*N*/ 0x00, 0x7C, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, // Символ 129 <Ѓ>
|
||||
3, /*N*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x40, // Символ 130 <‚>
|
||||
5, /*N*/ 0x08, 0x10, 0x00, 0x78, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, // Символ 131 <ѓ>
|
||||
5, /*N*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x28, 0x50, // Символ 132 <„>
|
||||
8, /*N*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x00, // Символ 133 <…>
|
||||
6, /*N*/ 0x10, 0x10, 0x7C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, // Символ 134 <†>
|
||||
6, /*N*/ 0x10, 0x10, 0x7C, 0x10, 0x10, 0x7C, 0x10, 0x10, 0x00, 0x00, // Символ 135 <‡>
|
||||
7, /*N*/ 0x00, 0x1C, 0x22, 0x78, 0x20, 0x78, 0x20, 0x12, 0x0C, 0x00, // Символ 136 <€>
|
||||
7, /*N*/ 0x60, 0x90, 0x90, 0x62, 0x1C, 0xE0, 0x62, 0x94, 0x94, 0x62, // Символ 137 <‰>
|
||||
8, /*N*/ 0x00, 0x38, 0x28, 0x28, 0x28, 0x2E, 0x29, 0x29, 0x4E, 0x00, // Символ 138 <Љ>
|
||||
4, /*N*/ 0x00, 0x00, 0x00, 0x10, 0x20, 0x40, 0x20, 0x10, 0x00, 0x00, // Символ 139 <‹>
|
||||
8, /*N*/ 0x00, 0x48, 0x48, 0x48, 0x7E, 0x49, 0x49, 0x49, 0x4E, 0x00, // Символ 140 <Њ>
|
||||
7, /*N*/ 0x00, 0x46, 0x48, 0x48, 0x70, 0x50, 0x48, 0x44, 0x42, 0x00, // Символ 141 <Ќ>
|
||||
8, /*N*/ 0x00, 0x7E, 0x10, 0x10, 0x1E, 0x11, 0x11, 0x11, 0x11, 0x00, // Символ 142 <Ћ>
|
||||
7, /*N*/ 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x7E, 0x08, 0x08, 0x00, // Символ 143 <Џ>
|
||||
7, /*N*/ 0x20, 0x78, 0x20, 0x3C, 0x22, 0x22, 0x22, 0x22, 0x22, 0x04, // Символ 144 <ђ>
|
||||
3, /*N*/ 0x40, 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 145 <‘>
|
||||
3, /*N*/ 0x20, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 146 <’>
|
||||
5, /*N*/ 0x50, 0x50, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 147 <“>
|
||||
5, /*N*/ 0x28, 0x28, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 148 <”>
|
||||
5, /*N*/ 0x00, 0x00, 0x00, 0x00, 0x30, 0x78, 0x78, 0x30, 0x00, 0x00, // Символ 149 <•>
|
||||
7, /*N*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, // Символ 150 <–>
|
||||
8, /*N*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, // Символ 151 <—>
|
||||
5, /*N*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 152 <>
|
||||
7, /*N*/ 0x00, 0xEA, 0x4E, 0x4A, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 153 <™>
|
||||
8, /*N*/ 0x00, 0x00, 0x00, 0x78, 0x48, 0x4E, 0x49, 0x49, 0x8E, 0x00, // Символ 154 <љ>
|
||||
4, /*N*/ 0x00, 0x00, 0x00, 0x40, 0x20, 0x10, 0x20, 0x40, 0x00, 0x00, // Символ 155 <›>
|
||||
8, /*N*/ 0x00, 0x00, 0x00, 0x48, 0x48, 0x7E, 0x49, 0x49, 0x4E, 0x00, // Символ 156 <њ>
|
||||
6, /*N*/ 0x08, 0x10, 0x00, 0x4C, 0x50, 0x60, 0x50, 0x48, 0x44, 0x00, // Символ 157 <ќ>
|
||||
7, /*N*/ 0x20, 0x78, 0x20, 0x3C, 0x22, 0x22, 0x22, 0x22, 0x22, 0x00, // Символ 158 <ћ>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x44, 0x44, 0x44, 0x7C, 0x10, 0x10, 0x00, // Символ 159 <џ>
|
||||
5, /*N*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 160 < >
|
||||
5, /*N*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 161 <Ў>
|
||||
5, /*N*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 162 <ў>
|
||||
5, /*N*/ 0x00, 0x38, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x70, 0x00, // Символ 163 <Ј>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x44, 0x38, 0x28, 0x38, 0x44, 0x00, 0x00, // Символ 164 <¤>
|
||||
6, /*N*/ 0x04, 0x7C, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, // Символ 165 <Ґ>
|
||||
2, /*N*/ 0x00, 0x40, 0x40, 0x40, 0x00, 0x00, 0x40, 0x40, 0x40, 0x00, // Символ 166 <¦>
|
||||
6, /*N*/ 0x3C, 0x40, 0x40, 0x38, 0x44, 0x44, 0x38, 0x04, 0x04, 0x78, // Символ 167 <§>
|
||||
6, /*N*/ 0x00, 0x7C, 0x40, 0x40, 0x78, 0x40, 0x40, 0x40, 0x7C, 0x00, // Символ 168 <Ё>
|
||||
8, /*N*/ 0x00, 0x3C, 0x42, 0x99, 0xA1, 0xA1, 0xA1, 0x99, 0x42, 0x3C, // Символ 169 <©>
|
||||
6, /*N*/ 0x00, 0x1C, 0x20, 0x40, 0x78, 0x40, 0x40, 0x20, 0x1C, 0x00, // Символ 170 <Є>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x14, 0x28, 0x50, 0x28, 0x14, 0x00, 0x00, // Символ 171 <«>
|
||||
7, /*N*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x02, 0x02, 0x02, 0x00, // Символ 172 <¬>
|
||||
4, /*N*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, // Символ 173 <>
|
||||
8, /*N*/ 0x00, 0x3C, 0x42, 0x99, 0x95, 0x99, 0x95, 0x95, 0x42, 0x3C, // Символ 174 <®>
|
||||
4, /*N*/ 0x50, 0x00, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, // Символ 175 <Ї>
|
||||
5, /*N*/ 0x00, 0x30, 0x48, 0x48, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 176 <°>
|
||||
6, /*N*/ 0x00, 0x00, 0x10, 0x10, 0x7C, 0x10, 0x10, 0x00, 0x7C, 0x00, // Символ 177 <±>
|
||||
4, /*N*/ 0x00, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x00, // Символ 178 <І>
|
||||
2, /*N*/ 0x00, 0x40, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, // Символ 179 <і>
|
||||
5, /*N*/ 0x00, 0x08, 0x08, 0x78, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, // Символ 180 <ґ>
|
||||
6, /*N*/ 0x00, 0x44, 0x44, 0x44, 0x44, 0x4C, 0x74, 0x40, 0x40, 0x00, // Символ 181 <µ>
|
||||
6, /*N*/ 0x00, 0x3C, 0x74, 0x74, 0x74, 0x34, 0x14, 0x14, 0x14, 0x00, // Символ 182 <¶>
|
||||
2, /*N*/ 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, // Символ 183 <·>
|
||||
6, /*N*/ 0x00, 0x28, 0x00, 0x38, 0x44, 0x7C, 0x40, 0x44, 0x38, 0x00, // Символ 184 <ё>
|
||||
8, /*N*/ 0x00, 0x8A, 0xCD, 0xCA, 0xA8, 0xAF, 0x98, 0x98, 0x88, 0x00, // Символ 185 <№>
|
||||
5, /*N*/ 0x00, 0x00, 0x00, 0x38, 0x40, 0x70, 0x40, 0x40, 0x38, 0x00, // Символ 186 <є>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x50, 0x28, 0x14, 0x28, 0x50, 0x00, 0x00, // Символ 187 <»>
|
||||
3, /*N*/ 0x20, 0x00, 0x60, 0x20, 0x20, 0x20, 0x20, 0x40, 0x00, 0x00, // Символ 188 <ј>
|
||||
6, /*N*/ 0x00, 0x3C, 0x40, 0x40, 0x38, 0x04, 0x04, 0x04, 0x78, 0x00, // Символ 189 <Ѕ>
|
||||
5, /*N*/ 0x00, 0x00, 0x00, 0x38, 0x40, 0x60, 0x18, 0x08, 0x70, 0x00, // Символ 190 <ѕ>
|
||||
4, /*N*/ 0x00, 0x50, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, // Символ 191 <ї>
|
||||
|
||||
// Cyrillic Capitals / Кириллица, прописные
|
||||
7, /*N*/ 0x00, 0x18, 0x18, 0x24, 0x24, 0x24, 0x7E, 0x42, 0x42, 0x00, // Символ 192 <А>
|
||||
6, /*N*/ 0x00, 0x7C, 0x40, 0x40, 0x78, 0x44, 0x44, 0x44, 0x78, 0x00, // Символ 193 <Б>
|
||||
6, /*N*/ 0x00, 0x78, 0x44, 0x44, 0x78, 0x44, 0x44, 0x44, 0x78, 0x00, // Символ 194 <В>
|
||||
6, /*N*/ 0x00, 0x7C, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, // Символ 195 <Г>
|
||||
8, /*N*/ 0x00, 0x0E, 0x0A, 0x12, 0x12, 0x12, 0x7F, 0x41, 0x41, 0x00, // Символ 196 <Д>
|
||||
6, /*N*/ 0x00, 0x7C, 0x40, 0x40, 0x78, 0x40, 0x40, 0x40, 0x7C, 0x00, // Символ 197 <Е>
|
||||
8, /*N*/ 0x00, 0x49, 0x49, 0x2A, 0x2A, 0x1C, 0x2A, 0x49, 0x08, 0x00, // Символ 198 <Ж>
|
||||
6, /*N*/ 0x00, 0x78, 0x04, 0x04, 0x38, 0x04, 0x04, 0x04, 0x78, 0x00, // Символ 199 <З>
|
||||
7, /*N*/ 0x00, 0x42, 0x46, 0x4A, 0x4A, 0x52, 0x52, 0x62, 0x42, 0x00, // Символ 200 <И>
|
||||
7, /*N*/ 0x24, 0x18, 0x42, 0x46, 0x4A, 0x4A, 0x52, 0x62, 0x42, 0x00, // Символ 201 <Й>
|
||||
7, /*N*/ 0x00, 0x46, 0x48, 0x48, 0x70, 0x50, 0x48, 0x44, 0x42, 0x00, // Символ 202 <К>
|
||||
7, /*N*/ 0x00, 0x3E, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x42, 0x00, // Символ 203 <Л>
|
||||
8, /*N*/ 0x00, 0x63, 0x63, 0x55, 0x55, 0x49, 0x49, 0x41, 0x41, 0x00, // Символ 204 <М>
|
||||
7, /*N*/ 0x00, 0x42, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x42, 0x00, // Символ 205 <Н>
|
||||
8, /*N*/ 0x00, 0x1C, 0x22, 0x41, 0x41, 0x41, 0x41, 0x22, 0x1C, 0x00, // Символ 206 <О>
|
||||
7, /*N*/ 0x00, 0x7E, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x00, // Символ 207 <П>
|
||||
6, /*N*/ 0x00, 0x78, 0x44, 0x44, 0x44, 0x78, 0x40, 0x40, 0x40, 0x00, // Символ 208 <Р>
|
||||
7, /*N*/ 0x00, 0x1E, 0x20, 0x40, 0x40, 0x40, 0x40, 0x20, 0x1E, 0x00, // Символ 209 <С>
|
||||
6, /*N*/ 0x00, 0x7C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, // Символ 210 <Т>
|
||||
7, /*N*/ 0x00, 0x42, 0x42, 0x24, 0x24, 0x18, 0x18, 0x10, 0x60, 0x00, // Символ 211 <У>
|
||||
8, /*N*/ 0x00, 0x08, 0x3E, 0x49, 0x49, 0x49, 0x49, 0x3E, 0x08, 0x00, // Символ 212 <Ф>
|
||||
6, /*N*/ 0x00, 0x44, 0x44, 0x28, 0x10, 0x10, 0x28, 0x44, 0x44, 0x00, // Символ 213 <Х>
|
||||
8, /*N*/ 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x7F, 0x01, 0x01, 0x00, // Символ 214 <Ц>
|
||||
7, /*N*/ 0x00, 0x42, 0x42, 0x42, 0x42, 0x3E, 0x02, 0x02, 0x02, 0x00, // Символ 215 <Ч>
|
||||
8, /*N*/ 0x00, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x7F, 0x00, // Символ 216 <Ш>
|
||||
8, /*N*/ 0x00, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0xFF, 0x80, // Символ 217 <Щ>
|
||||
8, /*N*/ 0x00, 0x70, 0x10, 0x10, 0x1E, 0x11, 0x11, 0x11, 0x1E, 0x00, // Символ 218 <Ъ>
|
||||
8, /*N*/ 0x00, 0x41, 0x41, 0x41, 0x79, 0x45, 0x45, 0x45, 0x79, 0x00, // Символ 219 <Ы>
|
||||
6, /*N*/ 0x00, 0x40, 0x40, 0x40, 0x78, 0x44, 0x44, 0x44, 0x78, 0x00, // Символ 220 <Ь>
|
||||
7, /*N*/ 0x00, 0x78, 0x04, 0x02, 0x3E, 0x02, 0x02, 0x04, 0x78, 0x00, // Символ 221 <Э>
|
||||
8, /*N*/ 0x00, 0x4E, 0x51, 0x51, 0x71, 0x51, 0x51, 0x51, 0x4E, 0x00, // Символ 222 <Ю>
|
||||
7, /*N*/ 0x00, 0x1E, 0x22, 0x22, 0x22, 0x1E, 0x12, 0x22, 0x42, 0x00, // Символ 223 <Я>
|
||||
|
||||
// Cyrillic Smalls / Кириллица, строчные
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x38, 0x04, 0x3C, 0x44, 0x44, 0x3C, 0x00, // Символ 224 <а>
|
||||
6, /*N*/ 0x1C, 0x20, 0x40, 0x78, 0x44, 0x44, 0x44, 0x44, 0x38, 0x00, // Символ 225 <б>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x78, 0x44, 0x78, 0x44, 0x44, 0x78, 0x00, // Символ 226 <в>
|
||||
5, /*N*/ 0x00, 0x00, 0x00, 0x78, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, // Символ 227 <г>
|
||||
7, /*N*/ 0x00, 0x00, 0x1C, 0x14, 0x14, 0x24, 0x24, 0x7E, 0x42, 0x00, // Символ 228 <д>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x38, 0x44, 0x7C, 0x40, 0x44, 0x38, 0x00, // Символ 229 <е>
|
||||
8, /*N*/ 0x00, 0x00, 0x00, 0x49, 0x2A, 0x2A, 0x1C, 0x2A, 0x49, 0x00, // Символ 230 <ж>
|
||||
5, /*N*/ 0x00, 0x00, 0x00, 0x70, 0x08, 0x30, 0x08, 0x08, 0x70, 0x00, // Символ 231 <з>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x44, 0x4C, 0x54, 0x64, 0x44, 0x44, 0x00, // Символ 232 <и>
|
||||
6, /*N*/ 0x24, 0x18, 0x00, 0x44, 0x4C, 0x54, 0x64, 0x44, 0x44, 0x00, // Символ 233 <й>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x4C, 0x50, 0x60, 0x50, 0x48, 0x44, 0x00, // Символ 234 <к>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x3C, 0x24, 0x24, 0x24, 0x24, 0x44, 0x00, // Символ 235 <л>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x44, 0x6C, 0x54, 0x54, 0x44, 0x44, 0x00, // Символ 236 <м>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x44, 0x44, 0x7C, 0x44, 0x44, 0x44, 0x00, // Символ 237 <н>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x38, 0x44, 0x44, 0x44, 0x44, 0x38, 0x00, // Символ 238 <о>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x7C, 0x44, 0x44, 0x44, 0x44, 0x44, 0x00, // Символ 239 <п>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x78, 0x44, 0x44, 0x78, 0x40, 0x40, 0x00, // Символ 240 <р>
|
||||
5, /*N*/ 0x00, 0x00, 0x00, 0x38, 0x40, 0x40, 0x40, 0x40, 0x38, 0x00, // Символ 241 <с>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x7C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, // Символ 242 <т>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x44, 0x44, 0x28, 0x28, 0x10, 0x10, 0x20, // Символ 243 <у>
|
||||
8, /*N*/ 0x08, 0x08, 0x08, 0x3E, 0x49, 0x49, 0x49, 0x49, 0x3E, 0x08, // Символ 244 <ф>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x44, 0x28, 0x10, 0x10, 0x28, 0x44, 0x00, // Символ 245 <х>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x48, 0x48, 0x48, 0x48, 0x48, 0x7C, 0x04, // Символ 246 <ц>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x44, 0x44, 0x44, 0x3C, 0x04, 0x04, 0x00, // Символ 247 <ч>
|
||||
8, /*N*/ 0x00, 0x00, 0x00, 0x49, 0x49, 0x49, 0x49, 0x49, 0x7F, 0x00, // Символ 248 <ш>
|
||||
8, /*N*/ 0x00, 0x00, 0x00, 0x49, 0x49, 0x49, 0x49, 0x49, 0xFF, 0x80, // Символ 249 <щ>
|
||||
7, /*N*/ 0x00, 0x00, 0x00, 0x70, 0x10, 0x1C, 0x12, 0x12, 0x1C, 0x00, // Символ 250 <ъ>
|
||||
8, /*N*/ 0x00, 0x00, 0x00, 0x41, 0x41, 0x79, 0x45, 0x45, 0x79, 0x00, // Символ 251 <ы>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x40, 0x40, 0x78, 0x44, 0x44, 0x78, 0x00, // Символ 252 <ь>
|
||||
5, /*N*/ 0x00, 0x00, 0x00, 0x70, 0x08, 0x38, 0x08, 0x08, 0x70, 0x00, // Символ 253 <э>
|
||||
8, /*N*/ 0x00, 0x00, 0x00, 0x8E, 0x91, 0xF1, 0x91, 0x91, 0x8E, 0x00, // Символ 254 <ю>
|
||||
6, /*N*/ 0x00, 0x00, 0x00, 0x3C, 0x44, 0x44, 0x3C, 0x24, 0x44, 0x00 // Символ 255 <я>
|
||||
};
|
||||
|
||||
#endif // FONT_TAHOMA_8_H
|
||||
42
Core/OLED_Driver/font_terminus_15_digi.h
Normal file
42
Core/OLED_Driver/font_terminus_15_digi.h
Normal file
@@ -0,0 +1,42 @@
|
||||
// Название шрифта Terminus (TTF) for Windows 15
|
||||
// Автор шрифта ITS-PC / User
|
||||
// Дата и время генерации Ср 27.09.23 15:02:48
|
||||
// Сгенерировано matrixFont v1.2.0.55
|
||||
// Кодовая страница ANSI (ASCII 7-битная)
|
||||
// https://gitlab.com/riva-lab/matrixFont
|
||||
|
||||
#ifndef FONT_TERMINUS_10X15__H
|
||||
#define FONT_TERMINUS_10X15__H
|
||||
|
||||
#ifndef FONT_TYPE_MONOSPACED
|
||||
#define FONT_TYPE_MONOSPACED 0
|
||||
#endif
|
||||
|
||||
#ifndef FONT_TYPE_PROPORTIONAL
|
||||
#define FONT_TYPE_PROPORTIONAL 1
|
||||
#endif
|
||||
|
||||
#define FONT_TERMINUS_10X15__LENGTH 10
|
||||
#define FONT_TERMINUS_10X15__START_CHAR 48
|
||||
#define FONT_TERMINUS_10X15__CHAR_WIDTH 10
|
||||
#define FONT_TERMINUS_10X15__CHAR_HEIGHT 15
|
||||
#define FONT_TERMINUS_10X15__FONT_TYPE (FONT_TYPE_MONOSPACED)
|
||||
#define FONT_TERMINUS_10X15__ARRAY_LENGTH (FONT_TERMINUS_10X15__LENGTH * FONT_TERMINUS_10X15__CHAR_HEIGHT * 2)
|
||||
|
||||
const unsigned char font_terminus_10x15_[FONT_TERMINUS_10X15__ARRAY_LENGTH] =
|
||||
{
|
||||
|
||||
// Digits / Цифры
|
||||
0x00, 0x00, 0xFC, 0x00, 0x86, 0x01, 0x86, 0x01, 0x86, 0x01, 0x8E, 0x01, 0x9E, 0x01, 0xB6, 0x01, 0xE6, 0x01, 0xC6, 0x01, 0x86, 0x01, 0x86, 0x01, 0x86, 0x01, 0xFC, 0x00, 0x00, 0x00, // Символ 48 <0>
|
||||
0x00, 0x00, 0x30, 0x00, 0x70, 0x00, 0xF0, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0xFC, 0x00, 0x00, 0x00, // Символ 49 <1>
|
||||
0x00, 0x00, 0xFC, 0x00, 0x86, 0x01, 0x86, 0x01, 0x86, 0x01, 0x06, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x30, 0x00, 0x60, 0x00, 0xC0, 0x00, 0x80, 0x01, 0xFE, 0x01, 0x00, 0x00, // Символ 50 <2>
|
||||
0x00, 0x00, 0xFC, 0x00, 0x86, 0x01, 0x86, 0x01, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x7C, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x86, 0x01, 0x86, 0x01, 0xFC, 0x00, 0x00, 0x00, // Символ 51 <3>
|
||||
0x00, 0x00, 0x06, 0x00, 0x0E, 0x00, 0x1E, 0x00, 0x36, 0x00, 0x66, 0x00, 0xC6, 0x00, 0x86, 0x01, 0x86, 0x01, 0x86, 0x01, 0xFE, 0x01, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, // Символ 52 <4>
|
||||
0x00, 0x00, 0xFE, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xFC, 0x01, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x86, 0x01, 0x86, 0x01, 0xFC, 0x00, 0x00, 0x00, // Символ 53 <5>
|
||||
0x00, 0x00, 0x7C, 0x00, 0xC0, 0x00, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xFC, 0x01, 0x86, 0x01, 0x86, 0x01, 0x86, 0x01, 0x86, 0x01, 0x86, 0x01, 0x86, 0x01, 0xFC, 0x00, 0x00, 0x00, // Символ 54 <6>
|
||||
0x00, 0x00, 0xFE, 0x01, 0x86, 0x01, 0x86, 0x01, 0x06, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x18, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, // Символ 55 <7>
|
||||
0x00, 0x00, 0xFC, 0x00, 0x86, 0x01, 0x86, 0x01, 0x86, 0x01, 0x86, 0x01, 0x86, 0x01, 0xFC, 0x00, 0x86, 0x01, 0x86, 0x01, 0x86, 0x01, 0x86, 0x01, 0x86, 0x01, 0xFC, 0x00, 0x00, 0x00, // Символ 56 <8>
|
||||
0x00, 0x00, 0xFC, 0x00, 0x86, 0x01, 0x86, 0x01, 0x86, 0x01, 0x86, 0x01, 0x86, 0x01, 0x86, 0x01, 0xFE, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x0C, 0x00, 0xF8, 0x00, 0x00, 0x00 // Символ 57 <9>
|
||||
};
|
||||
|
||||
#endif // FONT_TERMINUS_10X15__H
|
||||
1036
Core/OLED_Driver/gfx_lib.c
Normal file
1036
Core/OLED_Driver/gfx_lib.c
Normal file
File diff suppressed because it is too large
Load Diff
158
Core/OLED_Driver/gfx_lib.h
Normal file
158
Core/OLED_Driver/gfx_lib.h
Normal file
@@ -0,0 +1,158 @@
|
||||
/*
|
||||
* PixelGraphics.h
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef INC_PIXEL_GRAPHICS_H_
|
||||
#define INC_PIXEL_GRAPHICS_H_
|
||||
|
||||
/* инклюды */
|
||||
#include "main.h"
|
||||
#include "string.h"
|
||||
#include "stdio.h"
|
||||
|
||||
#define GFX_BufferWidth 128 //ширина дисплея в пикселях
|
||||
#define GFX_BufferHeight 64 //высота дисплея в пикселях
|
||||
|
||||
#define GFX_pxView_On 1 //закраска пикселя On
|
||||
#define GFX_pxView_Off 0 //закраска пикселя Off
|
||||
|
||||
#define GFX_ChInvers 1 //инверсия символа шрифта On
|
||||
#define GFX_ChUnInvers 0 //инверсия символа шрифта Off
|
||||
|
||||
|
||||
typedef enum
|
||||
{
|
||||
GFX_FONT_TAHOMA_8,
|
||||
GFX_FONT_TAHOMA_15,
|
||||
GFX_FONT_DIG_TERMINUS_15,
|
||||
}GFX_Font_t;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t xPos_Start;
|
||||
uint8_t yPos_Start;
|
||||
uint8_t xPos_End;
|
||||
uint8_t yPos_End;
|
||||
uint8_t pxColor;
|
||||
}GFX_LineHandleTypeDef;
|
||||
typedef struct
|
||||
{
|
||||
uint8_t xPos_Start;
|
||||
uint8_t yPos_Start;
|
||||
uint8_t rectangle_Width;
|
||||
uint8_t rectangle_Height;
|
||||
uint8_t pxColor;
|
||||
uint8_t Filled;
|
||||
}GFX_RectangleHandleTypeDef;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t xPos;
|
||||
uint8_t yPos;
|
||||
uint8_t circle_Radius;
|
||||
uint8_t pxColor;
|
||||
uint8_t Filled;
|
||||
}GFX_CircleHandleTypeDef;
|
||||
typedef struct
|
||||
{
|
||||
uint8_t xPos1;
|
||||
uint8_t yPos1;
|
||||
uint8_t xPos2;
|
||||
uint8_t yPos2;
|
||||
uint8_t xPos3;
|
||||
uint8_t yPos3;
|
||||
uint8_t pxColor;
|
||||
uint8_t Filled;
|
||||
}GFX_TriangleHandleTypeDef;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t xPos;
|
||||
uint8_t yPos;
|
||||
uint8_t size;
|
||||
uint16_t angle;
|
||||
uint8_t pxColor;
|
||||
uint8_t Filled;
|
||||
}GFX_ArrowHandleTypeDef;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t xPos;
|
||||
uint8_t yPos;
|
||||
uint8_t radius;
|
||||
uint16_t startAngle;
|
||||
uint16_t endAngle;
|
||||
uint8_t pxColor;
|
||||
uint8_t Filled;
|
||||
}GFX_ArcHandleTypeDef;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t xPos;
|
||||
uint8_t yPos;
|
||||
uint8_t plotHeight;
|
||||
uint8_t plotWidth;
|
||||
|
||||
int16_t dataX;
|
||||
int32_t dataY;
|
||||
float dataInd;
|
||||
int32_t dataPrevY;
|
||||
|
||||
int16_t plotXShift;
|
||||
int16_t plotYShift;
|
||||
|
||||
struct
|
||||
{
|
||||
unsigned dataSigned:1;
|
||||
unsigned plotFrame:1;
|
||||
unsigned plotXAxis:1;
|
||||
unsigned plotYAxis:1;
|
||||
unsigned initialized:1;
|
||||
}f;
|
||||
}GFX_PlotterHandleTypeDef;
|
||||
|
||||
|
||||
|
||||
/* прототипы функций */
|
||||
void GFX_Clean_Buffer_Frame(uint8_t *Buffer_Frame);
|
||||
void GFX_Clean_Area(uint8_t *Buffer_Frame, uint16_t xPos_Start, uint16_t yPos_Start, uint16_t width, uint16_t height);
|
||||
void GFX_Draw_Pixel(uint8_t *Buffer_Frame, uint8_t xPos, uint8_t yPos, uint8_t pxColor);
|
||||
void GFX_Invertion_Area(uint8_t *Buffer_Frame, uint16_t xPos_Start, uint16_t yPos_Start, uint16_t width, uint16_t height);
|
||||
void GFX_Invertion_Display(uint8_t *Buffer_Frame);
|
||||
|
||||
void GFX_Draw_Char_Tahoma8_Byte(uint8_t *Buffer_Frame, uint8_t xPos, uint8_t yPos, char Symbol, uint8_t Inversion);
|
||||
void GFX_Draw_Char_Tahoma15_Byte(uint8_t *Buffer_Frame, uint8_t xPos, uint8_t yPos, char Symbol, uint8_t Inversion);
|
||||
void GFX_Draw_Char_Terminus15Dig_Byte(uint8_t *Buffer_Frame, uint8_t xPos, uint8_t yPos, uint8_t Symbol, uint8_t inversion);
|
||||
void GFX_Output_String(uint8_t *Buffer_Frame, uint8_t xPos, uint8_t yPos, char *String, GFX_Font_t font, uint8_t setChSpacing, uint8_t Inversion);
|
||||
|
||||
void GFX_Draw_Line(uint8_t *Buffer_Frame, GFX_LineHandleTypeDef *hLine);
|
||||
void GFX_Draw_Rectangle(uint8_t *Buffer_Frame, GFX_RectangleHandleTypeDef *hRectangle);
|
||||
void GFX_Draw_Circle(uint8_t *Buffer_Frame, GFX_CircleHandleTypeDef *hCircle);
|
||||
void GFX_Draw_Triangle(uint8_t *Buffer_Frame, GFX_TriangleHandleTypeDef *hTriangle);
|
||||
void GFX_Draw_Arrow(uint8_t *Buffer_Frame, GFX_ArrowHandleTypeDef *hArrow);
|
||||
void GFX_Draw_Arc(uint8_t *Buffer_Frame, GFX_ArcHandleTypeDef *hArc);
|
||||
void GFX_Plotter_uint8_t(uint8_t *Buffer_Frame, GFX_PlotterHandleTypeDef *hPlot, uint8_t *data, uint32_t data_size, float data_step, uint8_t data_max);
|
||||
void GFX_Plotter_uint16_t(uint8_t *Buffer_Frame, GFX_PlotterHandleTypeDef *hPlot, uint16_t *data, uint32_t data_size, float data_step, uint16_t data_max);
|
||||
void GFX_Plotter_int(uint8_t *Buffer_Frame, GFX_PlotterHandleTypeDef *hPlot, int *data, uint32_t data_size, float data_step, int data_max);
|
||||
void GFX_Plotter_float(uint8_t *Buffer_Frame, GFX_PlotterHandleTypeDef *hPlot, float *data, uint32_t data_size, float data_step, float data_max);
|
||||
|
||||
|
||||
|
||||
void __GFX_Draw_Line(uint8_t *Buffer_Frame, uint8_t xPos_Start, uint8_t yPos_Start, uint8_t xPos_End, uint8_t yPos_End, uint8_t pxColor);
|
||||
void __GFX_Draw_Rectangle(uint8_t *Buffer_Frame, uint8_t xPos_Start, uint8_t yPos_Start, uint8_t rectangle_Width, uint8_t rectangle_Height, uint8_t pxColor);
|
||||
void __GFX_Draw_Rectangle_Filled(uint8_t *Buffer_Frame, uint8_t xPos_Start, uint8_t yPos_Start, uint8_t rectangle_Width, uint8_t rectangle_Height, uint8_t pxColor);
|
||||
void __GFX_Draw_Circle(uint8_t *Buffer_Frame, uint8_t xPos, uint8_t yPos, uint8_t circle_Radius, uint8_t pxColor);
|
||||
void __GFX_Draw_Circle_Filled(uint8_t *Buffer_Frame, int8_t xPos, int8_t yPos, int8_t circle_Radius, uint8_t pxColor);
|
||||
void __GFX_Draw_Triangle(uint8_t *Buffer_Frame,
|
||||
uint8_t xPos1, uint8_t yPos1,
|
||||
uint8_t xPos2, uint8_t yPos2,
|
||||
uint8_t xPos3, uint8_t yPos3,
|
||||
uint8_t pxColor);
|
||||
void __GFX_Draw_Arrow(uint8_t *Buffer_Frame, uint8_t xPos, uint8_t yPos, uint8_t size, uint16_t angle, uint8_t pxColor);
|
||||
void __GFX_Draw_Arrow_Ortho(uint8_t *Buffer_Frame, uint8_t xPos, uint8_t yPos, uint8_t size, uint16_t angle, uint8_t pxColor);
|
||||
void __GFX_Draw_Arc(uint8_t *Buffer_Frame, uint8_t xPos, uint8_t yPos, uint8_t radius, uint16_t startAngle, uint16_t endAngle, uint8_t pxColor);
|
||||
HAL_StatusTypeDef __GFX_StartPlot(uint8_t *Buffer_Frame, GFX_PlotterHandleTypeDef *hPlot);
|
||||
void __GFX_Draw_Plotter_Value(uint8_t *Buffer_Frame, GFX_PlotterHandleTypeDef *hPlot);
|
||||
#endif /* INC_PIXEL_GRAPHICS_H_ */
|
||||
85
Core/OLED_Driver/oled.c
Normal file
85
Core/OLED_Driver/oled.c
Normal file
@@ -0,0 +1,85 @@
|
||||
/*
|
||||
* oled.c
|
||||
*
|
||||
* Created on: Nov 17, 2021
|
||||
* Author: wvv
|
||||
*/
|
||||
#include "oled.h"
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <main.h>
|
||||
extern I2C_HandleTypeDef hi2c1;
|
||||
|
||||
void oled_write_cmd(uint8_t cmd)
|
||||
{
|
||||
HAL_I2C_Mem_Write(&hi2c1, 0x78, 0x00, I2C_MEMADD_SIZE_8BIT, &cmd, 1, 0x100);
|
||||
}
|
||||
|
||||
uint8_t oled_buf[OLED_HEIGHT * OLED_WIDTH] = { 0 };
|
||||
|
||||
void oled_clear(void)
|
||||
{
|
||||
memset(oled_buf, 0x00, sizeof(oled_buf));
|
||||
}
|
||||
void oled_refresh(void)
|
||||
{
|
||||
for (uint8_t i = 0; i < OLED_HEIGHT; i++)
|
||||
{
|
||||
oled_write_cmd(0xb0 + i);
|
||||
oled_write_cmd(0x00);
|
||||
oled_write_cmd(0x10);
|
||||
HAL_StatusTypeDef ret = HAL_I2C_Mem_Write(&hi2c1, 0x78, 0x40, 1,
|
||||
(uint8_t*) &oled_buf[i * OLED_WIDTH], OLED_WIDTH, 100);
|
||||
if (ret != HAL_OK)
|
||||
{
|
||||
HAL_I2C_DeInit(&hi2c1);
|
||||
HAL_I2C_Init(&hi2c1);
|
||||
}
|
||||
}
|
||||
}
|
||||
void oled_init(void)
|
||||
{
|
||||
oled_write_cmd(0xAE);
|
||||
oled_write_cmd(0x20);
|
||||
oled_write_cmd(0x10);
|
||||
|
||||
oled_write_cmd(0xB0);
|
||||
oled_write_cmd(0xC8);
|
||||
oled_write_cmd(0x00);
|
||||
oled_write_cmd(0x10);
|
||||
oled_write_cmd(0x40);
|
||||
|
||||
oled_write_cmd(0x81);
|
||||
oled_write_cmd(0xff);
|
||||
|
||||
oled_write_cmd(0xa1);
|
||||
oled_write_cmd(0xa6);
|
||||
|
||||
oled_write_cmd(0xa8);
|
||||
oled_write_cmd(0x1f);
|
||||
|
||||
oled_write_cmd(0xd3);
|
||||
oled_write_cmd(0x00);
|
||||
|
||||
oled_write_cmd(0xd5);
|
||||
oled_write_cmd(0xf0);
|
||||
|
||||
oled_write_cmd(0xd9);
|
||||
oled_write_cmd(0x22);
|
||||
|
||||
oled_write_cmd(0xda);
|
||||
oled_write_cmd(0x02);
|
||||
|
||||
oled_write_cmd(0xdb);
|
||||
oled_write_cmd(0x20);
|
||||
|
||||
oled_write_cmd(0x8d);
|
||||
oled_write_cmd(0x14);
|
||||
|
||||
oled_write_cmd(0xaf);
|
||||
HAL_Delay(100);
|
||||
oled_clear();
|
||||
oled_refresh();
|
||||
}
|
||||
|
||||
20
Core/OLED_Driver/oled.h
Normal file
20
Core/OLED_Driver/oled.h
Normal file
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
* oled.h
|
||||
*
|
||||
* Created on: Nov 17, 2021
|
||||
* Author: wvv
|
||||
*/
|
||||
#ifndef OLED_H
|
||||
#define OLED_H
|
||||
|
||||
#include "stm32g4xx_hal.h"
|
||||
|
||||
#define OLED_WIDTH 128
|
||||
#define OLED_HEIGHT 8
|
||||
#define PIXEL_MODE_PAINT 0
|
||||
#define PIXEL_MODE_CLEAR 1
|
||||
extern uint8_t oled_buf[OLED_HEIGHT * OLED_WIDTH];
|
||||
|
||||
void oled_refresh(void);
|
||||
void oled_init(void);
|
||||
#endif //OLED_H
|
||||
125
Core/OLED_Driver/syscalls.c
Normal file
125
Core/OLED_Driver/syscalls.c
Normal file
@@ -0,0 +1,125 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file syscalls.c
|
||||
* @author Auto-generated by STM32CubeIDE
|
||||
* @brief STM32CubeIDE Minimal System calls file
|
||||
*
|
||||
* For more information about which c-functions
|
||||
* need which of these lowlevel functions
|
||||
* please consult the Newlib libc-manual
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2020 STMicroelectronics.
|
||||
* All rights reserved.</center></h2>
|
||||
*
|
||||
* This software component is licensed by ST under BSD 3-Clause license,
|
||||
* the "License"; You may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at:
|
||||
* opensource.org/licenses/BSD-3-Clause
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Includes */
|
||||
#include <stdlib.h>
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <signal.h>
|
||||
#include <time.h>
|
||||
#include <time.h>
|
||||
|
||||
|
||||
/* Variables */
|
||||
extern int __io_putchar(int ch) __attribute__((weak));
|
||||
extern int __io_getchar(void) __attribute__((weak));
|
||||
|
||||
|
||||
char *__env[1] = { 0 };
|
||||
char **environ = __env;
|
||||
|
||||
|
||||
/* Functions */
|
||||
void initialise_monitor_handles()
|
||||
{
|
||||
}
|
||||
|
||||
int _getpid(void)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
int _kill(int pid, int sig)
|
||||
{
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
|
||||
void _exit (int status)
|
||||
{
|
||||
_kill(status, -1);
|
||||
while (1) {} /* Make sure we hang here */
|
||||
}
|
||||
|
||||
__attribute__((weak)) int _read(int file, char *ptr, int len)
|
||||
{
|
||||
int DataIdx;
|
||||
|
||||
for (DataIdx = 0; DataIdx < len; DataIdx++)
|
||||
{
|
||||
*ptr++ = __io_getchar();
|
||||
}
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
__attribute__((weak)) int _write(int file, char *ptr, int len)
|
||||
{
|
||||
int DataIdx;
|
||||
|
||||
for (DataIdx = 0; DataIdx < len; DataIdx++)
|
||||
{
|
||||
__io_putchar(*ptr++);
|
||||
}
|
||||
return len;
|
||||
}
|
||||
|
||||
int _close(int file)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
int _isatty(int file)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
int _lseek(int file, int ptr, int dir)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int _open(char *path, int flags, ...)
|
||||
{
|
||||
/* Pretend like we always fail */
|
||||
return -1;
|
||||
}
|
||||
|
||||
int _wait(int *status)
|
||||
{
|
||||
errno = 0;
|
||||
return -1;
|
||||
}
|
||||
|
||||
int _unlink(char *name)
|
||||
{
|
||||
errno = 0;
|
||||
return -1;
|
||||
}
|
||||
|
||||
int _execve(char *name, char **argv, char **env)
|
||||
{
|
||||
errno = ENOMEM;
|
||||
return -1;
|
||||
}
|
||||
148
Core/Src/i2c.c
Normal file
148
Core/Src/i2c.c
Normal file
@@ -0,0 +1,148 @@
|
||||
/* USER CODE BEGIN Header */
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file i2c.c
|
||||
* @brief This file provides code for the configuration
|
||||
* of the I2C instances.
|
||||
******************************************************************************
|
||||
* @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 "i2c.h"
|
||||
|
||||
/* USER CODE BEGIN 0 */
|
||||
|
||||
/* USER CODE END 0 */
|
||||
|
||||
I2C_HandleTypeDef hi2c1;
|
||||
|
||||
/* I2C1 init function */
|
||||
void MX_I2C1_Init(void)
|
||||
{
|
||||
|
||||
/* USER CODE BEGIN I2C1_Init 0 */
|
||||
|
||||
/* USER CODE END I2C1_Init 0 */
|
||||
|
||||
/* USER CODE BEGIN I2C1_Init 1 */
|
||||
|
||||
/* USER CODE END I2C1_Init 1 */
|
||||
hi2c1.Instance = I2C1;
|
||||
hi2c1.Init.Timing = 0x40B285C2;
|
||||
hi2c1.Init.OwnAddress1 = 0;
|
||||
hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
|
||||
hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
|
||||
hi2c1.Init.OwnAddress2 = 0;
|
||||
hi2c1.Init.OwnAddress2Masks = I2C_OA2_NOMASK;
|
||||
hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
|
||||
hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
|
||||
if (HAL_I2C_Init(&hi2c1) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
|
||||
/** Configure Analogue filter
|
||||
*/
|
||||
if (HAL_I2CEx_ConfigAnalogFilter(&hi2c1, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
|
||||
/** Configure Digital filter
|
||||
*/
|
||||
if (HAL_I2CEx_ConfigDigitalFilter(&hi2c1, 0) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
/* USER CODE BEGIN I2C1_Init 2 */
|
||||
|
||||
/* USER CODE END I2C1_Init 2 */
|
||||
|
||||
}
|
||||
|
||||
void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle)
|
||||
{
|
||||
|
||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||
RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
|
||||
if(i2cHandle->Instance==I2C1)
|
||||
{
|
||||
/* USER CODE BEGIN I2C1_MspInit 0 */
|
||||
|
||||
/* USER CODE END I2C1_MspInit 0 */
|
||||
|
||||
/** Initializes the peripherals clocks
|
||||
*/
|
||||
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C1;
|
||||
PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_PCLK1;
|
||||
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
|
||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||
/**I2C1 GPIO Configuration
|
||||
PA15 ------> I2C1_SCL
|
||||
PB7 ------> I2C1_SDA
|
||||
*/
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_15;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_7;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
|
||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||
|
||||
/* I2C1 clock enable */
|
||||
__HAL_RCC_I2C1_CLK_ENABLE();
|
||||
/* USER CODE BEGIN I2C1_MspInit 1 */
|
||||
|
||||
/* USER CODE END I2C1_MspInit 1 */
|
||||
}
|
||||
}
|
||||
|
||||
void HAL_I2C_MspDeInit(I2C_HandleTypeDef* i2cHandle)
|
||||
{
|
||||
|
||||
if(i2cHandle->Instance==I2C1)
|
||||
{
|
||||
/* USER CODE BEGIN I2C1_MspDeInit 0 */
|
||||
|
||||
/* USER CODE END I2C1_MspDeInit 0 */
|
||||
/* Peripheral clock disable */
|
||||
__HAL_RCC_I2C1_CLK_DISABLE();
|
||||
|
||||
/**I2C1 GPIO Configuration
|
||||
PA15 ------> I2C1_SCL
|
||||
PB7 ------> I2C1_SDA
|
||||
*/
|
||||
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_15);
|
||||
|
||||
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_7);
|
||||
|
||||
/* USER CODE BEGIN I2C1_MspDeInit 1 */
|
||||
|
||||
/* USER CODE END I2C1_MspDeInit 1 */
|
||||
}
|
||||
}
|
||||
|
||||
/* USER CODE BEGIN 1 */
|
||||
|
||||
/* USER CODE END 1 */
|
||||
@@ -19,6 +19,7 @@
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "main.h"
|
||||
#include "adc.h"
|
||||
#include "i2c.h"
|
||||
#include "tim.h"
|
||||
#include "gpio.h"
|
||||
|
||||
@@ -91,6 +92,7 @@ int main(void)
|
||||
MX_ADC1_Init();
|
||||
MX_TIM17_Init();
|
||||
MX_TIM1_Init();
|
||||
MX_I2C1_Init();
|
||||
/* USER CODE BEGIN 2 */
|
||||
UKSI_Init();
|
||||
/* USER CODE END 2 */
|
||||
|
||||
@@ -60,7 +60,7 @@ float ADC_Calc(ADC_t *adc)
|
||||
return 0;
|
||||
ADC_Coefs_t *coefs = &adc->Coefs;
|
||||
|
||||
int16_t rawval = (int16_t)HAL_ADC_GetValue(adc->hadc);
|
||||
int16_t rawval = HAL_ADC_GetValue(adc->hadc);
|
||||
|
||||
|
||||
rawval = Filter_Process(&adc->mdn, rawval);
|
||||
@@ -83,18 +83,22 @@ HAL_StatusTypeDef UKSI_Calc_Init(UKSI_Calc_t *calc, ADC_HandleTypeDef *hadc)
|
||||
return HAL_ERROR;
|
||||
|
||||
calc->adc.hadc = hadc;
|
||||
ADC_ConfigCoef(&calc->adc, 0, 1.411, 1860, 14);
|
||||
// ADC_ConfigCoef(&calc->adc, 0, 1.259, 1639, 14);
|
||||
ADC_ConfigCoef(&calc->adc, 0, 0.529, 703, 14);
|
||||
ADC_ConfigFilter(&calc->adc, 10, 50000);
|
||||
|
||||
calc->RMeasOhm = 35060;
|
||||
calc->RLimitOhm = 1.5e6;
|
||||
calc->DCVoltage = 63;
|
||||
calc->DCVoltage = 31.58;//60;
|
||||
|
||||
foster_init(&calc->adc.foster, 3000.0f);
|
||||
foster_set_mse(&calc->adc.foster, 0.001f); /* Подберите под ваши значения напряжения */
|
||||
|
||||
HAL_ADCEx_Calibration_Start(hadc, ADC_SINGLE_ENDED);
|
||||
|
||||
calc->IsoOhm = 100e6;
|
||||
calc->IsoMOhm = calc->IsoOhm / 1000000.0f;
|
||||
|
||||
return HAL_ADC_Start(hadc);
|
||||
}
|
||||
|
||||
@@ -113,9 +117,13 @@ float UKSI_Calc_Isolation(UKSI_Calc_t *calc)
|
||||
|
||||
if(Filter_isDataReady(&calc->adc.avg))
|
||||
{
|
||||
/* Расчет тока */
|
||||
float current = voltage / calc->RMeasOhm;
|
||||
calc->IsoCurrentuA = current * 1000000.0f;
|
||||
|
||||
/* Проверка стабильности напряжения */
|
||||
foster_add_sample(&calc->adc.foster, voltage);
|
||||
|
||||
|
||||
if(foster_is_ready(&calc->adc.foster)) {
|
||||
uint8_t stability = foster_check(&calc->adc.foster);
|
||||
calc->adc.is_stable = stability;
|
||||
@@ -126,14 +134,12 @@ float UKSI_Calc_Isolation(UKSI_Calc_t *calc)
|
||||
}
|
||||
}
|
||||
|
||||
/* Расчет изоляции */
|
||||
float current = voltage / calc->RMeasOhm;
|
||||
/* Расчет изоляции */
|
||||
float Rtotal = calc->DCVoltage / current;
|
||||
float Riso = Rtotal - (calc->RMeasOhm + calc->RLimitOhm);
|
||||
|
||||
calc->IsoOhm = Riso;
|
||||
calc->IsoMOhm = Riso / 1000000.0f;
|
||||
calc->IsoCurrentuA = current * 1000000.0f;
|
||||
|
||||
}
|
||||
return calc->IsoOhm;
|
||||
|
||||
@@ -1,37 +1,49 @@
|
||||
#include "uksi_main.h"
|
||||
#include "uksi_oled.h"
|
||||
#include "adc.h"
|
||||
#include "tim.h"
|
||||
UKSI_Calc_t uksi_calc;
|
||||
UKSI_DC_t uksi_dc;
|
||||
float iso_result;
|
||||
float iso_result = 100;
|
||||
int dbg_dc = 0;
|
||||
int dbg_dc_delay = 5000;
|
||||
int dc_min_period = 5000;
|
||||
int pause_period = 5000;
|
||||
int measure_period = 2500;
|
||||
void UKSI_Init()
|
||||
{
|
||||
DC_Init(&uksi_dc, &htim1, TIM_OCMODE_INACTIVE, TIM_OCMODE_ACTIVE);
|
||||
UKSI_Calc_Init(&uksi_calc, &hadc1);
|
||||
oled_init();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void UKSI_prewhile()
|
||||
{
|
||||
iso_result = uksi_calc.IsoOhm;
|
||||
}
|
||||
|
||||
|
||||
void UKSI_while()
|
||||
{
|
||||
static uint32_t prev_oled_tick = 0;
|
||||
static uint32_t prev_dc_tick = 0;
|
||||
static uint32_t start_measure_tick = 0;
|
||||
float curr_iso = 0;
|
||||
DC_Enable(&uksi_dc, dbg_dc);
|
||||
|
||||
if(uwTick - prev_oled_tick > 1000)
|
||||
{
|
||||
prev_oled_tick = uwTick;
|
||||
UKSI_Print(iso_result/1000000, dbg_dc, uksi_calc.adc.Voltage, uksi_calc.IsoCurrentuA);
|
||||
}
|
||||
|
||||
if(dbg_dc)
|
||||
{
|
||||
curr_iso = UKSI_Calc_Isolation(&uksi_calc);
|
||||
if(uwTick - prev_dc_tick > dbg_dc_delay) // подаем импульс минимум на секунду
|
||||
if(uwTick - prev_dc_tick > dc_min_period) // подаем импульс на минимальный период
|
||||
{
|
||||
if(!foster_check(&uksi_calc.adc.foster)) // если стабильный уровень найден - отключаем на секунду источник
|
||||
if(!foster_check(&uksi_calc.adc.foster)) // если стабильный уровень найден
|
||||
{
|
||||
if(start_measure_tick == 0)
|
||||
{
|
||||
@@ -39,7 +51,7 @@ void UKSI_while()
|
||||
}
|
||||
else
|
||||
{
|
||||
if(uwTick - start_measure_tick > dbg_dc_delay)
|
||||
if(uwTick - start_measure_tick > measure_period)
|
||||
{
|
||||
dbg_dc = 0;
|
||||
start_measure_tick = 0;
|
||||
@@ -48,11 +60,18 @@ void UKSI_while()
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(curr_iso > 10000000)
|
||||
{
|
||||
dbg_dc = 0;
|
||||
start_measure_tick = 0;
|
||||
prev_dc_tick = uwTick;
|
||||
iso_result = curr_iso;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(uwTick - prev_dc_tick > dbg_dc_delay) // подаем импульс минимум на секунду
|
||||
if(uwTick - prev_dc_tick > pause_period) // ждем паузу перед новой подачей импульса
|
||||
{
|
||||
dbg_dc = 1;
|
||||
prev_dc_tick = uwTick;
|
||||
|
||||
85
Core/UKSI/uksi_oled.c
Normal file
85
Core/UKSI/uksi_oled.c
Normal file
@@ -0,0 +1,85 @@
|
||||
#include "uksi_oled.h"
|
||||
|
||||
void UKSI_Print(float Iso, uint8_t DCState, float Voltage, float Current_uA)
|
||||
{
|
||||
int second_layer = 22;
|
||||
// Очищаем буфер
|
||||
GFX_Clean_Buffer_Frame(oled_buf);
|
||||
|
||||
// 1. Сопротивление изоляции - крупно сверху
|
||||
char iso_str[20];
|
||||
|
||||
// Для STM32 sprintf не поддерживает %f, используем dtostrf или ручное форматирование
|
||||
if (Iso >= 100.0f) {
|
||||
sprintf(iso_str, "OL MOhm");
|
||||
} else if (Iso >= 1.0f) {
|
||||
int int_part = (int)Iso;
|
||||
int dec_part = (int)((Iso - int_part) * 100);
|
||||
sprintf(iso_str, "%d.%02d MOhm", int_part, dec_part);
|
||||
} else if (Iso >= 0.001f) {
|
||||
float kOhm = Iso * 1000.0f;
|
||||
int int_part = (int)kOhm;
|
||||
sprintf(iso_str, "%d kOhm", int_part);
|
||||
} else {
|
||||
float Ohm = Iso * 1000000.0f;
|
||||
int int_part = (int)Ohm;
|
||||
sprintf(iso_str, "%d Ohm", int_part);
|
||||
}
|
||||
|
||||
// Отображаем сопротивление
|
||||
GFX_Output_String(oled_buf, 10, 2, iso_str, GFX_FONT_TAHOMA_15, 1, 0);
|
||||
|
||||
|
||||
// 2. Состояние DC
|
||||
uint8_t x = 105; // позиция импульса
|
||||
uint8_t y = 14; // нижний уровень
|
||||
uint8_t h = 8; // высота импульса
|
||||
uint8_t wl = 2; // длина нижнего уровня
|
||||
uint8_t wh = 9; // ширина верхнего уровня
|
||||
if (DCState)
|
||||
{
|
||||
// _|
|
||||
__GFX_Draw_Line(oled_buf, x, y, x + wl, y, 1);
|
||||
__GFX_Draw_Line(oled_buf, x + wl, y, x + wl, y - h, 1);
|
||||
|
||||
// ─ верх
|
||||
__GFX_Draw_Line(oled_buf, x + wl, y - h, x + wl + wh, y - h, 1);
|
||||
|
||||
// |_
|
||||
__GFX_Draw_Line(oled_buf, x + wl + wh, y - h, x + wl + wh, y, 1);
|
||||
__GFX_Draw_Line(oled_buf, x + wl + wh, y, x + wl*2 + wh, y, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
// просто __
|
||||
__GFX_Draw_Line(oled_buf, x, y, x + wl*2 + wh, y, 1);
|
||||
}
|
||||
|
||||
// 3. Напряжение (0-2В)
|
||||
char volt_str[16];
|
||||
int volt_int = (int)(Voltage * 1000); // милливольты
|
||||
sprintf(volt_str, "U: %d.%03dV", volt_int / 1000, volt_int % 1000);
|
||||
GFX_Output_String(oled_buf, 10, 22, volt_str, GFX_FONT_TAHOMA_8, 1, 0);
|
||||
|
||||
// 4. Ток (уже в мкА)
|
||||
char curr_str[16];
|
||||
int curr_int = (int)Current_uA;
|
||||
|
||||
if (Current_uA >= 1000.0f) {
|
||||
sprintf(curr_str, "I: %duA", curr_int);
|
||||
} else if (Current_uA >= 100.0f) {
|
||||
int dec_part = (int)((Current_uA - curr_int) * 1);
|
||||
sprintf(curr_str, "I: %duA", curr_int);
|
||||
} else if (Current_uA >= 10.0f) {
|
||||
int dec_part = (int)((Current_uA - curr_int) * 10);
|
||||
sprintf(curr_str, "I: %d.%01duA", curr_int, dec_part);
|
||||
} else {
|
||||
int dec_part = (int)((Current_uA - curr_int) * 100);
|
||||
sprintf(curr_str, "I: %d.%02duA", curr_int, dec_part);
|
||||
}
|
||||
|
||||
GFX_Output_String(oled_buf, 72, 22, curr_str, GFX_FONT_TAHOMA_8, 1, 0);
|
||||
|
||||
// 6. Обновляем дисплей
|
||||
oled_refresh();
|
||||
}
|
||||
9
Core/UKSI/uksi_oled.h
Normal file
9
Core/UKSI/uksi_oled.h
Normal file
@@ -0,0 +1,9 @@
|
||||
|
||||
#ifndef _UKSI_OLED_H
|
||||
#define _UKSI_OLED_H
|
||||
|
||||
#include "gfx_lib.h"
|
||||
#include "oled.h"
|
||||
|
||||
void UKSI_Print(float Iso, uint8_t DCState, float Voltage, float Current);
|
||||
#endif //_UKSI_OLED_H
|
||||
Reference in New Issue
Block a user