Merge branch 'bugfix-2.0.x' of https://github.com/MarlinFirmware/Marlin into bugfix-2.0.x
This commit is contained in:
@@ -451,6 +451,7 @@
|
||||
* 67 : 500kΩ SliceEngineering 450°C Thermistor
|
||||
* 70 : 100kΩ bq Hephestos 2
|
||||
* 75 : 100kΩ Generic Silicon Heat Pad with NTC100K MGB18-104F39050L32
|
||||
* 2000 : 100kΩ Ultimachine Rambo TDK NTCG104LH104KT1 NTC100K motherboard Thermistor
|
||||
*
|
||||
* Analog Thermistors - 1kΩ pullup - Atypical, and requires changing out the 4.7kΩ pullup for 1kΩ.
|
||||
* ------- (but gives greater accuracy and more stable PID)
|
||||
|
||||
+1
-1
@@ -41,7 +41,7 @@
|
||||
* here we define this default string as the date where the latest release
|
||||
* version was tagged.
|
||||
*/
|
||||
//#define STRING_DISTRIBUTION_DATE "2021-07-13"
|
||||
//#define STRING_DISTRIBUTION_DATE "2021-07-19"
|
||||
|
||||
/**
|
||||
* Defines a generic printer name to be output to the LCD after booting Marlin.
|
||||
|
||||
@@ -240,7 +240,7 @@
|
||||
}
|
||||
|
||||
// all the others
|
||||
static uint32_t spiDelayCyclesX4 = 4 * (F_CPU) / 1000000; // 4µs => 125khz
|
||||
static uint16_t spiDelayNS = 4000; // 4000ns => 125khz
|
||||
|
||||
static uint8_t spiTransferX(uint8_t b) { // using Mode 0
|
||||
int bits = 8;
|
||||
@@ -249,12 +249,12 @@
|
||||
b <<= 1; // little setup time
|
||||
|
||||
WRITE(SD_SCK_PIN, HIGH);
|
||||
DELAY_CYCLES(spiDelayCyclesX4);
|
||||
DELAY_NS(spiDelayNS);
|
||||
|
||||
b |= (READ(SD_MISO_PIN) != 0);
|
||||
|
||||
WRITE(SD_SCK_PIN, LOW);
|
||||
DELAY_CYCLES(spiDelayCyclesX4);
|
||||
DELAY_NS(spiDelayNS);
|
||||
} while (--bits);
|
||||
return b;
|
||||
}
|
||||
@@ -510,7 +510,7 @@
|
||||
spiRxBlock = (pfnSpiRxBlock)spiRxBlockX;
|
||||
break;
|
||||
default:
|
||||
spiDelayCyclesX4 = ((F_CPU) / 1000000) >> (6 - spiRate) << 2; // spiRate of 2 gives the maximum error with current CPU
|
||||
spiDelayNS = 4000 >> (6 - spiRate); // spiRate of 2 gives the maximum error with current CPU
|
||||
spiTransferTx = (pfnSpiTransfer)spiTransferX;
|
||||
spiTransferRx = (pfnSpiTransfer)spiTransferX;
|
||||
spiTxBlock = (pfnSpiTxBlock)spiTxBlockX;
|
||||
|
||||
@@ -28,319 +28,296 @@
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#if NONE(STM32F103xE, STM32F103xG, STM32F4xx, STM32F7xx)
|
||||
#error "ERROR - Only STM32F103xE, STM32F103xG, STM32F4xx or STM32F7xx CPUs supported"
|
||||
// use local drivers
|
||||
#if defined(STM32F103xE) || defined(STM32F103xG)
|
||||
#include <stm32f1xx_hal_rcc_ex.h>
|
||||
#include <stm32f1xx_hal_sd.h>
|
||||
#elif defined(STM32F4xx)
|
||||
#include <stm32f4xx_hal_rcc.h>
|
||||
#include <stm32f4xx_hal_dma.h>
|
||||
#include <stm32f4xx_hal_gpio.h>
|
||||
#include <stm32f4xx_hal_sd.h>
|
||||
#elif defined(STM32F7xx)
|
||||
#include <stm32f7xx_hal_rcc.h>
|
||||
#include <stm32f7xx_hal_dma.h>
|
||||
#include <stm32f7xx_hal_gpio.h>
|
||||
#include <stm32f7xx_hal_sd.h>
|
||||
#else
|
||||
#error "SDIO only supported with STM32F103xE, STM32F103xG, STM32F4xx, or STM32F7xx."
|
||||
#endif
|
||||
|
||||
#if HAS_SD_HOST_DRIVE
|
||||
// Fixed
|
||||
#define SDIO_D0_PIN PC8
|
||||
#define SDIO_D1_PIN PC9
|
||||
#define SDIO_D2_PIN PC10
|
||||
#define SDIO_D3_PIN PC11
|
||||
#define SDIO_CK_PIN PC12
|
||||
#define SDIO_CMD_PIN PD2
|
||||
|
||||
// use USB drivers
|
||||
SD_HandleTypeDef hsd; // create SDIO structure
|
||||
// F4 supports one DMA for RX and another for TX, but Marlin will never
|
||||
// do read and write at same time, so we use the same DMA for both.
|
||||
DMA_HandleTypeDef hdma_sdio;
|
||||
|
||||
extern "C" {
|
||||
int8_t SD_MSC_Read(uint8_t lun, uint8_t *buf, uint32_t blk_addr, uint16_t blk_len);
|
||||
int8_t SD_MSC_Write(uint8_t lun, uint8_t *buf, uint32_t blk_addr, uint16_t blk_len);
|
||||
extern SD_HandleTypeDef hsd;
|
||||
}
|
||||
/*
|
||||
SDIO_INIT_CLK_DIV is 118
|
||||
SDIO clock frequency is 48MHz / (TRANSFER_CLOCK_DIV + 2)
|
||||
SDIO init clock frequency should not exceed 400KHz = 48MHz / (118 + 2)
|
||||
|
||||
bool SDIO_Init() {
|
||||
return hsd.State == HAL_SD_STATE_READY; // return pass/fail status
|
||||
}
|
||||
Default TRANSFER_CLOCK_DIV is 2 (118 / 40)
|
||||
Default SDIO clock frequency is 48MHz / (2 + 2) = 12 MHz
|
||||
This might be too fast for stable SDIO operations
|
||||
|
||||
bool SDIO_ReadBlock(uint32_t block, uint8_t *src) {
|
||||
int8_t status = SD_MSC_Read(0, (uint8_t*)src, block, 1); // read one 512 byte block
|
||||
return (bool) status;
|
||||
}
|
||||
MKS Robin board seems to have stable SDIO with BusWide 1bit and ClockDiv 8 i.e. 4.8MHz SDIO clock frequency
|
||||
Additional testing is required as there are clearly some 4bit initialization problems
|
||||
*/
|
||||
|
||||
bool SDIO_WriteBlock(uint32_t block, const uint8_t *src) {
|
||||
int8_t status = SD_MSC_Write(0, (uint8_t*)src, block, 1); // write one 512 byte block
|
||||
return (bool) status;
|
||||
}
|
||||
#ifndef USBD_OK
|
||||
#define USBD_OK 0
|
||||
#endif
|
||||
|
||||
#else // !USBD_USE_CDC_COMPOSITE
|
||||
// Target Clock, configurable. Default is 18MHz, from STM32F1
|
||||
#ifndef SDIO_CLOCK
|
||||
#define SDIO_CLOCK 18000000 // 18 MHz
|
||||
#endif
|
||||
|
||||
// use local drivers
|
||||
#if defined(STM32F103xE) || defined(STM32F103xG)
|
||||
#include <stm32f1xx_hal_rcc_ex.h>
|
||||
#include <stm32f1xx_hal_sd.h>
|
||||
#elif defined(STM32F4xx)
|
||||
#include <stm32f4xx_hal_rcc.h>
|
||||
#include <stm32f4xx_hal_dma.h>
|
||||
#include <stm32f4xx_hal_gpio.h>
|
||||
#include <stm32f4xx_hal_sd.h>
|
||||
#elif defined(STM32F7xx)
|
||||
#include <stm32f7xx_hal_rcc.h>
|
||||
#include <stm32f7xx_hal_dma.h>
|
||||
#include <stm32f7xx_hal_gpio.h>
|
||||
#include <stm32f7xx_hal_sd.h>
|
||||
#else
|
||||
#error "ERROR - Only STM32F103xE, STM32F103xG, STM32F4xx or STM32F7xx CPUs supported"
|
||||
// SDIO retries, configurable. Default is 3, from STM32F1
|
||||
#ifndef SDIO_READ_RETRIES
|
||||
#define SDIO_READ_RETRIES 3
|
||||
#endif
|
||||
|
||||
// SDIO Max Clock (naming from STM Manual, don't change)
|
||||
#define SDIOCLK 48000000
|
||||
|
||||
static uint32_t clock_to_divider(uint32_t clk) {
|
||||
// limit the SDIO master clock to 8/3 of PCLK2. See STM32 Manuals
|
||||
// Also limited to no more than 48Mhz (SDIOCLK).
|
||||
const uint32_t pclk2 = HAL_RCC_GetPCLK2Freq();
|
||||
clk = min(clk, (uint32_t)(pclk2 * 8 / 3));
|
||||
clk = min(clk, (uint32_t)SDIOCLK);
|
||||
// Round up divider, so we don't run the card over the speed supported,
|
||||
// and subtract by 2, because STM32 will add 2, as written in the manual:
|
||||
// SDIO_CK frequency = SDIOCLK / [CLKDIV + 2]
|
||||
return pclk2 / clk + (pclk2 % clk != 0) - 2;
|
||||
}
|
||||
|
||||
void go_to_transfer_speed() {
|
||||
/* Default SDIO peripheral configuration for SD card initialization */
|
||||
hsd.Init.ClockEdge = hsd.Init.ClockEdge;
|
||||
hsd.Init.ClockBypass = hsd.Init.ClockBypass;
|
||||
hsd.Init.ClockPowerSave = hsd.Init.ClockPowerSave;
|
||||
hsd.Init.BusWide = hsd.Init.BusWide;
|
||||
hsd.Init.HardwareFlowControl = hsd.Init.HardwareFlowControl;
|
||||
hsd.Init.ClockDiv = clock_to_divider(SDIO_CLOCK);
|
||||
|
||||
/* Initialize SDIO peripheral interface with default configuration */
|
||||
SDIO_Init(hsd.Instance, hsd.Init);
|
||||
}
|
||||
|
||||
void SD_LowLevel_Init(void) {
|
||||
uint32_t tempreg;
|
||||
|
||||
__HAL_RCC_GPIOC_CLK_ENABLE(); //enable GPIO clocks
|
||||
__HAL_RCC_GPIOD_CLK_ENABLE(); //enable GPIO clocks
|
||||
|
||||
GPIO_InitTypeDef GPIO_InitStruct;
|
||||
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
GPIO_InitStruct.Pull = 1; //GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
||||
|
||||
#if DISABLED(STM32F1xx)
|
||||
GPIO_InitStruct.Alternate = GPIO_AF12_SDIO;
|
||||
#endif
|
||||
|
||||
// Fixed
|
||||
#define SDIO_D0_PIN PC8
|
||||
#define SDIO_D1_PIN PC9
|
||||
#define SDIO_D2_PIN PC10
|
||||
#define SDIO_D3_PIN PC11
|
||||
#define SDIO_CK_PIN PC12
|
||||
#define SDIO_CMD_PIN PD2
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_8 | GPIO_PIN_12; // D0 & SCK
|
||||
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
||||
|
||||
SD_HandleTypeDef hsd; // create SDIO structure
|
||||
// F4 supports one DMA for RX and another for TX, but Marlin will never
|
||||
// do read and write at same time, so we use the same DMA for both.
|
||||
DMA_HandleTypeDef hdma_sdio;
|
||||
|
||||
/*
|
||||
SDIO_INIT_CLK_DIV is 118
|
||||
SDIO clock frequency is 48MHz / (TRANSFER_CLOCK_DIV + 2)
|
||||
SDIO init clock frequency should not exceed 400KHz = 48MHz / (118 + 2)
|
||||
|
||||
Default TRANSFER_CLOCK_DIV is 2 (118 / 40)
|
||||
Default SDIO clock frequency is 48MHz / (2 + 2) = 12 MHz
|
||||
This might be too fast for stable SDIO operations
|
||||
|
||||
MKS Robin board seems to have stable SDIO with BusWide 1bit and ClockDiv 8 i.e. 4.8MHz SDIO clock frequency
|
||||
Additional testing is required as there are clearly some 4bit initialization problems
|
||||
*/
|
||||
|
||||
#ifndef USBD_OK
|
||||
#define USBD_OK 0
|
||||
#endif
|
||||
|
||||
// Target Clock, configurable. Default is 18MHz, from STM32F1
|
||||
#ifndef SDIO_CLOCK
|
||||
#define SDIO_CLOCK 18000000 // 18 MHz
|
||||
#endif
|
||||
|
||||
// SDIO retries, configurable. Default is 3, from STM32F1
|
||||
#ifndef SDIO_READ_RETRIES
|
||||
#define SDIO_READ_RETRIES 3
|
||||
#endif
|
||||
|
||||
// SDIO Max Clock (naming from STM Manual, don't change)
|
||||
#define SDIOCLK 48000000
|
||||
|
||||
static uint32_t clock_to_divider(uint32_t clk) {
|
||||
// limit the SDIO master clock to 8/3 of PCLK2. See STM32 Manuals
|
||||
// Also limited to no more than 48Mhz (SDIOCLK).
|
||||
const uint32_t pclk2 = HAL_RCC_GetPCLK2Freq();
|
||||
clk = min(clk, (uint32_t)(pclk2 * 8 / 3));
|
||||
clk = min(clk, (uint32_t)SDIOCLK);
|
||||
// Round up divider, so we don't run the card over the speed supported,
|
||||
// and subtract by 2, because STM32 will add 2, as written in the manual:
|
||||
// SDIO_CK frequency = SDIOCLK / [CLKDIV + 2]
|
||||
return pclk2 / clk + (pclk2 % clk != 0) - 2;
|
||||
}
|
||||
|
||||
void go_to_transfer_speed() {
|
||||
/* Default SDIO peripheral configuration for SD card initialization */
|
||||
hsd.Init.ClockEdge = hsd.Init.ClockEdge;
|
||||
hsd.Init.ClockBypass = hsd.Init.ClockBypass;
|
||||
hsd.Init.ClockPowerSave = hsd.Init.ClockPowerSave;
|
||||
hsd.Init.BusWide = hsd.Init.BusWide;
|
||||
hsd.Init.HardwareFlowControl = hsd.Init.HardwareFlowControl;
|
||||
hsd.Init.ClockDiv = clock_to_divider(SDIO_CLOCK);
|
||||
|
||||
/* Initialize SDIO peripheral interface with default configuration */
|
||||
SDIO_Init(hsd.Instance, hsd.Init);
|
||||
}
|
||||
|
||||
void SD_LowLevel_Init(void) {
|
||||
uint32_t tempreg;
|
||||
|
||||
__HAL_RCC_GPIOC_CLK_ENABLE(); //enable GPIO clocks
|
||||
__HAL_RCC_GPIOD_CLK_ENABLE(); //enable GPIO clocks
|
||||
|
||||
GPIO_InitTypeDef GPIO_InitStruct;
|
||||
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
GPIO_InitStruct.Pull = 1; //GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
||||
|
||||
#if DISABLED(STM32F1xx)
|
||||
GPIO_InitStruct.Alternate = GPIO_AF12_SDIO;
|
||||
#endif
|
||||
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_8 | GPIO_PIN_12; // D0 & SCK
|
||||
#if PINS_EXIST(SDIO_D1, SDIO_D2, SDIO_D3) // define D1-D3 only if have a four bit wide SDIO bus
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11; // D1-D3
|
||||
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
||||
#endif
|
||||
|
||||
#if PINS_EXIST(SDIO_D1, SDIO_D2, SDIO_D3) // define D1-D3 only if have a four bit wide SDIO bus
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11; // D1-D3
|
||||
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
||||
#endif
|
||||
// Configure PD.02 CMD line
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_2;
|
||||
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
|
||||
|
||||
// Configure PD.02 CMD line
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_2;
|
||||
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
|
||||
// Setup DMA
|
||||
#if defined(STM32F1xx)
|
||||
hdma_sdio.Init.Mode = DMA_NORMAL;
|
||||
hdma_sdio.Instance = DMA2_Channel4;
|
||||
HAL_NVIC_EnableIRQ(DMA2_Channel4_5_IRQn);
|
||||
#elif defined(STM32F4xx)
|
||||
hdma_sdio.Init.Mode = DMA_PFCTRL;
|
||||
hdma_sdio.Instance = DMA2_Stream3;
|
||||
hdma_sdio.Init.Channel = DMA_CHANNEL_4;
|
||||
hdma_sdio.Init.FIFOMode = DMA_FIFOMODE_ENABLE;
|
||||
hdma_sdio.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL;
|
||||
hdma_sdio.Init.MemBurst = DMA_MBURST_INC4;
|
||||
hdma_sdio.Init.PeriphBurst = DMA_PBURST_INC4;
|
||||
HAL_NVIC_EnableIRQ(DMA2_Stream3_IRQn);
|
||||
#endif
|
||||
HAL_NVIC_EnableIRQ(SDIO_IRQn);
|
||||
hdma_sdio.Init.PeriphInc = DMA_PINC_DISABLE;
|
||||
hdma_sdio.Init.MemInc = DMA_MINC_ENABLE;
|
||||
hdma_sdio.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
|
||||
hdma_sdio.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
|
||||
hdma_sdio.Init.Priority = DMA_PRIORITY_LOW;
|
||||
__HAL_LINKDMA(&hsd, hdmarx, hdma_sdio);
|
||||
__HAL_LINKDMA(&hsd, hdmatx, hdma_sdio);
|
||||
|
||||
// Setup DMA
|
||||
#if defined(STM32F1xx)
|
||||
hdma_sdio.Init.Mode = DMA_NORMAL;
|
||||
hdma_sdio.Instance = DMA2_Channel4;
|
||||
HAL_NVIC_EnableIRQ(DMA2_Channel4_5_IRQn);
|
||||
#elif defined(STM32F4xx)
|
||||
hdma_sdio.Init.Mode = DMA_PFCTRL;
|
||||
hdma_sdio.Instance = DMA2_Stream3;
|
||||
hdma_sdio.Init.Channel = DMA_CHANNEL_4;
|
||||
hdma_sdio.Init.FIFOMode = DMA_FIFOMODE_ENABLE;
|
||||
hdma_sdio.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL;
|
||||
hdma_sdio.Init.MemBurst = DMA_MBURST_INC4;
|
||||
hdma_sdio.Init.PeriphBurst = DMA_PBURST_INC4;
|
||||
HAL_NVIC_EnableIRQ(DMA2_Stream3_IRQn);
|
||||
#endif
|
||||
HAL_NVIC_EnableIRQ(SDIO_IRQn);
|
||||
hdma_sdio.Init.PeriphInc = DMA_PINC_DISABLE;
|
||||
hdma_sdio.Init.MemInc = DMA_MINC_ENABLE;
|
||||
hdma_sdio.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
|
||||
hdma_sdio.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
|
||||
hdma_sdio.Init.Priority = DMA_PRIORITY_LOW;
|
||||
__HAL_LINKDMA(&hsd, hdmarx, hdma_sdio);
|
||||
__HAL_LINKDMA(&hsd, hdmatx, hdma_sdio);
|
||||
#if defined(STM32F1xx)
|
||||
__HAL_RCC_SDIO_CLK_ENABLE();
|
||||
__HAL_RCC_DMA2_CLK_ENABLE();
|
||||
#else
|
||||
__HAL_RCC_SDIO_FORCE_RESET();
|
||||
delay(2);
|
||||
__HAL_RCC_SDIO_RELEASE_RESET();
|
||||
delay(2);
|
||||
__HAL_RCC_SDIO_CLK_ENABLE();
|
||||
|
||||
#if defined(STM32F1xx)
|
||||
__HAL_RCC_SDIO_CLK_ENABLE();
|
||||
__HAL_RCC_DMA2_CLK_ENABLE();
|
||||
#else
|
||||
__HAL_RCC_SDIO_FORCE_RESET();
|
||||
delay(2);
|
||||
__HAL_RCC_SDIO_RELEASE_RESET();
|
||||
delay(2);
|
||||
__HAL_RCC_SDIO_CLK_ENABLE();
|
||||
__HAL_RCC_DMA2_FORCE_RESET();
|
||||
delay(2);
|
||||
__HAL_RCC_DMA2_RELEASE_RESET();
|
||||
delay(2);
|
||||
__HAL_RCC_DMA2_CLK_ENABLE();
|
||||
#endif
|
||||
|
||||
__HAL_RCC_DMA2_FORCE_RESET();
|
||||
delay(2);
|
||||
__HAL_RCC_DMA2_RELEASE_RESET();
|
||||
delay(2);
|
||||
__HAL_RCC_DMA2_CLK_ENABLE();
|
||||
#endif
|
||||
//Initialize the SDIO (with initial <400Khz Clock)
|
||||
tempreg = 0; //Reset value
|
||||
tempreg |= SDIO_CLKCR_CLKEN; // Clock enabled
|
||||
tempreg |= SDIO_INIT_CLK_DIV; // Clock Divider. Clock = 48000 / (118 + 2) = 400Khz
|
||||
// Keep the rest at 0 => HW_Flow Disabled, Rising Clock Edge, Disable CLK ByPass, Bus Width = 0, Power save Disable
|
||||
SDIO->CLKCR = tempreg;
|
||||
|
||||
//Initialize the SDIO (with initial <400Khz Clock)
|
||||
tempreg = 0; //Reset value
|
||||
tempreg |= SDIO_CLKCR_CLKEN; // Clock enabled
|
||||
tempreg |= SDIO_INIT_CLK_DIV; // Clock Divider. Clock = 48000 / (118 + 2) = 400Khz
|
||||
// Keep the rest at 0 => HW_Flow Disabled, Rising Clock Edge, Disable CLK ByPass, Bus Width = 0, Power save Disable
|
||||
SDIO->CLKCR = tempreg;
|
||||
// Power up the SDIO
|
||||
SDIO_PowerState_ON(SDIO);
|
||||
hsd.Instance = SDIO;
|
||||
}
|
||||
|
||||
// Power up the SDIO
|
||||
SDIO_PowerState_ON(SDIO);
|
||||
hsd.Instance = SDIO;
|
||||
void HAL_SD_MspInit(SD_HandleTypeDef *hsd) { // application specific init
|
||||
UNUSED(hsd); // Prevent unused argument(s) compilation warning
|
||||
__HAL_RCC_SDIO_CLK_ENABLE(); // turn on SDIO clock
|
||||
}
|
||||
|
||||
bool SDIO_Init() {
|
||||
uint8_t retryCnt = SDIO_READ_RETRIES;
|
||||
|
||||
bool status;
|
||||
hsd.Instance = SDIO;
|
||||
hsd.State = HAL_SD_STATE_RESET;
|
||||
|
||||
SD_LowLevel_Init();
|
||||
|
||||
uint8_t retry_Cnt = retryCnt;
|
||||
for (;;) {
|
||||
TERN_(USE_WATCHDOG, HAL_watchdog_refresh());
|
||||
status = (bool) HAL_SD_Init(&hsd);
|
||||
if (!status) break;
|
||||
if (!--retry_Cnt) return false; // return failing status if retries are exhausted
|
||||
}
|
||||
|
||||
void HAL_SD_MspInit(SD_HandleTypeDef *hsd) { // application specific init
|
||||
UNUSED(hsd); // Prevent unused argument(s) compilation warning
|
||||
__HAL_RCC_SDIO_CLK_ENABLE(); // turn on SDIO clock
|
||||
}
|
||||
go_to_transfer_speed();
|
||||
|
||||
bool SDIO_Init() {
|
||||
uint8_t retryCnt = SDIO_READ_RETRIES;
|
||||
|
||||
bool status;
|
||||
hsd.Instance = SDIO;
|
||||
hsd.State = HAL_SD_STATE_RESET;
|
||||
|
||||
SD_LowLevel_Init();
|
||||
|
||||
uint8_t retry_Cnt = retryCnt;
|
||||
#if PINS_EXIST(SDIO_D1, SDIO_D2, SDIO_D3) // go to 4 bit wide mode if pins are defined
|
||||
retry_Cnt = retryCnt;
|
||||
for (;;) {
|
||||
TERN_(USE_WATCHDOG, HAL_watchdog_refresh());
|
||||
status = (bool) HAL_SD_Init(&hsd);
|
||||
if (!status) break;
|
||||
if (!--retry_Cnt) return false; // return failing status if retries are exhausted
|
||||
if (!HAL_SD_ConfigWideBusOperation(&hsd, SDIO_BUS_WIDE_4B)) break; // some cards are only 1 bit wide so a pass here is not required
|
||||
if (!--retry_Cnt) break;
|
||||
}
|
||||
|
||||
go_to_transfer_speed();
|
||||
|
||||
#if PINS_EXIST(SDIO_D1, SDIO_D2, SDIO_D3) // go to 4 bit wide mode if pins are defined
|
||||
if (!retry_Cnt) { // wide bus failed, go back to one bit wide mode
|
||||
hsd.State = (HAL_SD_StateTypeDef) 0; // HAL_SD_STATE_RESET
|
||||
SD_LowLevel_Init();
|
||||
retry_Cnt = retryCnt;
|
||||
for (;;) {
|
||||
TERN_(USE_WATCHDOG, HAL_watchdog_refresh());
|
||||
if (!HAL_SD_ConfigWideBusOperation(&hsd, SDIO_BUS_WIDE_4B)) break; // some cards are only 1 bit wide so a pass here is not required
|
||||
if (!--retry_Cnt) break;
|
||||
status = (bool) HAL_SD_Init(&hsd);
|
||||
if (!status) break;
|
||||
if (!--retry_Cnt) return false; // return failing status if retries are exhausted
|
||||
}
|
||||
if (!retry_Cnt) { // wide bus failed, go back to one bit wide mode
|
||||
hsd.State = (HAL_SD_StateTypeDef) 0; // HAL_SD_STATE_RESET
|
||||
SD_LowLevel_Init();
|
||||
retry_Cnt = retryCnt;
|
||||
for (;;) {
|
||||
TERN_(USE_WATCHDOG, HAL_watchdog_refresh());
|
||||
status = (bool) HAL_SD_Init(&hsd);
|
||||
if (!status) break;
|
||||
if (!--retry_Cnt) return false; // return failing status if retries are exhausted
|
||||
}
|
||||
go_to_transfer_speed();
|
||||
}
|
||||
#endif
|
||||
go_to_transfer_speed();
|
||||
}
|
||||
#endif
|
||||
|
||||
return true;
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool SDIO_ReadWriteBlock_DMA(uint32_t block, const uint8_t *src, uint8_t *dst) {
|
||||
if (HAL_SD_GetCardState(&hsd) != HAL_SD_CARD_TRANSFER) return false;
|
||||
|
||||
TERN_(USE_WATCHDOG, HAL_watchdog_refresh());
|
||||
|
||||
HAL_StatusTypeDef ret;
|
||||
if (src) {
|
||||
hdma_sdio.Init.Direction = DMA_MEMORY_TO_PERIPH;
|
||||
HAL_DMA_Init(&hdma_sdio);
|
||||
ret = HAL_SD_WriteBlocks_DMA(&hsd, (uint8_t *)src, block, 1);
|
||||
}
|
||||
else {
|
||||
hdma_sdio.Init.Direction = DMA_PERIPH_TO_MEMORY;
|
||||
HAL_DMA_Init(&hdma_sdio);
|
||||
ret = HAL_SD_ReadBlocks_DMA(&hsd, (uint8_t *)dst, block, 1);
|
||||
}
|
||||
|
||||
static bool SDIO_ReadWriteBlock_DMA(uint32_t block, const uint8_t *src, uint8_t *dst) {
|
||||
if (HAL_SD_GetCardState(&hsd) != HAL_SD_CARD_TRANSFER) return false;
|
||||
if (ret != HAL_OK) {
|
||||
HAL_DMA_Abort_IT(&hdma_sdio);
|
||||
HAL_DMA_DeInit(&hdma_sdio);
|
||||
return false;
|
||||
}
|
||||
|
||||
TERN_(USE_WATCHDOG, HAL_watchdog_refresh());
|
||||
|
||||
HAL_StatusTypeDef ret;
|
||||
if (src) {
|
||||
hdma_sdio.Init.Direction = DMA_MEMORY_TO_PERIPH;
|
||||
HAL_DMA_Init(&hdma_sdio);
|
||||
ret = HAL_SD_WriteBlocks_DMA(&hsd, (uint8_t *)src, block, 1);
|
||||
}
|
||||
else {
|
||||
hdma_sdio.Init.Direction = DMA_PERIPH_TO_MEMORY;
|
||||
HAL_DMA_Init(&hdma_sdio);
|
||||
ret = HAL_SD_ReadBlocks_DMA(&hsd, (uint8_t *)dst, block, 1);
|
||||
}
|
||||
|
||||
if (ret != HAL_OK) {
|
||||
millis_t timeout = millis() + 500;
|
||||
// Wait the transfer
|
||||
while (hsd.State != HAL_SD_STATE_READY) {
|
||||
if (ELAPSED(millis(), timeout)) {
|
||||
HAL_DMA_Abort_IT(&hdma_sdio);
|
||||
HAL_DMA_DeInit(&hdma_sdio);
|
||||
return false;
|
||||
}
|
||||
|
||||
millis_t timeout = millis() + 500;
|
||||
// Wait the transfer
|
||||
while (hsd.State != HAL_SD_STATE_READY) {
|
||||
if (ELAPSED(millis(), timeout)) {
|
||||
HAL_DMA_Abort_IT(&hdma_sdio);
|
||||
HAL_DMA_DeInit(&hdma_sdio);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
while (__HAL_DMA_GET_FLAG(&hdma_sdio, __HAL_DMA_GET_TC_FLAG_INDEX(&hdma_sdio)) != 0
|
||||
|| __HAL_DMA_GET_FLAG(&hdma_sdio, __HAL_DMA_GET_TE_FLAG_INDEX(&hdma_sdio)) != 0) { /* nada */ }
|
||||
|
||||
HAL_DMA_Abort_IT(&hdma_sdio);
|
||||
HAL_DMA_DeInit(&hdma_sdio);
|
||||
|
||||
timeout = millis() + 500;
|
||||
while (HAL_SD_GetCardState(&hsd) != HAL_SD_CARD_TRANSFER) if (ELAPSED(millis(), timeout)) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool SDIO_ReadBlock(uint32_t block, uint8_t *dst) {
|
||||
uint8_t retries = SDIO_READ_RETRIES;
|
||||
while (retries--) if (SDIO_ReadWriteBlock_DMA(block, NULL, dst)) return true;
|
||||
return false;
|
||||
}
|
||||
while (__HAL_DMA_GET_FLAG(&hdma_sdio, __HAL_DMA_GET_TC_FLAG_INDEX(&hdma_sdio)) != 0
|
||||
|| __HAL_DMA_GET_FLAG(&hdma_sdio, __HAL_DMA_GET_TE_FLAG_INDEX(&hdma_sdio)) != 0) { /* nada */ }
|
||||
|
||||
bool SDIO_WriteBlock(uint32_t block, const uint8_t *src) {
|
||||
uint8_t retries = SDIO_READ_RETRIES;
|
||||
while (retries--) if (SDIO_ReadWriteBlock_DMA(block, src, NULL)) return true;
|
||||
return false;
|
||||
}
|
||||
HAL_DMA_Abort_IT(&hdma_sdio);
|
||||
HAL_DMA_DeInit(&hdma_sdio);
|
||||
|
||||
#if defined(STM32F1xx)
|
||||
#define DMA_IRQ_HANDLER DMA2_Channel4_5_IRQHandler
|
||||
#elif defined(STM32F4xx)
|
||||
#define DMA_IRQ_HANDLER DMA2_Stream3_IRQHandler
|
||||
#else
|
||||
#error "Unknown STM32 architecture."
|
||||
#endif
|
||||
timeout = millis() + 500;
|
||||
while (HAL_SD_GetCardState(&hsd) != HAL_SD_CARD_TRANSFER) if (ELAPSED(millis(), timeout)) return false;
|
||||
|
||||
extern "C" void SDIO_IRQHandler(void) { HAL_SD_IRQHandler(&hsd); }
|
||||
extern "C" void DMA_IRQ_HANDLER(void) { HAL_DMA_IRQHandler(&hdma_sdio); }
|
||||
return true;
|
||||
}
|
||||
|
||||
bool SDIO_ReadBlock(uint32_t block, uint8_t *dst) {
|
||||
uint8_t retries = SDIO_READ_RETRIES;
|
||||
while (retries--) if (SDIO_ReadWriteBlock_DMA(block, NULL, dst)) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
bool SDIO_WriteBlock(uint32_t block, const uint8_t *src) {
|
||||
uint8_t retries = SDIO_READ_RETRIES;
|
||||
while (retries--) if (SDIO_ReadWriteBlock_DMA(block, src, NULL)) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
bool SDIO_IsReady() {
|
||||
return hsd.State == HAL_SD_STATE_READY;
|
||||
}
|
||||
|
||||
uint32_t SDIO_GetCardSize() {
|
||||
return (uint32_t)(hsd.SdCard.BlockNbr) * (hsd.SdCard.BlockSize);
|
||||
}
|
||||
|
||||
#if defined(STM32F1xx)
|
||||
#define DMA_IRQ_HANDLER DMA2_Channel4_5_IRQHandler
|
||||
#elif defined(STM32F4xx)
|
||||
#define DMA_IRQ_HANDLER DMA2_Stream3_IRQHandler
|
||||
#else
|
||||
#error "Unknown STM32 architecture."
|
||||
#endif
|
||||
|
||||
extern "C" void SDIO_IRQHandler(void) { HAL_SD_IRQHandler(&hsd); }
|
||||
extern "C" void DMA_IRQ_HANDLER(void) { HAL_DMA_IRQHandler(&hdma_sdio); }
|
||||
|
||||
#endif // !USBD_USE_CDC_COMPOSITE
|
||||
#endif // SDIO_SUPPORT
|
||||
#endif // ARDUINO_ARCH_STM32 && !STM32GENERIC && !MAPLE_STM32F1
|
||||
|
||||
@@ -19,10 +19,10 @@
|
||||
|
||||
#if HAS_SD_HOST_DRIVE
|
||||
|
||||
#include "../shared/Marduino.h"
|
||||
#include "msc_sd.h"
|
||||
#include "usbd_core.h"
|
||||
|
||||
#include "../shared/Marduino.h"
|
||||
#include "../../sd/cardreader.h"
|
||||
|
||||
#include <USB.h>
|
||||
|
||||
@@ -184,6 +184,10 @@ bool SDIO_WriteBlock(uint32_t blockAddress, const uint8_t *data) {
|
||||
|
||||
inline uint32_t SDIO_GetCardState() { return SDIO_CmdSendStatus(SdCard.RelCardAdd << 16U) ? (SDIO_GetResponse(SDIO_RESP1) >> 9U) & 0x0FU : SDIO_CARD_ERROR; }
|
||||
|
||||
// No F1 board with SDIO + MSC using Maple, that I aware of...
|
||||
bool SDIO_IsReady() { return true; }
|
||||
uint32_t SDIO_GetCardSize() { return 0; }
|
||||
|
||||
// ------------------------
|
||||
// SD Commands and Responses
|
||||
// ------------------------
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
#if HAS_TFT_LVGL_UI
|
||||
#include "lcd/extui/mks_ui/tft_lvgl_configuration.h"
|
||||
#include "lcd/extui/mks_ui/draw_ui.h"
|
||||
#include "lcd/extui/mks_ui/mks_hardware_test.h"
|
||||
#include "lcd/extui/mks_ui/mks_hardware.h"
|
||||
#include <lvgl.h>
|
||||
#endif
|
||||
|
||||
@@ -514,7 +514,6 @@ inline void manage_inactivity(const bool no_stepper_sleep=false) {
|
||||
constexpr millis_t HOME_DEBOUNCE_DELAY = 1000UL;
|
||||
static millis_t next_home_key_ms; // = 0
|
||||
if (!IS_SD_PRINTING() && !READ(HOME_PIN)) { // HOME_PIN goes LOW when pressed
|
||||
const millis_t ms = millis();
|
||||
if (ELAPSED(ms, next_home_key_ms)) {
|
||||
next_home_key_ms = ms + HOME_DEBOUNCE_DELAY;
|
||||
LCD_MESSAGEPGM(MSG_AUTO_HOME);
|
||||
@@ -526,7 +525,6 @@ inline void manage_inactivity(const bool no_stepper_sleep=false) {
|
||||
#if ENABLED(CUSTOM_USER_BUTTONS)
|
||||
// Handle a custom user button if defined
|
||||
const bool printer_not_busy = !printingIsActive();
|
||||
const millis_t ms = millis();
|
||||
#define HAS_CUSTOM_USER_BUTTON(N) (PIN_EXISTS(BUTTON##N) && defined(BUTTON##N##_HIT_STATE) && defined(BUTTON##N##_GCODE))
|
||||
#define HAS_BETTER_USER_BUTTON(N) HAS_CUSTOM_USER_BUTTON(N) && defined(BUTTON##N##_DESC)
|
||||
#define _CHECK_CUSTOM_USER_BUTTON(N, CODE) do{ \
|
||||
@@ -1275,9 +1273,7 @@ void setup() {
|
||||
if (mcu & RST_SOFTWARE) SERIAL_ECHOLNPGM(STR_SOFTWARE_RESET);
|
||||
HAL_clear_reset_source();
|
||||
|
||||
SERIAL_ECHOPGM_P(GET_TEXT(MSG_MARLIN));
|
||||
SERIAL_CHAR(' ');
|
||||
SERIAL_ECHOLNPGM(SHORT_BUILD_VERSION);
|
||||
SERIAL_ECHOLNPGM("Marlin " SHORT_BUILD_VERSION);
|
||||
SERIAL_EOL();
|
||||
#if defined(STRING_DISTRIBUTION_DATE) && defined(STRING_CONFIG_H_AUTHOR)
|
||||
SERIAL_ECHO_MSG(
|
||||
|
||||
@@ -249,7 +249,7 @@
|
||||
#define BOARD_BTT_SKR_V1_4_TURBO 2508 // BigTreeTech SKR v1.4 TURBO (Power outputs: Hotend0, Hotend1, Fan, Bed)
|
||||
#define BOARD_MKS_SGEN_L_V2 2509 // MKS SGEN_L V2 (Power outputs: Hotend0, Hotend1, Bed, Fan)
|
||||
#define BOARD_BTT_SKR_E3_TURBO 2510 // BigTreeTech SKR E3 Turbo (Power outputs: Hotend0, Hotend1, Bed, Fan0, Fan1)
|
||||
#define BOARD_FLY_CDY 2511 // FLY_CDY (Power outputs: Hotend0, Hotend1, Hotend2, Bed, Fan0, Fan1, Fan2)
|
||||
#define BOARD_FLY_CDY 2511 // FLYmaker FLY CDY (Power outputs: Hotend0, Hotend1, Hotend2, Bed, Fan0, Fan1, Fan2)
|
||||
|
||||
//
|
||||
// SAM3X8E ARM Cortex M3
|
||||
@@ -340,7 +340,7 @@
|
||||
#define BOARD_CREALITY_V452 4042 // Creality v4.5.2 (STM32F103RE)
|
||||
#define BOARD_CREALITY_V453 4043 // Creality v4.5.3 (STM32F103RE)
|
||||
#define BOARD_TRIGORILLA_PRO 4044 // Trigorilla Pro (STM32F103ZET6)
|
||||
#define BOARD_FLY_MINI 4045 // FLY MINI (STM32F103RCT6)
|
||||
#define BOARD_FLY_MINI 4045 // FLYmaker FLY MINI (STM32F103RCT6)
|
||||
#define BOARD_FLSUN_HISPEED 4046 // FLSUN HiSpeedV1 (STM32F103VET6)
|
||||
#define BOARD_BEAST 4047 // STM32F103RET6 Libmaple-based controller
|
||||
#define BOARD_MINGDA_MPX_ARM_MINI 4048 // STM32F103ZET6 Mingda MD-16
|
||||
@@ -380,7 +380,7 @@
|
||||
#define BOARD_FYSETC_S6 4220 // FYSETC S6 (STM32F446VET6)
|
||||
#define BOARD_FYSETC_S6_V2_0 4221 // FYSETC S6 v2.0 (STM32F446VET6)
|
||||
#define BOARD_FYSETC_SPIDER 4222 // FYSETC Spider (STM32F446VET6)
|
||||
#define BOARD_FLYF407ZG 4223 // FLYF407ZG (STM32F407ZG)
|
||||
#define BOARD_FLYF407ZG 4223 // FLYmaker FLYF407ZG (STM32F407ZG)
|
||||
#define BOARD_MKS_ROBIN2 4224 // MKS_ROBIN2 (STM32F407ZE)
|
||||
#define BOARD_MKS_ROBIN_PRO_V2 4225 // MKS Robin Pro V2 (STM32F407VE)
|
||||
#define BOARD_MKS_ROBIN_NANO_V3 4226 // MKS Robin Nano V3 (STM32F407VG)
|
||||
|
||||
@@ -42,15 +42,12 @@ typedef const char Language_Str[];
|
||||
#ifndef LCD_LANGUAGE_2
|
||||
#define LCD_LANGUAGE_2 LCD_LANGUAGE
|
||||
#endif
|
||||
|
||||
#ifndef LCD_LANGUAGE_3
|
||||
#define LCD_LANGUAGE_3 LCD_LANGUAGE_2
|
||||
#endif
|
||||
|
||||
#ifndef LCD_LANGUAGE_4
|
||||
#define LCD_LANGUAGE_4 LCD_LANGUAGE_3
|
||||
#endif
|
||||
|
||||
#ifndef LCD_LANGUAGE_5
|
||||
#define LCD_LANGUAGE_5 LCD_LANGUAGE_4
|
||||
#endif
|
||||
|
||||
@@ -916,11 +916,11 @@ void set_message_with_feedback(PGM_P const msg_P) {
|
||||
if (do_ubl_mesh_map) display_map(param.T_map_type); // Show user where we're probing
|
||||
|
||||
if (parser.seen_test('B')) {
|
||||
SERIAL_ECHOPGM_P(GET_TEXT(MSG_UBL_BC_INSERT));
|
||||
SERIAL_ECHOPGM("Place Shim & Measure");
|
||||
LCD_MESSAGEPGM(MSG_UBL_BC_INSERT);
|
||||
}
|
||||
else {
|
||||
SERIAL_ECHOPGM_P(GET_TEXT(MSG_UBL_BC_INSERT2));
|
||||
SERIAL_ECHOPGM("Measure");
|
||||
LCD_MESSAGEPGM(MSG_UBL_BC_INSERT2);
|
||||
}
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@ MMU2 mmu2;
|
||||
#define MMU2_NO_TOOL 99
|
||||
#define MMU_BAUD 115200
|
||||
|
||||
bool MMU2::enabled, MMU2::ready, MMU2::mmu_print_saved;
|
||||
bool MMU2::_enabled, MMU2::ready, MMU2::mmu_print_saved;
|
||||
#if HAS_PRUSA_MMU2S
|
||||
bool MMU2::mmu2s_triggered;
|
||||
#endif
|
||||
@@ -219,7 +219,7 @@ void MMU2::mmu_loop() {
|
||||
|
||||
DEBUG_ECHOLNPAIR("MMU => ", finda, "\nMMU - ENABLED");
|
||||
|
||||
enabled = true;
|
||||
_enabled = true;
|
||||
state = 1;
|
||||
TERN_(HAS_PRUSA_MMU2S, mmu2s_triggered = false);
|
||||
}
|
||||
@@ -480,7 +480,7 @@ static void mmu2_not_responding() {
|
||||
*/
|
||||
void MMU2::tool_change(const uint8_t index) {
|
||||
|
||||
if (!enabled) return;
|
||||
if (!_enabled) return;
|
||||
|
||||
set_runout_valid(false);
|
||||
|
||||
@@ -512,7 +512,7 @@ static void mmu2_not_responding() {
|
||||
* Tc Load to nozzle after filament was prepared by Tx and extruder nozzle is already heated.
|
||||
*/
|
||||
void MMU2::tool_change(const char *special) {
|
||||
if (!enabled) return;
|
||||
if (!_enabled) return;
|
||||
|
||||
set_runout_valid(false);
|
||||
|
||||
@@ -561,7 +561,7 @@ static void mmu2_not_responding() {
|
||||
* Handle tool change
|
||||
*/
|
||||
void MMU2::tool_change(const uint8_t index) {
|
||||
if (!enabled) return;
|
||||
if (!_enabled) return;
|
||||
|
||||
set_runout_valid(false);
|
||||
|
||||
@@ -599,7 +599,7 @@ static void mmu2_not_responding() {
|
||||
* Tc Load to nozzle after filament was prepared by Tx and extruder nozzle is already heated.
|
||||
*/
|
||||
void MMU2::tool_change(const char *special) {
|
||||
if (!enabled) return;
|
||||
if (!_enabled) return;
|
||||
|
||||
set_runout_valid(false);
|
||||
|
||||
@@ -665,7 +665,7 @@ static void mmu2_not_responding() {
|
||||
* Handle tool change
|
||||
*/
|
||||
void MMU2::tool_change(const uint8_t index) {
|
||||
if (!enabled) return;
|
||||
if (!_enabled) return;
|
||||
|
||||
set_runout_valid(false);
|
||||
|
||||
@@ -693,7 +693,7 @@ static void mmu2_not_responding() {
|
||||
* Tc Load to nozzle after filament was prepared by Tx and extruder nozzle is already heated.
|
||||
*/
|
||||
void MMU2::tool_change(const char *special) {
|
||||
if (!enabled) return;
|
||||
if (!_enabled) return;
|
||||
|
||||
set_runout_valid(false);
|
||||
|
||||
@@ -744,7 +744,7 @@ static void mmu2_not_responding() {
|
||||
* Set next command
|
||||
*/
|
||||
void MMU2::command(const uint8_t mmu_cmd) {
|
||||
if (!enabled) return;
|
||||
if (!_enabled) return;
|
||||
cmd = mmu_cmd;
|
||||
ready = false;
|
||||
}
|
||||
@@ -833,7 +833,7 @@ void MMU2::manage_response(const bool move_axes, const bool turn_off_nozzle) {
|
||||
}
|
||||
|
||||
void MMU2::set_filament_type(const uint8_t index, const uint8_t filamentType) {
|
||||
if (!enabled) return;
|
||||
if (!_enabled) return;
|
||||
|
||||
cmd_arg = filamentType;
|
||||
command(MMU_CMD_F0 + index);
|
||||
@@ -892,7 +892,7 @@ void MMU2::filament_runout() {
|
||||
|
||||
// Load filament into MMU2
|
||||
void MMU2::load_filament(const uint8_t index) {
|
||||
if (!enabled) return;
|
||||
if (!_enabled) return;
|
||||
|
||||
command(MMU_CMD_L0 + index);
|
||||
manage_response(false, false);
|
||||
@@ -904,7 +904,7 @@ void MMU2::load_filament(const uint8_t index) {
|
||||
*/
|
||||
bool MMU2::load_filament_to_nozzle(const uint8_t index) {
|
||||
|
||||
if (!enabled) return false;
|
||||
if (!_enabled) return false;
|
||||
|
||||
if (thermalManager.tooColdToExtrude(active_extruder)) {
|
||||
BUZZ(200, 404);
|
||||
@@ -940,7 +940,7 @@ void MMU2::load_to_nozzle() {
|
||||
|
||||
bool MMU2::eject_filament(const uint8_t index, const bool recover) {
|
||||
|
||||
if (!enabled) return false;
|
||||
if (!_enabled) return false;
|
||||
|
||||
if (thermalManager.tooColdToExtrude(active_extruder)) {
|
||||
BUZZ(200, 404);
|
||||
@@ -989,7 +989,7 @@ bool MMU2::eject_filament(const uint8_t index, const bool recover) {
|
||||
*/
|
||||
bool MMU2::unload() {
|
||||
|
||||
if (!enabled) return false;
|
||||
if (!_enabled) return false;
|
||||
|
||||
if (thermalManager.tooColdToExtrude(active_extruder)) {
|
||||
BUZZ(200, 404);
|
||||
|
||||
@@ -43,6 +43,7 @@ public:
|
||||
|
||||
static void init();
|
||||
static void reset();
|
||||
static inline bool enabled() { return _enabled; }
|
||||
static void mmu_loop();
|
||||
static void tool_change(const uint8_t index);
|
||||
static void tool_change(const char *special);
|
||||
@@ -88,7 +89,7 @@ private:
|
||||
static void mmu_continue_loading();
|
||||
#endif
|
||||
|
||||
static bool enabled, ready, mmu_print_saved;
|
||||
static bool _enabled, ready, mmu_print_saved;
|
||||
|
||||
static uint8_t cmd, cmd_arg, last_cmd, extruder;
|
||||
static int8_t state;
|
||||
|
||||
@@ -38,6 +38,8 @@
|
||||
#include "../gcode/gcode.h"
|
||||
#endif
|
||||
|
||||
#if EITHER(PSU_CONTROL, AUTO_POWER_CONTROL)
|
||||
|
||||
Power powerManager;
|
||||
bool Power::psu_on;
|
||||
|
||||
@@ -214,3 +216,5 @@ void Power::power_off() {
|
||||
#endif
|
||||
|
||||
#endif // AUTO_POWER_CONTROL
|
||||
|
||||
#endif // PSU_CONTROL || AUTO_POWER_CONTROL
|
||||
|
||||
@@ -93,7 +93,7 @@ void GcodeSuite::M852() {
|
||||
|
||||
if (!ijk) {
|
||||
SERIAL_ECHO_START();
|
||||
SERIAL_ECHOPGM_P(GET_TEXT(MSG_SKEW_FACTOR));
|
||||
SERIAL_ECHOPGM("Skew Factor");
|
||||
SERIAL_ECHOPAIR_F(" XY: ", planner.skew_factor.xy, 6);
|
||||
#if ENABLED(SKEW_CORRECTION_FOR_Z)
|
||||
SERIAL_ECHOPAIR_F(" XZ: ", planner.skew_factor.xz, 6);
|
||||
|
||||
@@ -260,10 +260,10 @@
|
||||
#endif
|
||||
|
||||
case Z_AXIS:
|
||||
TERN_(Z_HAS_STEALTCHOP, if (index < 2) TMC_SET_PWMTHRS(Z,Z));
|
||||
TERN_(Z2_HAS_STEALTCHOP, if (index == 0 || index == 2) TMC_SET_PWMTHRS(Z,Z2));
|
||||
TERN_(Z3_HAS_STEALTCHOP, if (index == 0 || index == 3) TMC_SET_PWMTHRS(Z,Z3));
|
||||
TERN_(Z4_HAS_STEALTCHOP, if (index == 0 || index == 4) TMC_SET_PWMTHRS(Z,Z4));
|
||||
TERN_(Z_HAS_STEALTHCHOP, if (index < 2) TMC_SET_PWMTHRS(Z,Z));
|
||||
TERN_(Z2_HAS_STEALTHCHOP, if (index == 0 || index == 2) TMC_SET_PWMTHRS(Z,Z2));
|
||||
TERN_(Z3_HAS_STEALTHCHOP, if (index == 0 || index == 3) TMC_SET_PWMTHRS(Z,Z3));
|
||||
TERN_(Z4_HAS_STEALTHCHOP, if (index == 0 || index == 4) TMC_SET_PWMTHRS(Z,Z4));
|
||||
break;
|
||||
#if E_STEPPERS
|
||||
case E_AXIS: {
|
||||
|
||||
@@ -54,6 +54,9 @@ void GcodeSuite::M115() {
|
||||
"PROTOCOL_VERSION:" PROTOCOL_VERSION " "
|
||||
"MACHINE_TYPE:" MACHINE_NAME " "
|
||||
"EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " "
|
||||
#if LINEAR_AXES != XYZ
|
||||
"AXIS_COUNT:" STRINGIFY(LINEAR_AXES) " "
|
||||
#endif
|
||||
#ifdef MACHINE_UUID
|
||||
"UUID:" MACHINE_UUID
|
||||
#endif
|
||||
|
||||
@@ -213,7 +213,7 @@
|
||||
#define LCD_PROGRESS_BAR
|
||||
#endif
|
||||
#if ENABLED(TFTGLCD_PANEL_I2C)
|
||||
#define LCD_I2C_ADDRESS 0x27 // Must be equal to panel's I2C slave addres
|
||||
#define LCD_I2C_ADDRESS 0x33 // Must be 0x33 for STM32 main boards and equal to panel's I2C slave addres
|
||||
#endif
|
||||
#define LCD_USE_I2C_BUZZER // Enable buzzer on LCD, used for both I2C and SPI buses (LiquidTWI2 not required)
|
||||
#define STD_ENCODER_PULSES_PER_STEP 2
|
||||
|
||||
@@ -112,27 +112,9 @@
|
||||
#undef STEALTHCHOP_E
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_BED == 0
|
||||
#undef THERMAL_PROTECTION_BED
|
||||
#undef THERMAL_PROTECTION_BED_PERIOD
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_CHAMBER == 0
|
||||
#undef THERMAL_PROTECTION_CHAMBER
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_COOLER == 0
|
||||
#undef THERMAL_PROTECTION_COOLER
|
||||
#endif
|
||||
|
||||
// Usurp a sensor to do redundant readings
|
||||
#if TEMP_SENSOR_REDUNDANT
|
||||
#define _HEATER_ID(M) HID_##M
|
||||
#define HEATER_ID(M) _HEATER_ID(M)
|
||||
#define REDUNDANT_TEMP_MATCH(M,N) (HEATER_ID(TEMP_SENSOR_REDUNDANT_##M) == _HEATER_ID(N))
|
||||
#else
|
||||
#define REDUNDANT_TEMP_MATCH(...) 0
|
||||
#endif
|
||||
/**
|
||||
* Temperature Sensors; define what sensor(s) we have.
|
||||
*/
|
||||
|
||||
// Temperature sensor IDs
|
||||
#define HID_REDUNDANT -6
|
||||
@@ -150,6 +132,401 @@
|
||||
#define HID_E6 6
|
||||
#define HID_E7 7
|
||||
|
||||
#define ANY_TEMP_SENSOR_IS(n) (n == TEMP_SENSOR_0 || n == TEMP_SENSOR_1 || n == TEMP_SENSOR_2 || n == TEMP_SENSOR_3 \
|
||||
|| n == TEMP_SENSOR_4 || n == TEMP_SENSOR_5 || n == TEMP_SENSOR_6 || n == TEMP_SENSOR_7 \
|
||||
|| n == TEMP_SENSOR_BED \
|
||||
|| n == TEMP_SENSOR_PROBE \
|
||||
|| n == TEMP_SENSOR_CHAMBER \
|
||||
|| n == TEMP_SENSOR_COOLER \
|
||||
|| n == TEMP_SENSOR_REDUNDANT )
|
||||
#if ANY_TEMP_SENSOR_IS(1000)
|
||||
#define HAS_USER_THERMISTORS 1
|
||||
#endif
|
||||
#undef ANY_TEMP_SENSOR_IS
|
||||
|
||||
#if TEMP_SENSOR_REDUNDANT
|
||||
#define _HEATER_ID(M) HID_##M
|
||||
#define HEATER_ID(M) _HEATER_ID(M)
|
||||
#define REDUNDANT_TEMP_MATCH(M,N) (HEATER_ID(TEMP_SENSOR_REDUNDANT_##M) == _HEATER_ID(N))
|
||||
#else
|
||||
#define REDUNDANT_TEMP_MATCH(...) 0
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_0 == -5 || TEMP_SENSOR_0 == -3 || TEMP_SENSOR_0 == -2
|
||||
#define TEMP_SENSOR_0_IS_MAX_TC 1
|
||||
#if TEMP_SENSOR_0 == -5
|
||||
#define TEMP_SENSOR_0_IS_MAX31865 1
|
||||
#define TEMP_SENSOR_0_MAX_TC_TMIN 0
|
||||
#define TEMP_SENSOR_0_MAX_TC_TMAX 1024
|
||||
#ifndef MAX31865_SENSOR_WIRES_0
|
||||
#define MAX31865_SENSOR_WIRES_0 2
|
||||
#endif
|
||||
#elif TEMP_SENSOR_0 == -3
|
||||
#define TEMP_SENSOR_0_IS_MAX31855 1
|
||||
#define TEMP_SENSOR_0_MAX_TC_TMIN -270
|
||||
#define TEMP_SENSOR_0_MAX_TC_TMAX 1800
|
||||
#elif TEMP_SENSOR_0 == -2
|
||||
#define TEMP_SENSOR_0_IS_MAX6675 1
|
||||
#define TEMP_SENSOR_0_MAX_TC_TMIN 0
|
||||
#define TEMP_SENSOR_0_MAX_TC_TMAX 1024
|
||||
#endif
|
||||
#elif TEMP_SENSOR_0 == -4
|
||||
#define TEMP_SENSOR_0_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_0 == -1
|
||||
#define TEMP_SENSOR_0_IS_AD595 1
|
||||
#elif TEMP_SENSOR_0 > 0
|
||||
#define TEMP_SENSOR_0_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_0 == 1000
|
||||
#define TEMP_SENSOR_0_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_0 == 998 || TEMP_SENSOR_0 == 999
|
||||
#define TEMP_SENSOR_0_IS_DUMMY 1
|
||||
#endif
|
||||
#else
|
||||
#undef HEATER_0_MINTEMP
|
||||
#undef HEATER_0_MAXTEMP
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_1 == -5 || TEMP_SENSOR_1 == -3 || TEMP_SENSOR_1 == -2
|
||||
#define TEMP_SENSOR_1_IS_MAX_TC 1
|
||||
#if TEMP_SENSOR_1 == -5
|
||||
#define TEMP_SENSOR_1_IS_MAX31865 1
|
||||
#define TEMP_SENSOR_1_MAX_TC_TMIN 0
|
||||
#define TEMP_SENSOR_1_MAX_TC_TMAX 1024
|
||||
#ifndef MAX31865_SENSOR_WIRES_1
|
||||
#define MAX31865_SENSOR_WIRES_1 2
|
||||
#endif
|
||||
#elif TEMP_SENSOR_1 == -3
|
||||
#define TEMP_SENSOR_1_IS_MAX31855 1
|
||||
#define TEMP_SENSOR_1_MAX_TC_TMIN -270
|
||||
#define TEMP_SENSOR_1_MAX_TC_TMAX 1800
|
||||
#elif TEMP_SENSOR_1 == -2
|
||||
#define TEMP_SENSOR_1_IS_MAX6675 1
|
||||
#define TEMP_SENSOR_1_MAX_TC_TMIN 0
|
||||
#define TEMP_SENSOR_1_MAX_TC_TMAX 1024
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_1 != TEMP_SENSOR_0
|
||||
#if TEMP_SENSOR_1 == -5
|
||||
#error "If MAX31865 Thermocouple (-5) is used for TEMP_SENSOR_1 then TEMP_SENSOR_0 must match."
|
||||
#elif TEMP_SENSOR_1 == -3
|
||||
#error "If MAX31855 Thermocouple (-3) is used for TEMP_SENSOR_1 then TEMP_SENSOR_0 must match."
|
||||
#elif TEMP_SENSOR_1 == -2
|
||||
#error "If MAX6675 Thermocouple (-2) is used for TEMP_SENSOR_1 then TEMP_SENSOR_0 must match."
|
||||
#endif
|
||||
#endif
|
||||
#elif TEMP_SENSOR_1 == -4
|
||||
#define TEMP_SENSOR_1_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_1 == -1
|
||||
#define TEMP_SENSOR_1_IS_AD595 1
|
||||
#elif TEMP_SENSOR_1 > 0
|
||||
#define TEMP_SENSOR_1_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_1 == 1000
|
||||
#define TEMP_SENSOR_1_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_1 == 998 || TEMP_SENSOR_1 == 999
|
||||
#define TEMP_SENSOR_1_IS_DUMMY 1
|
||||
#endif
|
||||
#else
|
||||
#undef HEATER_1_MINTEMP
|
||||
#undef HEATER_1_MAXTEMP
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_REDUNDANT == -5 || TEMP_SENSOR_REDUNDANT == -3 || TEMP_SENSOR_REDUNDANT == -2
|
||||
#define TEMP_SENSOR_REDUNDANT_IS_MAX_TC 1
|
||||
|
||||
#if TEMP_SENSOR_REDUNDANT == -5
|
||||
#if !REDUNDANT_TEMP_MATCH(SOURCE, E0) && !REDUNDANT_TEMP_MATCH(SOURCE, E1)
|
||||
#error "MAX31865 Thermocouples (-5) not supported for TEMP_SENSOR_REDUNDANT_SOURCE other than TEMP_SENSOR_0/TEMP_SENSOR_1 (0/1)."
|
||||
#endif
|
||||
|
||||
#define TEMP_SENSOR_REDUNDANT_IS_MAX31865 1
|
||||
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMIN 0
|
||||
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMAX 1024
|
||||
#elif TEMP_SENSOR_REDUNDANT == -3
|
||||
#if !REDUNDANT_TEMP_MATCH(SOURCE, E0) && !REDUNDANT_TEMP_MATCH(SOURCE, E1)
|
||||
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_REDUNDANT_SOURCE other than TEMP_SENSOR_0/TEMP_SENSOR_1 (0/1)."
|
||||
#endif
|
||||
|
||||
#define TEMP_SENSOR_REDUNDANT_IS_MAX31855 1
|
||||
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMIN -270
|
||||
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMAX 1800
|
||||
#elif TEMP_SENSOR_REDUNDANT == -2
|
||||
#if !REDUNDANT_TEMP_MATCH(SOURCE, E0) && !REDUNDANT_TEMP_MATCH(SOURCE, E1)
|
||||
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_REDUNDANT_SOURCE other than TEMP_SENSOR_0/TEMP_SENSOR_1 (0/1)."
|
||||
#endif
|
||||
|
||||
#define TEMP_SENSOR_REDUNDANT_IS_MAX6675 1
|
||||
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMIN 0
|
||||
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMAX 1024
|
||||
#endif
|
||||
|
||||
// mimic setting up the source TEMP_SENSOR
|
||||
#if REDUNDANT_TEMP_MATCH(SOURCE, E0)
|
||||
#define TEMP_SENSOR_0_MAX_TC_TMIN TEMP_SENSOR_REDUNDANT_MAX_TC_TMIN
|
||||
#define TEMP_SENSOR_0_MAX_TC_TMAX TEMP_SENSOR_REDUNDANT_MAX_TC_TMAX
|
||||
#ifndef MAX31865_SENSOR_WIRES_0
|
||||
#define MAX31865_SENSOR_WIRES_0 2
|
||||
#endif
|
||||
#elif REDUNDANT_TEMP_MATCH(SOURCE, E1)
|
||||
#define TEMP_SENSOR_1_MAX_TC_TMIN TEMP_SENSOR_REDUNDANT_MAX_TC_TMIN
|
||||
#define TEMP_SENSOR_1_MAX_TC_TMAX TEMP_SENSOR_REDUNDANT_MAX_TC_TMAX
|
||||
#ifndef MAX31865_SENSOR_WIRES_1
|
||||
#define MAX31865_SENSOR_WIRES_1 2
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if (TEMP_SENSOR_0_IS_MAX_TC && TEMP_SENSOR_REDUNDANT != TEMP_SENSOR_0) || (TEMP_SENSOR_1_IS_MAX_TC && TEMP_SENSOR_REDUNDANT != TEMP_SENSOR_1)
|
||||
#if TEMP_SENSOR_REDUNDANT == -5
|
||||
#error "If MAX31865 Thermocouple (-5) is used for TEMP_SENSOR_0/TEMP_SENSOR_1 then TEMP_SENSOR_REDUNDANT must match."
|
||||
#elif TEMP_SENSOR_REDUNDANT == -3
|
||||
#error "If MAX31855 Thermocouple (-3) is used for TEMP_SENSOR_0/TEMP_SENSOR_1 then TEMP_SENSOR_REDUNDANT must match."
|
||||
#elif TEMP_SENSOR_REDUNDANT == -2
|
||||
#error "If MAX6675 Thermocouple (-2) is used for TEMP_SENSOR_0/TEMP_SENSOR_1 then TEMP_SENSOR_REDUNDANT must match."
|
||||
#endif
|
||||
#endif
|
||||
#elif TEMP_SENSOR_REDUNDANT == -4
|
||||
#define TEMP_SENSOR_REDUNDANT_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_REDUNDANT == -1
|
||||
#define TEMP_SENSOR_REDUNDANT_IS_AD595 1
|
||||
#elif TEMP_SENSOR_REDUNDANT > 0
|
||||
#define TEMP_SENSOR_REDUNDANT_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_REDUNDANT == 1000
|
||||
#define TEMP_SENSOR_REDUNDANT_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_REDUNDANT == 998 || TEMP_SENSOR_REDUNDANT == 999
|
||||
#error "Dummy sensors are not supported for TEMP_SENSOR_REDUNDANT."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_0_IS_MAX_TC || TEMP_SENSOR_1_IS_MAX_TC || TEMP_SENSOR_REDUNDANT_IS_MAX_TC
|
||||
#define HAS_MAX_TC 1
|
||||
#endif
|
||||
#if TEMP_SENSOR_0_IS_MAX6675 || TEMP_SENSOR_1_IS_MAX6675 || TEMP_SENSOR_REDUNDANT_IS_MAX6675
|
||||
#define HAS_MAX6675 1
|
||||
#endif
|
||||
#if TEMP_SENSOR_0_IS_MAX31855 || TEMP_SENSOR_1_IS_MAX31855 || TEMP_SENSOR_REDUNDANT_IS_MAX31855
|
||||
#define HAS_MAX31855 1
|
||||
#endif
|
||||
#if TEMP_SENSOR_0_IS_MAX31865 || TEMP_SENSOR_1_IS_MAX31865 || TEMP_SENSOR_REDUNDANT_IS_MAX31865
|
||||
#define HAS_MAX31865 1
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_2 == -4
|
||||
#define TEMP_SENSOR_2_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_2 == -3
|
||||
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_2."
|
||||
#elif TEMP_SENSOR_2 == -2
|
||||
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_2."
|
||||
#elif TEMP_SENSOR_2 == -1
|
||||
#define TEMP_SENSOR_2_IS_AD595 1
|
||||
#elif TEMP_SENSOR_2 > 0
|
||||
#define TEMP_SENSOR_2_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_2 == 1000
|
||||
#define TEMP_SENSOR_2_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_2 == 998 || TEMP_SENSOR_2 == 999
|
||||
#define TEMP_SENSOR_2_IS_DUMMY 1
|
||||
#endif
|
||||
#else
|
||||
#undef HEATER_2_MINTEMP
|
||||
#undef HEATER_2_MAXTEMP
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_3 == -4
|
||||
#define TEMP_SENSOR_3_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_3 == -3
|
||||
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_3."
|
||||
#elif TEMP_SENSOR_3 == -2
|
||||
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_3."
|
||||
#elif TEMP_SENSOR_3 == -1
|
||||
#define TEMP_SENSOR_3_IS_AD595 1
|
||||
#elif TEMP_SENSOR_3 > 0
|
||||
#define TEMP_SENSOR_3_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_3 == 1000
|
||||
#define TEMP_SENSOR_3_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_3 == 998 || TEMP_SENSOR_3 == 999
|
||||
#define TEMP_SENSOR_3_IS_DUMMY 1
|
||||
#endif
|
||||
#else
|
||||
#undef HEATER_3_MINTEMP
|
||||
#undef HEATER_3_MAXTEMP
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_4 == -4
|
||||
#define TEMP_SENSOR_4_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_4 == -3
|
||||
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_4."
|
||||
#elif TEMP_SENSOR_4 == -2
|
||||
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_4."
|
||||
#elif TEMP_SENSOR_4 == -1
|
||||
#define TEMP_SENSOR_4_IS_AD595 1
|
||||
#elif TEMP_SENSOR_4 > 0
|
||||
#define TEMP_SENSOR_4_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_4 == 1000
|
||||
#define TEMP_SENSOR_4_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_4 == 998 || TEMP_SENSOR_4 == 999
|
||||
#define TEMP_SENSOR_4_IS_DUMMY 1
|
||||
#endif
|
||||
#else
|
||||
#undef HEATER_4_MINTEMP
|
||||
#undef HEATER_4_MAXTEMP
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_5 == -4
|
||||
#define TEMP_SENSOR_5_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_5 == -3
|
||||
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_5."
|
||||
#elif TEMP_SENSOR_5 == -2
|
||||
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_5."
|
||||
#elif TEMP_SENSOR_5 == -1
|
||||
#define TEMP_SENSOR_5_IS_AD595 1
|
||||
#elif TEMP_SENSOR_5 > 0
|
||||
#define TEMP_SENSOR_5_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_5 == 1000
|
||||
#define TEMP_SENSOR_5_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_5 == 998 || TEMP_SENSOR_5 == 999
|
||||
#define TEMP_SENSOR_5_IS_DUMMY 1
|
||||
#endif
|
||||
#else
|
||||
#undef HEATER_5_MINTEMP
|
||||
#undef HEATER_5_MAXTEMP
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_6 == -4
|
||||
#define TEMP_SENSOR_6_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_6 == -3
|
||||
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_6."
|
||||
#elif TEMP_SENSOR_6 == -2
|
||||
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_6."
|
||||
#elif TEMP_SENSOR_6 == -1
|
||||
#define TEMP_SENSOR_6_IS_AD595 1
|
||||
#elif TEMP_SENSOR_6 > 0
|
||||
#define TEMP_SENSOR_6_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_6 == 1000
|
||||
#define TEMP_SENSOR_6_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_6 == 998 || TEMP_SENSOR_6 == 999
|
||||
#define TEMP_SENSOR_6_IS_DUMMY 1
|
||||
#endif
|
||||
#else
|
||||
#undef HEATER_6_MINTEMP
|
||||
#undef HEATER_6_MAXTEMP
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_7 == -4
|
||||
#define TEMP_SENSOR_7_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_7 == -3
|
||||
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_7."
|
||||
#elif TEMP_SENSOR_7 == -2
|
||||
#error "MAX7775 Thermocouples (-2) not supported for TEMP_SENSOR_7."
|
||||
#elif TEMP_SENSOR_7 == -1
|
||||
#define TEMP_SENSOR_7_IS_AD595 1
|
||||
#elif TEMP_SENSOR_7 > 0
|
||||
#define TEMP_SENSOR_7_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_7 == 1000
|
||||
#define TEMP_SENSOR_7_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_7 == 998 || TEMP_SENSOR_7 == 999
|
||||
#define TEMP_SENSOR_7_IS_DUMMY 1
|
||||
#endif
|
||||
#else
|
||||
#undef HEATER_7_MINTEMP
|
||||
#undef HEATER_7_MAXTEMP
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_BED == -4
|
||||
#define TEMP_SENSOR_BED_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_BED == -3
|
||||
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_BED."
|
||||
#elif TEMP_SENSOR_BED == -2
|
||||
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_BED."
|
||||
#elif TEMP_SENSOR_BED == -1
|
||||
#define TEMP_SENSOR_BED_IS_AD595 1
|
||||
#elif TEMP_SENSOR_BED > 0
|
||||
#define TEMP_SENSOR_BED_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_BED == 1000
|
||||
#define TEMP_SENSOR_BED_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_BED == 998 || TEMP_SENSOR_BED == 999
|
||||
#define TEMP_SENSOR_BED_IS_DUMMY 1
|
||||
#endif
|
||||
#else
|
||||
#undef THERMAL_PROTECTION_BED
|
||||
#undef THERMAL_PROTECTION_BED_PERIOD
|
||||
#undef BED_MINTEMP
|
||||
#undef BED_MAXTEMP
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_CHAMBER == -4
|
||||
#define TEMP_SENSOR_CHAMBER_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_CHAMBER == -3
|
||||
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_CHAMBER."
|
||||
#elif TEMP_SENSOR_CHAMBER == -2
|
||||
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_CHAMBER."
|
||||
#elif TEMP_SENSOR_CHAMBER == -1
|
||||
#define TEMP_SENSOR_CHAMBER_IS_AD595 1
|
||||
#elif TEMP_SENSOR_CHAMBER > 0
|
||||
#define TEMP_SENSOR_CHAMBER_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_CHAMBER == 1000
|
||||
#define TEMP_SENSOR_CHAMBER_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_CHAMBER == 998 || TEMP_SENSOR_CHAMBER == 999
|
||||
#define TEMP_SENSOR_CHAMBER_IS_DUMMY 1
|
||||
#endif
|
||||
#else
|
||||
#undef THERMAL_PROTECTION_CHAMBER
|
||||
#undef CHAMBER_MINTEMP
|
||||
#undef CHAMBER_MAXTEMP
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_COOLER == -4
|
||||
#define TEMP_SENSOR_COOLER_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_COOLER == -3
|
||||
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_COOLER."
|
||||
#elif TEMP_SENSOR_COOLER == -2
|
||||
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_COOLER."
|
||||
#elif TEMP_SENSOR_COOLER == -1
|
||||
#define TEMP_SENSOR_COOLER_IS_AD595 1
|
||||
#elif TEMP_SENSOR_COOLER > 0
|
||||
#define TEMP_SENSOR_COOLER_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_COOLER == 1000
|
||||
#define TEMP_SENSOR_COOLER_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_COOLER == 998 || TEMP_SENSOR_COOLER == 999
|
||||
#define TEMP_SENSOR_COOLER_IS_DUMMY 1
|
||||
#endif
|
||||
#else
|
||||
#undef THERMAL_PROTECTION_COOLER
|
||||
#undef COOLER_MINTEMP
|
||||
#undef COOLER_MAXTEMP
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_PROBE == -4
|
||||
#define TEMP_SENSOR_PROBE_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_PROBE == -3
|
||||
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_PROBE."
|
||||
#elif TEMP_SENSOR_PROBE == -2
|
||||
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_PROBE."
|
||||
#elif TEMP_SENSOR_PROBE == -1
|
||||
#define TEMP_SENSOR_PROBE_IS_AD595 1
|
||||
#elif TEMP_SENSOR_PROBE > 0
|
||||
#define TEMP_SENSOR_PROBE_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_PROBE == 1000
|
||||
#define TEMP_SENSOR_PROBE_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_PROBE == 998 || TEMP_SENSOR_PROBE == 999
|
||||
#define TEMP_SENSOR_PROBE_IS_DUMMY 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_BOARD == -4
|
||||
#define TEMP_SENSOR_BOARD_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_BOARD == -3
|
||||
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_BOARD."
|
||||
#elif TEMP_SENSOR_BOARD == -2
|
||||
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_BOARD."
|
||||
#elif TEMP_SENSOR_BOARD == -1
|
||||
#define TEMP_SENSOR_BOARD_IS_AD595 1
|
||||
#elif TEMP_SENSOR_BOARD > 0
|
||||
#define TEMP_SENSOR_BOARD_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_BOARD == 1000
|
||||
#define TEMP_SENSOR_BOARD_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_BOARD == 998 || TEMP_SENSOR_BOARD == 999
|
||||
#define TEMP_SENSOR_BOARD_IS_DUMMY 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if ENABLED(MIXING_EXTRUDER) && (ENABLED(RETRACT_SYNC_MIXING) || BOTH(FILAMENT_LOAD_UNLOAD_GCODES, FILAMENT_UNLOAD_ALL_EXTRUDERS))
|
||||
#define HAS_MIXER_SYNC_CHANNEL 1
|
||||
#endif
|
||||
|
||||
@@ -513,22 +513,9 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Temp Sensor defines
|
||||
* Temp Sensor defines; set up pins as needed.
|
||||
*/
|
||||
|
||||
#define ANY_TEMP_SENSOR_IS(n) ( \
|
||||
n == TEMP_SENSOR_0 || n == TEMP_SENSOR_1 || n == TEMP_SENSOR_2 || n == TEMP_SENSOR_3 \
|
||||
|| n == TEMP_SENSOR_4 || n == TEMP_SENSOR_5 || n == TEMP_SENSOR_6 || n == TEMP_SENSOR_7 \
|
||||
|| n == TEMP_SENSOR_BED \
|
||||
|| n == TEMP_SENSOR_PROBE \
|
||||
|| n == TEMP_SENSOR_CHAMBER \
|
||||
|| n == TEMP_SENSOR_COOLER \
|
||||
|| n == TEMP_SENSOR_REDUNDANT )
|
||||
#if ANY_TEMP_SENSOR_IS(1000)
|
||||
#define HAS_USER_THERMISTORS 1
|
||||
#endif
|
||||
#undef ANY_TEMP_SENSOR_IS
|
||||
|
||||
// Usurp a sensor to do redundant readings
|
||||
#if TEMP_SENSOR_REDUNDANT
|
||||
#ifndef TEMP_SENSOR_REDUNDANT_SOURCE
|
||||
@@ -617,166 +604,9 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_0 == -5 || TEMP_SENSOR_0 == -3 || TEMP_SENSOR_0 == -2
|
||||
#define TEMP_SENSOR_0_IS_MAX_TC 1
|
||||
#if TEMP_SENSOR_0 == -5
|
||||
#define TEMP_SENSOR_0_IS_MAX31865 1
|
||||
#define TEMP_SENSOR_0_MAX_TC_TMIN 0
|
||||
#define TEMP_SENSOR_0_MAX_TC_TMAX 1024
|
||||
#ifndef MAX31865_SENSOR_WIRES_0
|
||||
#define MAX31865_SENSOR_WIRES_0 2
|
||||
#endif
|
||||
#elif TEMP_SENSOR_0 == -3
|
||||
#define TEMP_SENSOR_0_IS_MAX31855 1
|
||||
#define TEMP_SENSOR_0_MAX_TC_TMIN -270
|
||||
#define TEMP_SENSOR_0_MAX_TC_TMAX 1800
|
||||
#elif TEMP_SENSOR_0 == -2
|
||||
#define TEMP_SENSOR_0_IS_MAX6675 1
|
||||
#define TEMP_SENSOR_0_MAX_TC_TMIN 0
|
||||
#define TEMP_SENSOR_0_MAX_TC_TMAX 1024
|
||||
#endif
|
||||
#elif TEMP_SENSOR_0 == -4
|
||||
#define TEMP_SENSOR_0_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_0 == -1
|
||||
#define TEMP_SENSOR_0_IS_AD595 1
|
||||
#elif TEMP_SENSOR_0 > 0
|
||||
#define TEMP_SENSOR_0_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_0 == 1000
|
||||
#define TEMP_SENSOR_0_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_0 == 998 || TEMP_SENSOR_0 == 999
|
||||
#define TEMP_SENSOR_0_IS_DUMMY 1
|
||||
#endif
|
||||
#else
|
||||
#undef HEATER_0_MINTEMP
|
||||
#undef HEATER_0_MAXTEMP
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_1 == -5 || TEMP_SENSOR_1 == -3 || TEMP_SENSOR_1 == -2
|
||||
#define TEMP_SENSOR_1_IS_MAX_TC 1
|
||||
#if TEMP_SENSOR_1 == -5
|
||||
#define TEMP_SENSOR_1_IS_MAX31865 1
|
||||
#define TEMP_SENSOR_1_MAX_TC_TMIN 0
|
||||
#define TEMP_SENSOR_1_MAX_TC_TMAX 1024
|
||||
#ifndef MAX31865_SENSOR_WIRES_1
|
||||
#define MAX31865_SENSOR_WIRES_1 2
|
||||
#endif
|
||||
#elif TEMP_SENSOR_1 == -3
|
||||
#define TEMP_SENSOR_1_IS_MAX31855 1
|
||||
#define TEMP_SENSOR_1_MAX_TC_TMIN -270
|
||||
#define TEMP_SENSOR_1_MAX_TC_TMAX 1800
|
||||
#elif TEMP_SENSOR_1 == -2
|
||||
#define TEMP_SENSOR_1_IS_MAX6675 1
|
||||
#define TEMP_SENSOR_1_MAX_TC_TMIN 0
|
||||
#define TEMP_SENSOR_1_MAX_TC_TMAX 1024
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_1 != TEMP_SENSOR_0
|
||||
#if TEMP_SENSOR_1 == -5
|
||||
#error "If MAX31865 Thermocouple (-5) is used for TEMP_SENSOR_1 then TEMP_SENSOR_0 must match."
|
||||
#elif TEMP_SENSOR_1 == -3
|
||||
#error "If MAX31855 Thermocouple (-3) is used for TEMP_SENSOR_1 then TEMP_SENSOR_0 must match."
|
||||
#elif TEMP_SENSOR_1 == -2
|
||||
#error "If MAX6675 Thermocouple (-2) is used for TEMP_SENSOR_1 then TEMP_SENSOR_0 must match."
|
||||
#endif
|
||||
#endif
|
||||
#elif TEMP_SENSOR_1 == -4
|
||||
#define TEMP_SENSOR_1_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_1 == -1
|
||||
#define TEMP_SENSOR_1_IS_AD595 1
|
||||
#elif TEMP_SENSOR_1 > 0
|
||||
#define TEMP_SENSOR_1_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_1 == 1000
|
||||
#define TEMP_SENSOR_1_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_1 == 998 || TEMP_SENSOR_1 == 999
|
||||
#define TEMP_SENSOR_1_IS_DUMMY 1
|
||||
#endif
|
||||
#else
|
||||
#undef HEATER_1_MINTEMP
|
||||
#undef HEATER_1_MAXTEMP
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_REDUNDANT == -5 || TEMP_SENSOR_REDUNDANT == -3 || TEMP_SENSOR_REDUNDANT == -2
|
||||
#define TEMP_SENSOR_REDUNDANT_IS_MAX_TC 1
|
||||
|
||||
#if TEMP_SENSOR_REDUNDANT == -5
|
||||
#if !REDUNDANT_TEMP_MATCH(SOURCE, E0) && !REDUNDANT_TEMP_MATCH(SOURCE, E1)
|
||||
#error "MAX31865 Thermocouples (-5) not supported for TEMP_SENSOR_REDUNDANT_SOURCE other than TEMP_SENSOR_0/TEMP_SENSOR_1 (0/1)."
|
||||
#endif
|
||||
|
||||
#define TEMP_SENSOR_REDUNDANT_IS_MAX31865 1
|
||||
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMIN 0
|
||||
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMAX 1024
|
||||
#elif TEMP_SENSOR_REDUNDANT == -3
|
||||
#if !REDUNDANT_TEMP_MATCH(SOURCE, E0) && !REDUNDANT_TEMP_MATCH(SOURCE, E1)
|
||||
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_REDUNDANT_SOURCE other than TEMP_SENSOR_0/TEMP_SENSOR_1 (0/1)."
|
||||
#endif
|
||||
|
||||
#define TEMP_SENSOR_REDUNDANT_IS_MAX31855 1
|
||||
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMIN -270
|
||||
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMAX 1800
|
||||
#elif TEMP_SENSOR_REDUNDANT == -2
|
||||
#if !REDUNDANT_TEMP_MATCH(SOURCE, E0) && !REDUNDANT_TEMP_MATCH(SOURCE, E1)
|
||||
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_REDUNDANT_SOURCE other than TEMP_SENSOR_0/TEMP_SENSOR_1 (0/1)."
|
||||
#endif
|
||||
|
||||
#define TEMP_SENSOR_REDUNDANT_IS_MAX6675 1
|
||||
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMIN 0
|
||||
#define TEMP_SENSOR_REDUNDANT_MAX_TC_TMAX 1024
|
||||
#endif
|
||||
|
||||
// mimic setting up the source TEMP_SENSOR
|
||||
#if REDUNDANT_TEMP_MATCH(SOURCE, E0)
|
||||
#define TEMP_SENSOR_0_MAX_TC_TMIN TEMP_SENSOR_REDUNDANT_MAX_TC_TMIN
|
||||
#define TEMP_SENSOR_0_MAX_TC_TMAX TEMP_SENSOR_REDUNDANT_MAX_TC_TMAX
|
||||
#ifndef MAX31865_SENSOR_WIRES_0
|
||||
#define MAX31865_SENSOR_WIRES_0 2
|
||||
#endif
|
||||
#elif REDUNDANT_TEMP_MATCH(SOURCE, E1)
|
||||
#define TEMP_SENSOR_1_MAX_TC_TMIN TEMP_SENSOR_REDUNDANT_MAX_TC_TMIN
|
||||
#define TEMP_SENSOR_1_MAX_TC_TMAX TEMP_SENSOR_REDUNDANT_MAX_TC_TMAX
|
||||
#ifndef MAX31865_SENSOR_WIRES_1
|
||||
#define MAX31865_SENSOR_WIRES_1 2
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if (TEMP_SENSOR_0_IS_MAX_TC && TEMP_SENSOR_REDUNDANT != TEMP_SENSOR_0) || (TEMP_SENSOR_1_IS_MAX_TC && TEMP_SENSOR_REDUNDANT != TEMP_SENSOR_1)
|
||||
#if TEMP_SENSOR_REDUNDANT == -5
|
||||
#error "If MAX31865 Thermocouple (-5) is used for TEMP_SENSOR_0/TEMP_SENSOR_1 then TEMP_SENSOR_REDUNDANT must match."
|
||||
#elif TEMP_SENSOR_REDUNDANT == -3
|
||||
#error "If MAX31855 Thermocouple (-3) is used for TEMP_SENSOR_0/TEMP_SENSOR_1 then TEMP_SENSOR_REDUNDANT must match."
|
||||
#elif TEMP_SENSOR_REDUNDANT == -2
|
||||
#error "If MAX6675 Thermocouple (-2) is used for TEMP_SENSOR_0/TEMP_SENSOR_1 then TEMP_SENSOR_REDUNDANT must match."
|
||||
#endif
|
||||
#endif
|
||||
#elif TEMP_SENSOR_REDUNDANT == -4
|
||||
#define TEMP_SENSOR_REDUNDANT_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_REDUNDANT == -1
|
||||
#define TEMP_SENSOR_REDUNDANT_IS_AD595 1
|
||||
#elif TEMP_SENSOR_REDUNDANT > 0
|
||||
#define TEMP_SENSOR_REDUNDANT_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_REDUNDANT == 1000
|
||||
#define TEMP_SENSOR_REDUNDANT_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_REDUNDANT == 998 || TEMP_SENSOR_REDUNDANT == 999
|
||||
#error "Dummy sensors are not supported for TEMP_SENSOR_REDUNDANT."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_0_IS_MAX_TC || TEMP_SENSOR_1_IS_MAX_TC || TEMP_SENSOR_REDUNDANT_IS_MAX_TC
|
||||
#define HAS_MAX_TC 1
|
||||
#endif
|
||||
#if TEMP_SENSOR_0_IS_MAX6675 || TEMP_SENSOR_1_IS_MAX6675 || TEMP_SENSOR_REDUNDANT_IS_MAX6675
|
||||
#define HAS_MAX6675 1
|
||||
#endif
|
||||
#if TEMP_SENSOR_0_IS_MAX31855 || TEMP_SENSOR_1_IS_MAX31855 || TEMP_SENSOR_REDUNDANT_IS_MAX31855
|
||||
#define HAS_MAX31855 1
|
||||
#endif
|
||||
#if TEMP_SENSOR_0_IS_MAX31865 || TEMP_SENSOR_1_IS_MAX31865 || TEMP_SENSOR_REDUNDANT_IS_MAX31865
|
||||
#define HAS_MAX31865 1
|
||||
#endif
|
||||
|
||||
//
|
||||
// Compatibility layer for MAX (SPI) temp boards
|
||||
//
|
||||
/**
|
||||
* Compatibility layer for MAX (SPI) temp boards
|
||||
*/
|
||||
#if HAS_MAX_TC
|
||||
|
||||
// Translate old _SS, _CS, _SCK, _DO, _DI, _MISO, and _MOSI PIN defines.
|
||||
@@ -938,220 +768,6 @@
|
||||
|
||||
#endif //HAS_MAX_TC
|
||||
|
||||
#if TEMP_SENSOR_2 == -4
|
||||
#define TEMP_SENSOR_2_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_2 == -3
|
||||
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_2."
|
||||
#elif TEMP_SENSOR_2 == -2
|
||||
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_2."
|
||||
#elif TEMP_SENSOR_2 == -1
|
||||
#define TEMP_SENSOR_2_IS_AD595 1
|
||||
#elif TEMP_SENSOR_2 > 0
|
||||
#define TEMP_SENSOR_2_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_2 == 1000
|
||||
#define TEMP_SENSOR_2_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_2 == 998 || TEMP_SENSOR_2 == 999
|
||||
#define TEMP_SENSOR_2_IS_DUMMY 1
|
||||
#endif
|
||||
#else
|
||||
#undef HEATER_2_MINTEMP
|
||||
#undef HEATER_2_MAXTEMP
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_3 == -4
|
||||
#define TEMP_SENSOR_3_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_3 == -3
|
||||
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_3."
|
||||
#elif TEMP_SENSOR_3 == -2
|
||||
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_3."
|
||||
#elif TEMP_SENSOR_3 == -1
|
||||
#define TEMP_SENSOR_3_IS_AD595 1
|
||||
#elif TEMP_SENSOR_3 > 0
|
||||
#define TEMP_SENSOR_3_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_3 == 1000
|
||||
#define TEMP_SENSOR_3_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_3 == 998 || TEMP_SENSOR_3 == 999
|
||||
#define TEMP_SENSOR_3_IS_DUMMY 1
|
||||
#endif
|
||||
#else
|
||||
#undef HEATER_3_MINTEMP
|
||||
#undef HEATER_3_MAXTEMP
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_4 == -4
|
||||
#define TEMP_SENSOR_4_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_4 == -3
|
||||
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_4."
|
||||
#elif TEMP_SENSOR_4 == -2
|
||||
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_4."
|
||||
#elif TEMP_SENSOR_4 == -1
|
||||
#define TEMP_SENSOR_4_IS_AD595 1
|
||||
#elif TEMP_SENSOR_4 > 0
|
||||
#define TEMP_SENSOR_4_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_4 == 1000
|
||||
#define TEMP_SENSOR_4_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_4 == 998 || TEMP_SENSOR_4 == 999
|
||||
#define TEMP_SENSOR_4_IS_DUMMY 1
|
||||
#endif
|
||||
#else
|
||||
#undef HEATER_4_MINTEMP
|
||||
#undef HEATER_4_MAXTEMP
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_5 == -4
|
||||
#define TEMP_SENSOR_5_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_5 == -3
|
||||
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_5."
|
||||
#elif TEMP_SENSOR_5 == -2
|
||||
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_5."
|
||||
#elif TEMP_SENSOR_5 == -1
|
||||
#define TEMP_SENSOR_5_IS_AD595 1
|
||||
#elif TEMP_SENSOR_5 > 0
|
||||
#define TEMP_SENSOR_5_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_5 == 1000
|
||||
#define TEMP_SENSOR_5_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_5 == 998 || TEMP_SENSOR_5 == 999
|
||||
#define TEMP_SENSOR_5_IS_DUMMY 1
|
||||
#endif
|
||||
#else
|
||||
#undef HEATER_5_MINTEMP
|
||||
#undef HEATER_5_MAXTEMP
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_6 == -4
|
||||
#define TEMP_SENSOR_6_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_6 == -3
|
||||
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_6."
|
||||
#elif TEMP_SENSOR_6 == -2
|
||||
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_6."
|
||||
#elif TEMP_SENSOR_6 == -1
|
||||
#define TEMP_SENSOR_6_IS_AD595 1
|
||||
#elif TEMP_SENSOR_6 > 0
|
||||
#define TEMP_SENSOR_6_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_6 == 1000
|
||||
#define TEMP_SENSOR_6_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_6 == 998 || TEMP_SENSOR_6 == 999
|
||||
#define TEMP_SENSOR_6_IS_DUMMY 1
|
||||
#endif
|
||||
#else
|
||||
#undef HEATER_6_MINTEMP
|
||||
#undef HEATER_6_MAXTEMP
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_7 == -4
|
||||
#define TEMP_SENSOR_7_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_7 == -3
|
||||
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_7."
|
||||
#elif TEMP_SENSOR_7 == -2
|
||||
#error "MAX7775 Thermocouples (-2) not supported for TEMP_SENSOR_7."
|
||||
#elif TEMP_SENSOR_7 == -1
|
||||
#define TEMP_SENSOR_7_IS_AD595 1
|
||||
#elif TEMP_SENSOR_7 > 0
|
||||
#define TEMP_SENSOR_7_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_7 == 1000
|
||||
#define TEMP_SENSOR_7_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_7 == 998 || TEMP_SENSOR_7 == 999
|
||||
#define TEMP_SENSOR_7_IS_DUMMY 1
|
||||
#endif
|
||||
#else
|
||||
#undef HEATER_7_MINTEMP
|
||||
#undef HEATER_7_MAXTEMP
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_BED == -4
|
||||
#define TEMP_SENSOR_BED_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_BED == -3
|
||||
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_BED."
|
||||
#elif TEMP_SENSOR_BED == -2
|
||||
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_BED."
|
||||
#elif TEMP_SENSOR_BED == -1
|
||||
#define TEMP_SENSOR_BED_IS_AD595 1
|
||||
#elif TEMP_SENSOR_BED > 0
|
||||
#define TEMP_SENSOR_BED_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_BED == 1000
|
||||
#define TEMP_SENSOR_BED_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_BED == 998 || TEMP_SENSOR_BED == 999
|
||||
#define TEMP_SENSOR_BED_IS_DUMMY 1
|
||||
#endif
|
||||
#else
|
||||
#undef BED_MINTEMP
|
||||
#undef BED_MAXTEMP
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_CHAMBER == -4
|
||||
#define TEMP_SENSOR_CHAMBER_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_CHAMBER == -3
|
||||
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_CHAMBER."
|
||||
#elif TEMP_SENSOR_CHAMBER == -2
|
||||
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_CHAMBER."
|
||||
#elif TEMP_SENSOR_CHAMBER == -1
|
||||
#define TEMP_SENSOR_CHAMBER_IS_AD595 1
|
||||
#elif TEMP_SENSOR_CHAMBER > 0
|
||||
#define TEMP_SENSOR_CHAMBER_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_CHAMBER == 1000
|
||||
#define TEMP_SENSOR_CHAMBER_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_CHAMBER == 998 || TEMP_SENSOR_CHAMBER == 999
|
||||
#define TEMP_SENSOR_CHAMBER_IS_DUMMY 1
|
||||
#endif
|
||||
#else
|
||||
#undef CHAMBER_MINTEMP
|
||||
#undef CHAMBER_MAXTEMP
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_COOLER == -4
|
||||
#define TEMP_SENSOR_COOLER_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_COOLER == -3
|
||||
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_COOLER."
|
||||
#elif TEMP_SENSOR_COOLER == -2
|
||||
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_COOLER."
|
||||
#elif TEMP_SENSOR_COOLER == -1
|
||||
#define TEMP_SENSOR_COOLER_IS_AD595 1
|
||||
#elif TEMP_SENSOR_COOLER > 0
|
||||
#define TEMP_SENSOR_COOLER_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_COOLER == 1000
|
||||
#define TEMP_SENSOR_COOLER_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_COOLER == 998 || TEMP_SENSOR_COOLER == 999
|
||||
#define TEMP_SENSOR_COOLER_IS_DUMMY 1
|
||||
#endif
|
||||
#else
|
||||
#undef COOLER_MINTEMP
|
||||
#undef COOLER_MAXTEMP
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_PROBE == -4
|
||||
#define TEMP_SENSOR_PROBE_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_PROBE == -3
|
||||
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_PROBE."
|
||||
#elif TEMP_SENSOR_PROBE == -2
|
||||
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_PROBE."
|
||||
#elif TEMP_SENSOR_PROBE == -1
|
||||
#define TEMP_SENSOR_PROBE_IS_AD595 1
|
||||
#elif TEMP_SENSOR_PROBE > 0
|
||||
#define TEMP_SENSOR_PROBE_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_PROBE == 1000
|
||||
#define TEMP_SENSOR_PROBE_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_PROBE == 998 || TEMP_SENSOR_PROBE == 999
|
||||
#define TEMP_SENSOR_PROBE_IS_DUMMY 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_BOARD == -4
|
||||
#define TEMP_SENSOR_BOARD_IS_AD8495 1
|
||||
#elif TEMP_SENSOR_BOARD == -3
|
||||
#error "MAX31855 Thermocouples (-3) not supported for TEMP_SENSOR_BOARD."
|
||||
#elif TEMP_SENSOR_BOARD == -2
|
||||
#error "MAX6675 Thermocouples (-2) not supported for TEMP_SENSOR_BOARD."
|
||||
#elif TEMP_SENSOR_BOARD == -1
|
||||
#define TEMP_SENSOR_BOARD_IS_AD595 1
|
||||
#elif TEMP_SENSOR_BOARD > 0
|
||||
#define TEMP_SENSOR_BOARD_IS_THERMISTOR 1
|
||||
#if TEMP_SENSOR_BOARD == 1000
|
||||
#define TEMP_SENSOR_BOARD_IS_CUSTOM 1
|
||||
#elif TEMP_SENSOR_BOARD == 998 || TEMP_SENSOR_BOARD == 999
|
||||
#define TEMP_SENSOR_BOARD_IS_DUMMY 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* X_DUAL_ENDSTOPS endstop reassignment
|
||||
*/
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
* version was tagged.
|
||||
*/
|
||||
#ifndef STRING_DISTRIBUTION_DATE
|
||||
#define STRING_DISTRIBUTION_DATE "2021-07-13"
|
||||
#define STRING_DISTRIBUTION_DATE "2021-07-19"
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
||||
@@ -57,6 +57,18 @@
|
||||
#include "../../gcode/parser.h"
|
||||
#endif
|
||||
|
||||
#if EITHER(HAS_COOLER, LASER_COOLANT_FLOW_METER)
|
||||
#include "../../feature/cooler.h"
|
||||
#endif
|
||||
|
||||
#if ENABLED(I2C_AMMETER)
|
||||
#include "../../feature/ammeter.h"
|
||||
#endif
|
||||
|
||||
#if HAS_CUTTER
|
||||
#include "../../feature/spindle_laser.h"
|
||||
#endif
|
||||
|
||||
#if ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#include "../../feature/bedlevel/bedlevel.h"
|
||||
#endif
|
||||
@@ -64,12 +76,12 @@
|
||||
TFTGLCD lcd;
|
||||
|
||||
#define ICON_LOGO B00000001
|
||||
#define ICON_TEMP1 B00000010 //hotend 1
|
||||
#define ICON_TEMP2 B00000100 //hotend 2
|
||||
#define ICON_TEMP3 B00001000 //hotend 3
|
||||
#define ICON_TEMP1 B00000010 // Hotend 1
|
||||
#define ICON_TEMP2 B00000100 // Hotend 2
|
||||
#define ICON_TEMP3 B00001000 // Hotend 3
|
||||
#define ICON_BED B00010000
|
||||
#define ICON_FAN B00100000
|
||||
#define ICON_HOT B01000000 //when any T > 50deg
|
||||
#define ICON_HOT B01000000 // When any T > 50deg
|
||||
#define PIC_MASK 0x7F
|
||||
|
||||
// LEDs not used, for compatibility with Smoothieware
|
||||
@@ -433,69 +445,161 @@ FORCE_INLINE void _draw_axis_value(const AxisEnum axis, const char *value, const
|
||||
lcd_put_u8str(value);
|
||||
}
|
||||
|
||||
FORCE_INLINE void _draw_heater_status(const heater_id_t heater_id, const char *prefix, const bool blink) {
|
||||
uint8_t pic_hot_bits;
|
||||
#if HAS_HEATED_BED
|
||||
const bool isBed = heater_id < 0;
|
||||
const celsius_t t1 = (isBed ? thermalManager.wholeDegBed() : thermalManager.wholeDegHotend(heater_id)),
|
||||
t2 = (isBed ? thermalManager.degTargetBed() : thermalManager.degTargetHotend(heater_id));
|
||||
#else
|
||||
const celsius_t t1 = thermalManager.wholeDegHotend(heater_id), t2 = thermalManager.degTargetHotend(heater_id);
|
||||
#endif
|
||||
#if HAS_HOTEND || HAS_HEATED_BED
|
||||
|
||||
#if HOTENDS < 2
|
||||
if (heater_id == H_E0) {
|
||||
lcd.setCursor(2, 5); lcd.print(prefix); //HE
|
||||
lcd.setCursor(1, 6); lcd.print(i16tostr3rj(t1));
|
||||
lcd.setCursor(1, 7);
|
||||
}
|
||||
else {
|
||||
lcd.setCursor(6, 5); lcd.print(prefix); //BED
|
||||
lcd.setCursor(6, 6); lcd.print(i16tostr3rj(t1));
|
||||
lcd.setCursor(6, 7);
|
||||
}
|
||||
#else
|
||||
if (heater_id > H_BED) {
|
||||
lcd.setCursor(heater_id * 4, 5); lcd.print(prefix); // HE1 or HE2 or HE3
|
||||
lcd.setCursor(heater_id * 4, 6); lcd.print(i16tostr3rj(t1));
|
||||
lcd.setCursor(heater_id * 4, 7);
|
||||
}
|
||||
else {
|
||||
lcd.setCursor(13, 5); lcd.print(prefix); //BED
|
||||
lcd.setCursor(13, 6); lcd.print(i16tostr3rj(t1));
|
||||
lcd.setCursor(13, 7);
|
||||
}
|
||||
#endif // HOTENDS <= 1
|
||||
FORCE_INLINE void _draw_heater_status(const heater_id_t heater_id, const char *prefix, const bool blink) {
|
||||
uint8_t pic_hot_bits;
|
||||
#if HAS_HEATED_BED
|
||||
const bool isBed = heater_id < 0;
|
||||
const celsius_t t1 = (isBed ? thermalManager.wholeDegBed() : thermalManager.wholeDegHotend(heater_id)),
|
||||
t2 = (isBed ? thermalManager.degTargetBed() : thermalManager.degTargetHotend(heater_id));
|
||||
#else
|
||||
const celsius_t t1 = thermalManager.wholeDegHotend(heater_id), t2 = thermalManager.degTargetHotend(heater_id);
|
||||
#endif
|
||||
|
||||
#if !HEATER_IDLE_HANDLER
|
||||
UNUSED(blink);
|
||||
#else
|
||||
if (!blink && thermalManager.heater_idle[thermalManager.idle_index_for_id(heater_id)].timed_out) {
|
||||
lcd.write(' ');
|
||||
if (t2 >= 10) lcd.write(' ');
|
||||
if (t2 >= 100) lcd.write(' ');
|
||||
}
|
||||
else
|
||||
#endif // !HEATER_IDLE_HANDLER
|
||||
lcd.print(i16tostr3rj(t2));
|
||||
#if HOTENDS < 2
|
||||
if (heater_id == H_E0) {
|
||||
lcd.setCursor(2, 5); lcd.print(prefix); //HE
|
||||
lcd.setCursor(1, 6); lcd.print(i16tostr3rj(t1));
|
||||
lcd.setCursor(1, 7);
|
||||
}
|
||||
else {
|
||||
lcd.setCursor(6, 5); lcd.print(prefix); //BED
|
||||
lcd.setCursor(6, 6); lcd.print(i16tostr3rj(t1));
|
||||
lcd.setCursor(6, 7);
|
||||
}
|
||||
#else
|
||||
if (heater_id > H_BED) {
|
||||
lcd.setCursor(heater_id * 4, 5); lcd.print(prefix); // HE1 or HE2 or HE3
|
||||
lcd.setCursor(heater_id * 4, 6); lcd.print(i16tostr3rj(t1));
|
||||
lcd.setCursor(heater_id * 4, 7);
|
||||
}
|
||||
else {
|
||||
lcd.setCursor(13, 5); lcd.print(prefix); //BED
|
||||
lcd.setCursor(13, 6); lcd.print(i16tostr3rj(t1));
|
||||
lcd.setCursor(13, 7);
|
||||
}
|
||||
#endif // HOTENDS <= 1
|
||||
|
||||
switch (heater_id) {
|
||||
case H_BED: pic_hot_bits = ICON_BED; break;
|
||||
case H_E0: pic_hot_bits = ICON_TEMP1; break;
|
||||
case H_E1: pic_hot_bits = ICON_TEMP2; break;
|
||||
case H_E2: pic_hot_bits = ICON_TEMP3;
|
||||
default: break;
|
||||
#if !HEATER_IDLE_HANDLER
|
||||
UNUSED(blink);
|
||||
#else
|
||||
if (!blink && thermalManager.heater_idle[thermalManager.idle_index_for_id(heater_id)].timed_out) {
|
||||
lcd.write(' ');
|
||||
if (t2 >= 10) lcd.write(' ');
|
||||
if (t2 >= 100) lcd.write(' ');
|
||||
}
|
||||
else
|
||||
#endif // !HEATER_IDLE_HANDLER
|
||||
lcd.print(i16tostr3rj(t2));
|
||||
|
||||
switch (heater_id) {
|
||||
case H_BED: pic_hot_bits = ICON_BED; break;
|
||||
case H_E0: pic_hot_bits = ICON_TEMP1; break;
|
||||
case H_E1: pic_hot_bits = ICON_TEMP2; break;
|
||||
case H_E2: pic_hot_bits = ICON_TEMP3;
|
||||
default: break;
|
||||
}
|
||||
|
||||
if (t2) picBits |= pic_hot_bits;
|
||||
else picBits &= ~pic_hot_bits;
|
||||
|
||||
if (t1 > 50) hotBits |= pic_hot_bits;
|
||||
else hotBits &= ~pic_hot_bits;
|
||||
|
||||
if (hotBits) picBits |= ICON_HOT;
|
||||
else picBits &= ~ICON_HOT;
|
||||
}
|
||||
|
||||
if (t2) picBits |= pic_hot_bits;
|
||||
else picBits &= ~pic_hot_bits;
|
||||
#endif // HAS_HOTEND || HAS_HEATED_BED
|
||||
|
||||
if (t1 > 50) hotBits |= pic_hot_bits;
|
||||
else hotBits &= ~pic_hot_bits;
|
||||
#if HAS_COOLER
|
||||
|
||||
if (hotBits) picBits |= ICON_HOT;
|
||||
else picBits &= ~ICON_HOT;
|
||||
}
|
||||
FORCE_INLINE void _draw_cooler_status(const bool blink) {
|
||||
const celsius_t t2 = thermalManager.degTargetCooler();
|
||||
|
||||
lcd.setCursor(0, 5); lcd_put_u8str_P(PSTR("COOL"));
|
||||
lcd.setCursor(1, 6); lcd_put_u8str(i16tostr3rj(thermalManager.wholeDegCooler()));
|
||||
lcd.setCursor(1, 7);
|
||||
|
||||
#if !HEATER_IDLE_HANDLER
|
||||
UNUSED(blink);
|
||||
#else
|
||||
if (!blink && thermalManager.heater_idle[thermalManager.idle_index_for_id(heater_id)].timed_out) {
|
||||
lcd_put_wchar(' ');
|
||||
if (t2 >= 10) lcd_put_wchar(' ');
|
||||
if (t2 >= 100) lcd_put_wchar(' ');
|
||||
}
|
||||
else
|
||||
#endif
|
||||
lcd_put_u8str(i16tostr3left(t2));
|
||||
|
||||
lcd_put_wchar(' ');
|
||||
if (t2 < 10) lcd_put_wchar(' ');
|
||||
|
||||
if (t2) picBits |= ICON_TEMP1;
|
||||
else picBits &= ~ICON_TEMP1;
|
||||
}
|
||||
|
||||
#endif // HAS_COOLER
|
||||
|
||||
#if ENABLED(LASER_COOLANT_FLOW_METER)
|
||||
|
||||
FORCE_INLINE void _draw_flowmeter_status() {
|
||||
lcd.setCursor(5, 5); lcd_put_u8str_P(PSTR("FLOW"));
|
||||
lcd.setCursor(7, 6); lcd_put_wchar('L');
|
||||
lcd.setCursor(6, 7); lcd_put_u8str(ftostr11ns(cooler.flowrate));
|
||||
|
||||
if (cooler.flowrate) picBits |= ICON_FAN;
|
||||
else picBits &= ~ICON_FAN;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#if ENABLED(I2C_AMMETER)
|
||||
|
||||
FORCE_INLINE void _draw_ammeter_status() {
|
||||
lcd.setCursor(10, 5); lcd_put_u8str_P(PSTR("ILAZ"));
|
||||
ammeter.read();
|
||||
lcd.setCursor(11, 6);
|
||||
if (ammeter.current <= 0.999f)
|
||||
{
|
||||
lcd_put_u8str("mA");
|
||||
lcd.setCursor(10, 7);
|
||||
lcd_put_wchar(' '); lcd_put_u8str(ui16tostr3rj(uint16_t(ammeter.current * 1000 + 0.5f)));
|
||||
}
|
||||
else {
|
||||
lcd_put_u8str(" A");
|
||||
lcd.setCursor(10, 7);
|
||||
lcd_put_u8str(ftostr12ns(ammeter.current));
|
||||
}
|
||||
|
||||
if (ammeter.current) picBits |= ICON_BED;
|
||||
else picBits &= ~ICON_BED;
|
||||
}
|
||||
|
||||
#endif // I2C_AMMETER
|
||||
|
||||
#if HAS_CUTTER
|
||||
|
||||
FORCE_INLINE void _draw_cutter_status() {
|
||||
lcd.setCursor(15, 5); lcd_put_u8str_P(PSTR("CUTT"));
|
||||
#if CUTTER_UNIT_IS(RPM)
|
||||
lcd.setCursor(16, 6); lcd_put_u8str_P(PSTR("RPM"));
|
||||
lcd.setCursor(15, 7); lcd_put_u8str(ftostr31ns(float(cutter.unitPower) / 1000));
|
||||
lcd_put_wchar('K');
|
||||
#elif CUTTER_UNIT_IS(PERCENT)
|
||||
lcd.setCursor(17, 6); lcd_put_wchar('%');
|
||||
lcd.setCursor(18, 7); lcd_put_u8str(cutter_power2str(cutter.unitPower));
|
||||
#else
|
||||
lcd.setCursor(17, 7); lcd_put_u8str(cutter_power2str(cutter.unitPower));
|
||||
#endif
|
||||
|
||||
if (cutter.unitPower) picBits |= ICON_HOT;
|
||||
else picBits &= ~ICON_HOT;
|
||||
}
|
||||
|
||||
#endif // HAS_CUTTER
|
||||
|
||||
#if HAS_PRINT_PROGRESS
|
||||
|
||||
@@ -533,7 +637,7 @@ FORCE_INLINE void _draw_heater_status(const heater_id_t heater_id, const char *p
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif // LCD_PROGRESS_BAR
|
||||
|
||||
void MarlinUI::draw_status_message(const bool blink) {
|
||||
if (!PanelDetected) return;
|
||||
@@ -648,6 +752,19 @@ or
|
||||
|
||||
or
|
||||
|
||||
|X 000 Y 000 Z 000.00|
|
||||
|FR100% SD100% C--:--|
|
||||
| Progress bar line |
|
||||
|Status message |
|
||||
| |
|
||||
|COOL FLOW ILAZ CUTT |
|
||||
| ttc L mA RPM |
|
||||
| tts f.f aaa rr.rK|
|
||||
| ICO ICO ICO ICO |
|
||||
| ICO ICO ICO ICO |
|
||||
|
||||
or
|
||||
|
||||
Equal to 24x10 text LCD
|
||||
|
||||
|X 000 Y 000 Z 000.00 |
|
||||
@@ -745,50 +862,61 @@ void MarlinUI::draw_status_screen() {
|
||||
#endif
|
||||
|
||||
//
|
||||
// Line 6..8 Temperatures, FAN
|
||||
// Line 6..8 Temperatures, FAN for printer or Cooler, Flowmetter, Ampermeter, Cutter for laser/spindle
|
||||
//
|
||||
|
||||
#if HOTENDS < 2
|
||||
_draw_heater_status(H_E0, "HE", blink); // Hotend Temperature
|
||||
#else
|
||||
_draw_heater_status(H_E0, "HE1", blink); // Hotend 1 Temperature
|
||||
_draw_heater_status(H_E1, "HE2", blink); // Hotend 2 Temperature
|
||||
#if HOTENDS > 2
|
||||
_draw_heater_status(H_E2, "HE3", blink); // Hotend 3 Temperature
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if HAS_HEATED_BED
|
||||
#if HAS_LEVELING
|
||||
_draw_heater_status(H_BED, (planner.leveling_active && blink ? "___" : "BED"), blink);
|
||||
#else
|
||||
_draw_heater_status(H_BED, "BED", blink);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if HAS_FAN
|
||||
uint16_t spd = thermalManager.fan_speed[0];
|
||||
#if ENABLED(ADAPTIVE_FAN_SLOWING)
|
||||
if (!blink) spd = thermalManager.scaledFanSpeed(0, spd);
|
||||
#endif
|
||||
uint16_t per = thermalManager.pwmToPercent(spd);
|
||||
#if HAS_HOTEND
|
||||
|
||||
#if HOTENDS < 2
|
||||
#define FANX 11
|
||||
_draw_heater_status(H_E0, "HE", blink); // Hotend Temperature
|
||||
#else
|
||||
#define FANX 17
|
||||
_draw_heater_status(H_E0, "HE1", blink); // Hotend 1 Temperature
|
||||
_draw_heater_status(H_E1, "HE2", blink); // Hotend 2 Temperature
|
||||
#if HOTENDS > 2
|
||||
_draw_heater_status(H_E2, "HE3", blink); // Hotend 3 Temperature
|
||||
#endif
|
||||
#endif
|
||||
lcd.setCursor(FANX, 5); lcd_put_u8str_P(PSTR("FAN"));
|
||||
lcd.setCursor(FANX + 1, 6); lcd.write('%');
|
||||
lcd.setCursor(FANX, 7);
|
||||
lcd.print(i16tostr3rj(per));
|
||||
|
||||
if (TERN0(HAS_FAN0, thermalManager.fan_speed[0]) || TERN0(HAS_FAN1, thermalManager.fan_speed[1]) || TERN0(HAS_FAN2, thermalManager.fan_speed[2]))
|
||||
picBits |= ICON_FAN;
|
||||
else
|
||||
picBits &= ~ICON_FAN;
|
||||
#if HAS_HEATED_BED
|
||||
#if HAS_LEVELING
|
||||
_draw_heater_status(H_BED, (planner.leveling_active && blink ? "___" : "BED"), blink);
|
||||
#else
|
||||
_draw_heater_status(H_BED, "BED", blink);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // HAS_FAN
|
||||
#if HAS_FAN
|
||||
uint16_t spd = thermalManager.fan_speed[0];
|
||||
#if ENABLED(ADAPTIVE_FAN_SLOWING)
|
||||
if (!blink) spd = thermalManager.scaledFanSpeed(0, spd);
|
||||
#endif
|
||||
uint16_t per = thermalManager.pwmToPercent(spd);
|
||||
|
||||
#if HOTENDS < 2
|
||||
#define FANX 11
|
||||
#else
|
||||
#define FANX 17
|
||||
#endif
|
||||
lcd.setCursor(FANX, 5); lcd_put_u8str_P(PSTR("FAN"));
|
||||
lcd.setCursor(FANX + 1, 6); lcd.write('%');
|
||||
lcd.setCursor(FANX, 7);
|
||||
lcd.print(i16tostr3rj(per));
|
||||
|
||||
if (TERN0(HAS_FAN0, thermalManager.fan_speed[0]) || TERN0(HAS_FAN1, thermalManager.fan_speed[1]) || TERN0(HAS_FAN2, thermalManager.fan_speed[2]))
|
||||
picBits |= ICON_FAN;
|
||||
else
|
||||
picBits &= ~ICON_FAN;
|
||||
|
||||
#endif // HAS_FAN
|
||||
|
||||
#else
|
||||
|
||||
TERN_(HAS_COOLER, _draw_cooler_status(blink));
|
||||
TERN_(LASER_COOLANT_FLOW_METER, _draw_flowmeter_status());
|
||||
TERN_(I2C_AMMETER, _draw_ammeter_status());
|
||||
TERN_(HAS_CUTTER, _draw_cutter_status());
|
||||
|
||||
#endif
|
||||
|
||||
//
|
||||
// Line 9, 10 - icons
|
||||
|
||||
@@ -624,7 +624,7 @@
|
||||
#define STATUS_AMMETER_X (LCD_PIXEL_WIDTH - (STATUS_AMMETER_BYTEWIDTH + STATUS_FLOWMETER_BYTEWIDTH + STATUS_FAN_BYTEWIDTH + STATUS_CUTTER_BYTEWIDTH + STATUS_COOLER_BYTEWIDTH) * 8)
|
||||
#endif
|
||||
#ifndef STATUS_AMMETER_HEIGHT
|
||||
#define STATUS_AMMETER_HEIGHT(S) (sizeof(status_ammeter_bmp1) / (STATUS_AMMETER_BYTEWIDTH))
|
||||
#define STATUS_AMMETER_HEIGHT(S) (sizeof(status_ammeter_bmp_mA) / (STATUS_AMMETER_BYTEWIDTH))
|
||||
#endif
|
||||
#ifndef STATUS_AMMETER_Y
|
||||
#define STATUS_AMMETER_Y(S) (18 - STATUS_AMMETER_HEIGHT(S))
|
||||
@@ -633,8 +633,8 @@
|
||||
#define STATUS_AMMETER_TEXT_X (STATUS_AMMETER_X + 7)
|
||||
#endif
|
||||
static_assert(
|
||||
sizeof(status_ammeter_bmp1) == (STATUS_AMMETER_BYTEWIDTH) * STATUS_AMMETER_HEIGHT(0),
|
||||
"Status ammeter bitmap (status_ammeter_bmp1) dimensions don't match data."
|
||||
sizeof(status_ammeter_bmp_mA) == (STATUS_AMMETER_BYTEWIDTH) * STATUS_AMMETER_HEIGHT(0),
|
||||
"Status ammeter bitmap (status_ammeter_bmp_mA) dimensions don't match data."
|
||||
);
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <U8glib-HAL.h>
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
@@ -3,7 +3,8 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
|
||||
#include "langdata.h"
|
||||
|
||||
static const uxg_fontinfo_t g_fontinfo_an[] PROGMEM = {};
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#include "langdata.h"
|
||||
|
||||
const u8g_fntpgm_uint8_t fontpage_8_144_149[96] U8G_FONT_SECTION("fontpage_8_144_149") = {
|
||||
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x90,0x95,0x00,0x07,0xFF,0x00,
|
||||
@@ -64,14 +66,13 @@ const u8g_fntpgm_uint8_t fontpage_8_206_207[39] U8G_FONT_SECTION("fontpage_8_206
|
||||
0x00,0x05,0x05,0x05,0x06,0x00,0x00,0x90,0xA8,0xE8,0xA8,0x90,0x04,0x05,0x05,0x06,
|
||||
0x01,0x00,0x70,0x90,0x70,0x50,0x90};
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
|
||||
FONTDATA_ITEM(8, 144, 149, fontpage_8_144_149), // 'А' -- 'Е'
|
||||
FONTDATA_ITEM(8, 151, 152, fontpage_8_151_152), // 'З' -- 'И'
|
||||
FONTDATA_ITEM(8, 154, 164, fontpage_8_154_164), // 'К' -- 'Ф'
|
||||
FONTDATA_ITEM(8, 166, 166, fontpage_8_166_166), // 'Ц' -- 'Ц'
|
||||
FONTDATA_ITEM(8, 175, 195, fontpage_8_175_195), // 'Я' -- 'у'
|
||||
FONTDATA_ITEM(8, 197, 200, fontpage_8_197_200), // 'х' -- 'ш'
|
||||
FONTDATA_ITEM(8, 202, 202, fontpage_8_202_202), // 'ъ' -- 'ъ'
|
||||
FONTDATA_ITEM(8, 206, 207, fontpage_8_206_207), // 'ю' -- 'я'
|
||||
static const uxg_fontinfo_t g_fontinfo_bg[] PROGMEM = {
|
||||
FONTDATA_ITEM(8, 144, 149, fontpage_8_144_149), // 'А' -- 'Е'
|
||||
FONTDATA_ITEM(8, 151, 152, fontpage_8_151_152), // 'З' -- 'И'
|
||||
FONTDATA_ITEM(8, 154, 164, fontpage_8_154_164), // 'К' -- 'Ф'
|
||||
FONTDATA_ITEM(8, 166, 166, fontpage_8_166_166), // 'Ц' -- 'Ц'
|
||||
FONTDATA_ITEM(8, 175, 195, fontpage_8_175_195), // 'Я' -- 'у'
|
||||
FONTDATA_ITEM(8, 197, 200, fontpage_8_197_200), // 'х' -- 'ш'
|
||||
FONTDATA_ITEM(8, 202, 202, fontpage_8_202_202), // 'ъ' -- 'ъ'
|
||||
FONTDATA_ITEM(8, 206, 207, fontpage_8_206_207), // 'ю' -- 'я'
|
||||
};
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
|
||||
#include "langdata.h"
|
||||
|
||||
static const uxg_fontinfo_t g_fontinfo_ca[] PROGMEM = {};
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#include "langdata.h"
|
||||
|
||||
const u8g_fntpgm_uint8_t fontpage_2_140_141[47] U8G_FONT_SECTION("fontpage_2_140_141") = {
|
||||
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x8C,0x8D,0x00,0x0A,0x00,0x00,
|
||||
@@ -40,15 +42,14 @@ const u8g_fntpgm_uint8_t fontpage_2_253_254[47] U8G_FONT_SECTION("fontpage_2_253
|
||||
0x00,0x05,0x0A,0x0A,0x06,0x00,0x00,0x50,0x20,0x00,0xF8,0x08,0x10,0x20,0x40,0x80,
|
||||
0xF8,0x05,0x08,0x08,0x06,0x00,0x00,0x50,0x20,0x00,0xF8,0x10,0x20,0x40,0xF8};
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
|
||||
FONTDATA_ITEM(2, 140, 141, fontpage_2_140_141), // 'Č' -- 'č'
|
||||
FONTDATA_ITEM(2, 143, 143, fontpage_2_143_143), // 'ď' -- 'ď'
|
||||
FONTDATA_ITEM(2, 154, 155, fontpage_2_154_155), // 'Ě' -- 'ě'
|
||||
FONTDATA_ITEM(2, 200, 200, fontpage_2_200_200), // 'ň' -- 'ň'
|
||||
FONTDATA_ITEM(2, 216, 217, fontpage_2_216_217), // 'Ř' -- 'ř'
|
||||
FONTDATA_ITEM(2, 224, 225, fontpage_2_224_225), // 'Š' -- 'š'
|
||||
FONTDATA_ITEM(2, 229, 229, fontpage_2_229_229), // 'ť' -- 'ť'
|
||||
FONTDATA_ITEM(2, 239, 239, fontpage_2_239_239), // 'ů' -- 'ů'
|
||||
FONTDATA_ITEM(2, 253, 254, fontpage_2_253_254), // 'Ž' -- 'ž'
|
||||
static const uxg_fontinfo_t g_fontinfo_cz[] PROGMEM = {
|
||||
FONTDATA_ITEM(2, 140, 141, fontpage_2_140_141), // 'Č' -- 'č'
|
||||
FONTDATA_ITEM(2, 143, 143, fontpage_2_143_143), // 'ď' -- 'ď'
|
||||
FONTDATA_ITEM(2, 154, 155, fontpage_2_154_155), // 'Ě' -- 'ě'
|
||||
FONTDATA_ITEM(2, 200, 200, fontpage_2_200_200), // 'ň' -- 'ň'
|
||||
FONTDATA_ITEM(2, 216, 217, fontpage_2_216_217), // 'Ř' -- 'ř'
|
||||
FONTDATA_ITEM(2, 224, 225, fontpage_2_224_225), // 'Š' -- 'š'
|
||||
FONTDATA_ITEM(2, 229, 229, fontpage_2_229_229), // 'ť' -- 'ť'
|
||||
FONTDATA_ITEM(2, 239, 239, fontpage_2_239_239), // 'ů' -- 'ů'
|
||||
FONTDATA_ITEM(2, 253, 254, fontpage_2_253_254), // 'Ž' -- 'ž'
|
||||
};
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
|
||||
#include "langdata.h"
|
||||
|
||||
static const uxg_fontinfo_t g_fontinfo_da[] PROGMEM = {};
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
|
||||
#include "langdata.h"
|
||||
|
||||
static const uxg_fontinfo_t g_fontinfo_de[] PROGMEM = {};
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#include "langdata.h"
|
||||
|
||||
const u8g_fntpgm_uint8_t fontpage_7_136_136[33] U8G_FONT_SECTION("fontpage_7_136_136") = {
|
||||
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x00,0x0A,0x00,0x00,
|
||||
@@ -75,16 +77,15 @@ const u8g_fntpgm_uint8_t fontpage_64_166_166[24] U8G_FONT_SECTION("fontpage_64_1
|
||||
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xA6,0xA6,0x00,0x01,0x00,0x00,
|
||||
0x00,0x05,0x01,0x01,0x06,0x00,0x00,0xA8};
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
|
||||
FONTDATA_ITEM(7, 136, 136, fontpage_7_136_136), // 'Έ' -- 'Έ'
|
||||
FONTDATA_ITEM(7, 145, 157, fontpage_7_145_157), // 'Α' -- 'Ν'
|
||||
FONTDATA_ITEM(7, 159, 161, fontpage_7_159_161), // 'Ο' -- 'Ρ'
|
||||
FONTDATA_ITEM(7, 163, 167, fontpage_7_163_167), // 'Σ' -- 'Χ'
|
||||
FONTDATA_ITEM(7, 172, 175, fontpage_7_172_175), // 'ά' -- 'ί'
|
||||
FONTDATA_ITEM(7, 177, 181, fontpage_7_177_181), // 'α' -- 'ε'
|
||||
FONTDATA_ITEM(7, 183, 199, fontpage_7_183_199), // 'η' -- 'χ'
|
||||
FONTDATA_ITEM(7, 201, 201, fontpage_7_201_201), // 'ω' -- 'ω'
|
||||
FONTDATA_ITEM(7, 204, 206, fontpage_7_204_206), // 'ό' -- 'ώ'
|
||||
FONTDATA_ITEM(64, 166, 166, fontpage_64_166_166), // '…' -- '…'
|
||||
static const uxg_fontinfo_t g_fontinfo_el[] PROGMEM = {
|
||||
FONTDATA_ITEM(7, 136, 136, fontpage_7_136_136), // 'Έ' -- 'Έ'
|
||||
FONTDATA_ITEM(7, 145, 157, fontpage_7_145_157), // 'Α' -- 'Ν'
|
||||
FONTDATA_ITEM(7, 159, 161, fontpage_7_159_161), // 'Ο' -- 'Ρ'
|
||||
FONTDATA_ITEM(7, 163, 167, fontpage_7_163_167), // 'Σ' -- 'Χ'
|
||||
FONTDATA_ITEM(7, 172, 175, fontpage_7_172_175), // 'ά' -- 'ί'
|
||||
FONTDATA_ITEM(7, 177, 181, fontpage_7_177_181), // 'α' -- 'ε'
|
||||
FONTDATA_ITEM(7, 183, 199, fontpage_7_183_199), // 'η' -- 'χ'
|
||||
FONTDATA_ITEM(7, 201, 201, fontpage_7_201_201), // 'ω' -- 'ω'
|
||||
FONTDATA_ITEM(7, 204, 206, fontpage_7_204_206), // 'ό' -- 'ώ'
|
||||
FONTDATA_ITEM(64, 166, 166, fontpage_64_166_166), // '…' -- '…'
|
||||
};
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#include "langdata.h"
|
||||
|
||||
const u8g_fntpgm_uint8_t fontpage_7_136_136[33] U8G_FONT_SECTION("fontpage_7_136_136") = {
|
||||
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x00,0x0A,0x00,0x00,
|
||||
@@ -75,16 +77,15 @@ const u8g_fntpgm_uint8_t fontpage_64_166_166[24] U8G_FONT_SECTION("fontpage_64_1
|
||||
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xA6,0xA6,0x00,0x01,0x00,0x00,
|
||||
0x00,0x05,0x01,0x01,0x06,0x00,0x00,0xA8};
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
|
||||
FONTDATA_ITEM(7, 136, 136, fontpage_7_136_136), // 'Έ' -- 'Έ'
|
||||
FONTDATA_ITEM(7, 145, 157, fontpage_7_145_157), // 'Α' -- 'Ν'
|
||||
FONTDATA_ITEM(7, 159, 161, fontpage_7_159_161), // 'Ο' -- 'Ρ'
|
||||
FONTDATA_ITEM(7, 163, 167, fontpage_7_163_167), // 'Σ' -- 'Χ'
|
||||
FONTDATA_ITEM(7, 172, 175, fontpage_7_172_175), // 'ά' -- 'ί'
|
||||
FONTDATA_ITEM(7, 177, 181, fontpage_7_177_181), // 'α' -- 'ε'
|
||||
FONTDATA_ITEM(7, 183, 199, fontpage_7_183_199), // 'η' -- 'χ'
|
||||
FONTDATA_ITEM(7, 201, 201, fontpage_7_201_201), // 'ω' -- 'ω'
|
||||
FONTDATA_ITEM(7, 204, 206, fontpage_7_204_206), // 'ό' -- 'ώ'
|
||||
FONTDATA_ITEM(64, 166, 166, fontpage_64_166_166), // '…' -- '…'
|
||||
static const uxg_fontinfo_t g_fontinfo_el_gr[] PROGMEM = {
|
||||
FONTDATA_ITEM(7, 136, 136, fontpage_7_136_136), // 'Έ' -- 'Έ'
|
||||
FONTDATA_ITEM(7, 145, 157, fontpage_7_145_157), // 'Α' -- 'Ν'
|
||||
FONTDATA_ITEM(7, 159, 161, fontpage_7_159_161), // 'Ο' -- 'Ρ'
|
||||
FONTDATA_ITEM(7, 163, 167, fontpage_7_163_167), // 'Σ' -- 'Χ'
|
||||
FONTDATA_ITEM(7, 172, 175, fontpage_7_172_175), // 'ά' -- 'ί'
|
||||
FONTDATA_ITEM(7, 177, 181, fontpage_7_177_181), // 'α' -- 'ε'
|
||||
FONTDATA_ITEM(7, 183, 199, fontpage_7_183_199), // 'η' -- 'χ'
|
||||
FONTDATA_ITEM(7, 201, 201, fontpage_7_201_201), // 'ω' -- 'ω'
|
||||
FONTDATA_ITEM(7, 204, 206, fontpage_7_204_206), // 'ό' -- 'ώ'
|
||||
FONTDATA_ITEM(64, 166, 166, fontpage_64_166_166), // '…' -- '…'
|
||||
};
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
|
||||
#include "langdata.h"
|
||||
|
||||
static const uxg_fontinfo_t g_fontinfo_en[] PROGMEM = {};
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
|
||||
#include "langdata.h"
|
||||
|
||||
static const uxg_fontinfo_t g_fontinfo_es[] PROGMEM = {};
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
|
||||
#include "langdata.h"
|
||||
|
||||
static const uxg_fontinfo_t g_fontinfo_eu[] PROGMEM = {};
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
|
||||
#include "langdata.h"
|
||||
|
||||
static const uxg_fontinfo_t g_fontinfo_fi[] PROGMEM = {};
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
|
||||
#include "langdata.h"
|
||||
|
||||
static const uxg_fontinfo_t g_fontinfo_fr[] PROGMEM = {};
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
|
||||
#include "langdata.h"
|
||||
|
||||
static const uxg_fontinfo_t g_fontinfo_gl[] PROGMEM = {};
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#include "langdata.h"
|
||||
|
||||
const u8g_fntpgm_uint8_t fontpage_2_135_135[31] U8G_FONT_SECTION("fontpage_2_135_135") = {
|
||||
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x87,0x87,0x00,0x08,0x00,0x00,
|
||||
@@ -22,11 +24,10 @@ const u8g_fntpgm_uint8_t fontpage_2_254_254[31] U8G_FONT_SECTION("fontpage_2_254
|
||||
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0x00,0x08,0x00,0x00,
|
||||
0x00,0x05,0x08,0x08,0x06,0x00,0x00,0x50,0x20,0x00,0xF8,0x10,0x20,0x40,0xF8};
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
|
||||
FONTDATA_ITEM(2, 135, 135, fontpage_2_135_135), // 'ć' -- 'ć'
|
||||
FONTDATA_ITEM(2, 140, 141, fontpage_2_140_141), // 'Č' -- 'č'
|
||||
FONTDATA_ITEM(2, 145, 145, fontpage_2_145_145), // 'đ' -- 'đ'
|
||||
FONTDATA_ITEM(2, 225, 225, fontpage_2_225_225), // 'š' -- 'š'
|
||||
FONTDATA_ITEM(2, 254, 254, fontpage_2_254_254), // 'ž' -- 'ž'
|
||||
static const uxg_fontinfo_t g_fontinfo_hr[] PROGMEM = {
|
||||
FONTDATA_ITEM(2, 135, 135, fontpage_2_135_135), // 'ć' -- 'ć'
|
||||
FONTDATA_ITEM(2, 140, 141, fontpage_2_140_141), // 'Č' -- 'č'
|
||||
FONTDATA_ITEM(2, 145, 145, fontpage_2_145_145), // 'đ' -- 'đ'
|
||||
FONTDATA_ITEM(2, 225, 225, fontpage_2_225_225), // 'š' -- 'š'
|
||||
FONTDATA_ITEM(2, 254, 254, fontpage_2_254_254), // 'ž' -- 'ž'
|
||||
};
|
||||
|
||||
@@ -3,13 +3,14 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#include "langdata.h"
|
||||
|
||||
const u8g_fntpgm_uint8_t fontpage_2_241_241[31] U8G_FONT_SECTION("fontpage_2_241_241") = {
|
||||
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xF1,0xF1,0x00,0x08,0x00,0x00,
|
||||
0x00,0x05,0x08,0x08,0x06,0x00,0x00,0x48,0x90,0x00,0x88,0x88,0x88,0x88,0x70};
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
|
||||
FONTDATA_ITEM(2, 241, 241, fontpage_2_241_241), // 'ű' -- 'ű'
|
||||
static const uxg_fontinfo_t g_fontinfo_hu[] PROGMEM = {
|
||||
FONTDATA_ITEM(2, 241, 241, fontpage_2_241_241), // 'ű' -- 'ű'
|
||||
};
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
|
||||
#include "langdata.h"
|
||||
|
||||
static const uxg_fontinfo_t g_fontinfo_it[] PROGMEM = {};
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#include "langdata.h"
|
||||
|
||||
const u8g_fntpgm_uint8_t fontpage_97_161_164[65] U8G_FONT_SECTION("fontpage_97_161_164") = {
|
||||
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xA1,0xA4,0x00,0x07,0x00,0x00,
|
||||
@@ -94,18 +96,17 @@ const u8g_fntpgm_uint8_t fontpage_97_252_252[25] U8G_FONT_SECTION("fontpage_97_2
|
||||
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0x00,0x05,0x00,0x00,
|
||||
0x00,0x05,0x02,0x02,0x06,0x00,0x03,0x80,0x78};
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
|
||||
FONTDATA_ITEM(97, 161, 164, fontpage_97_161_164), // 'ァ' -- 'イ'
|
||||
FONTDATA_ITEM(97, 166, 166, fontpage_97_166_166), // 'ウ' -- 'ウ'
|
||||
FONTDATA_ITEM(97, 168, 168, fontpage_97_168_168), // 'エ' -- 'エ'
|
||||
FONTDATA_ITEM(97, 170, 187, fontpage_97_170_187), // 'オ' -- 'セ'
|
||||
FONTDATA_ITEM(97, 189, 193, fontpage_97_189_193), // 'ソ' -- 'チ'
|
||||
FONTDATA_ITEM(97, 195, 211, fontpage_97_195_211), // 'ッ' -- 'ビ'
|
||||
FONTDATA_ITEM(97, 213, 217, fontpage_97_213_217), // 'フ' -- 'ベ'
|
||||
FONTDATA_ITEM(97, 219, 220, fontpage_97_219_220), // 'ホ' -- 'ボ'
|
||||
FONTDATA_ITEM(97, 222, 223, fontpage_97_222_223), // 'マ' -- 'ミ'
|
||||
FONTDATA_ITEM(97, 225, 237, fontpage_97_225_237), // 'メ' -- 'ロ'
|
||||
FONTDATA_ITEM(97, 242, 243, fontpage_97_242_243), // 'ヲ' -- 'ン'
|
||||
FONTDATA_ITEM(97, 252, 252, fontpage_97_252_252), // 'ー' -- 'ー'
|
||||
static const uxg_fontinfo_t g_fontinfo_jp_kana[] PROGMEM = {
|
||||
FONTDATA_ITEM(97, 161, 164, fontpage_97_161_164), // 'ァ' -- 'イ'
|
||||
FONTDATA_ITEM(97, 166, 166, fontpage_97_166_166), // 'ウ' -- 'ウ'
|
||||
FONTDATA_ITEM(97, 168, 168, fontpage_97_168_168), // 'エ' -- 'エ'
|
||||
FONTDATA_ITEM(97, 170, 187, fontpage_97_170_187), // 'オ' -- 'セ'
|
||||
FONTDATA_ITEM(97, 189, 193, fontpage_97_189_193), // 'ソ' -- 'チ'
|
||||
FONTDATA_ITEM(97, 195, 211, fontpage_97_195_211), // 'ッ' -- 'ビ'
|
||||
FONTDATA_ITEM(97, 213, 217, fontpage_97_213_217), // 'フ' -- 'ベ'
|
||||
FONTDATA_ITEM(97, 219, 220, fontpage_97_219_220), // 'ホ' -- 'ボ'
|
||||
FONTDATA_ITEM(97, 222, 223, fontpage_97_222_223), // 'マ' -- 'ミ'
|
||||
FONTDATA_ITEM(97, 225, 237, fontpage_97_225_237), // 'メ' -- 'ロ'
|
||||
FONTDATA_ITEM(97, 242, 243, fontpage_97_242_243), // 'ヲ' -- 'ン'
|
||||
FONTDATA_ITEM(97, 252, 252, fontpage_97_252_252), // 'ー' -- 'ー'
|
||||
};
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#include "langdata.h"
|
||||
|
||||
const u8g_fntpgm_uint8_t fontpage_344_240_240[34] U8G_FONT_SECTION("fontpage_344_240_240") = {
|
||||
0x00,0x0B,0x0D,0x00,0xFD,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x00,0x09,0xFE,0x00,
|
||||
@@ -436,112 +438,111 @@ const u8g_fntpgm_uint8_t fontpage_431_136_136[34] U8G_FONT_SECTION("fontpage_431
|
||||
0x00,0x08,0x0B,0x0B,0x0A,0x01,0xFE,0x71,0x01,0xFD,0x01,0x71,0x49,0x89,0x49,0x71,
|
||||
0x01,0x01};
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
|
||||
FONTDATA_ITEM(344, 240, 240, fontpage_344_240_240), // '거' -- '거'
|
||||
FONTDATA_ITEM(345, 224, 224, fontpage_345_224_224), // '고' -- '고'
|
||||
FONTDATA_ITEM(347, 248, 248, fontpage_347_248_248), // '그' -- '그'
|
||||
FONTDATA_ITEM(348, 137, 137, fontpage_348_137_137), // '급' -- '급'
|
||||
FONTDATA_ITEM(348, 176, 176, fontpage_348_176_176), // '기' -- '기'
|
||||
FONTDATA_ITEM(348, 197, 197, fontpage_348_197_197), // '깅' -- '깅'
|
||||
FONTDATA_ITEM(352, 196, 196, fontpage_352_196_196), // '끄' -- '끄'
|
||||
FONTDATA_ITEM(353, 180, 180, fontpage_353_180_180), // '내' -- '내'
|
||||
FONTDATA_ITEM(354, 248, 248, fontpage_354_248_248), // '노' -- '노'
|
||||
FONTDATA_ITEM(356, 132, 132, fontpage_356_132_132), // '누' -- '누'
|
||||
FONTDATA_ITEM(356, 244, 244, fontpage_356_244_244), // '뉴' -- '뉴'
|
||||
FONTDATA_ITEM(357, 200, 200, fontpage_357_200_200), // '니' -- '니'
|
||||
FONTDATA_ITEM(357, 228, 228, fontpage_357_228_228), // '다' -- '다'
|
||||
FONTDATA_ITEM(357, 249, 249, fontpage_357_249_249), // '당' -- '당'
|
||||
FONTDATA_ITEM(359, 196, 196, fontpage_359_196_196), // '도' -- '도'
|
||||
FONTDATA_ITEM(359, 204, 204, fontpage_359_204_204), // '돌' -- '돌'
|
||||
FONTDATA_ITEM(359, 217, 217, fontpage_359_217_217), // '동' -- '동'
|
||||
FONTDATA_ITEM(360, 152, 152, fontpage_360_152_152), // '되' -- '되'
|
||||
FONTDATA_ITEM(360, 156, 156, fontpage_360_156_156), // '된' -- '된'
|
||||
FONTDATA_ITEM(360, 168, 168, fontpage_360_168_168), // '됨' -- '됨'
|
||||
FONTDATA_ITEM(361, 164, 164, fontpage_361_164_164), // '뒤' -- '뒤'
|
||||
FONTDATA_ITEM(361, 220, 220, fontpage_361_220_220), // '드' -- '드'
|
||||
FONTDATA_ITEM(362, 148, 148, fontpage_362_148_148), // '디' -- '디'
|
||||
FONTDATA_ITEM(366, 252, 252, fontpage_366_252_252), // '라' -- '라'
|
||||
FONTDATA_ITEM(367, 236, 236, fontpage_367_236_236), // '러' -- '러'
|
||||
FONTDATA_ITEM(368, 136, 136, fontpage_368_136_136), // '레' -- '레'
|
||||
FONTDATA_ITEM(368, 165, 165, fontpage_368_165_165), // '력' -- '력'
|
||||
FONTDATA_ITEM(368, 220, 220, fontpage_368_220_220), // '로' -- '로'
|
||||
FONTDATA_ITEM(369, 204, 204, fontpage_369_204_204), // '료' -- '료'
|
||||
FONTDATA_ITEM(370, 244, 244, fontpage_370_244_244), // '르' -- '르'
|
||||
FONTDATA_ITEM(371, 172, 172, fontpage_371_172_172), // '리' -- '리'
|
||||
FONTDATA_ITEM(371, 176, 176, fontpage_371_176_176), // '린' -- '린'
|
||||
FONTDATA_ITEM(371, 189, 189, fontpage_371_189_189), // '립' -- '립'
|
||||
FONTDATA_ITEM(371, 193, 193, fontpage_371_193_193), // '링' -- '링'
|
||||
FONTDATA_ITEM(372, 200, 200, fontpage_372_200_200), // '멈' -- '멈'
|
||||
FONTDATA_ITEM(372, 212, 212, fontpage_372_212_212), // '메' -- '메'
|
||||
FONTDATA_ITEM(372, 244, 244, fontpage_372_244_244), // '면' -- '면'
|
||||
FONTDATA_ITEM(373, 168, 168, fontpage_373_168_168), // '모' -- '모'
|
||||
FONTDATA_ITEM(373, 187, 187, fontpage_373_187_187), // '못' -- '못'
|
||||
FONTDATA_ITEM(375, 248, 248, fontpage_375_248_248), // '미' -- '미'
|
||||
FONTDATA_ITEM(376, 128, 128, fontpage_376_128_128), // '밀' -- '밀'
|
||||
FONTDATA_ITEM(376, 148, 148, fontpage_376_148_148), // '바' -- '바'
|
||||
FONTDATA_ITEM(377, 132, 132, fontpage_377_132_132), // '버' -- '버'
|
||||
FONTDATA_ITEM(377, 160, 160, fontpage_377_160_160), // '베' -- '베'
|
||||
FONTDATA_ITEM(377, 168, 168, fontpage_377_168_168), // '벨' -- '벨'
|
||||
FONTDATA_ITEM(377, 248, 248, fontpage_377_248_248), // '본' -- '본'
|
||||
FONTDATA_ITEM(380, 196, 196, fontpage_380_196_196), // '비' -- '비'
|
||||
FONTDATA_ITEM(385, 172, 172, fontpage_385_172_172), // '사' -- '사'
|
||||
FONTDATA_ITEM(385, 189, 189, fontpage_385_189_189), // '삽' -- '삽'
|
||||
FONTDATA_ITEM(385, 200, 200, fontpage_385_200_200), // '새' -- '새'
|
||||
FONTDATA_ITEM(386, 164, 164, fontpage_386_164_164), // '설' -- '설'
|
||||
FONTDATA_ITEM(387, 140, 141, fontpage_387_140_141), // '소' -- '속'
|
||||
FONTDATA_ITEM(389, 164, 164, fontpage_389_164_164), // '스' -- '스'
|
||||
FONTDATA_ITEM(389, 172, 172, fontpage_389_172_172), // '슬' -- '슬'
|
||||
FONTDATA_ITEM(389, 220, 221, fontpage_389_220_221), // '시' -- '식'
|
||||
FONTDATA_ITEM(395, 180, 180, fontpage_395_180_180), // '어' -- '어'
|
||||
FONTDATA_ITEM(395, 198, 198, fontpage_395_198_198), // '없' -- '없'
|
||||
FONTDATA_ITEM(395, 209, 209, fontpage_395_209_209), // '엑' -- '엑'
|
||||
FONTDATA_ITEM(395, 212, 212, fontpage_395_212_212), // '엔' -- '엔'
|
||||
FONTDATA_ITEM(395, 244, 244, fontpage_395_244_244), // '열' -- '열'
|
||||
FONTDATA_ITEM(396, 136, 136, fontpage_396_136_136), // '예' -- '예'
|
||||
FONTDATA_ITEM(396, 164, 164, fontpage_396_164_164), // '오' -- '오'
|
||||
FONTDATA_ITEM(396, 168, 168, fontpage_396_168_168), // '온' -- '온'
|
||||
FONTDATA_ITEM(396, 196, 196, fontpage_396_196_196), // '완' -- '완'
|
||||
FONTDATA_ITEM(397, 208, 208, fontpage_397_208_208), // '원' -- '원'
|
||||
FONTDATA_ITEM(398, 132, 132, fontpage_398_132_132), // '위' -- '위'
|
||||
FONTDATA_ITEM(398, 188, 188, fontpage_398_188_188), // '으' -- '으'
|
||||
FONTDATA_ITEM(398, 204, 204, fontpage_398_204_204), // '음' -- '음'
|
||||
FONTDATA_ITEM(398, 244, 244, fontpage_398_244_244), // '이' -- '이'
|
||||
FONTDATA_ITEM(398, 252, 253, fontpage_398_252_253), // '일' -- '읽'
|
||||
FONTDATA_ITEM(399, 133, 133, fontpage_399_133_133), // '입' -- '입'
|
||||
FONTDATA_ITEM(399, 144, 145, fontpage_399_144_145), // '자' -- '작'
|
||||
FONTDATA_ITEM(399, 152, 152, fontpage_399_152_152), // '잘' -- '잘'
|
||||
FONTDATA_ITEM(399, 165, 165, fontpage_399_165_165), // '장' -- '장'
|
||||
FONTDATA_ITEM(399, 172, 172, fontpage_399_172_172), // '재' -- '재'
|
||||
FONTDATA_ITEM(400, 128, 128, fontpage_400_128_128), // '저' -- '저'
|
||||
FONTDATA_ITEM(400, 132, 132, fontpage_400_132_132), // '전' -- '전'
|
||||
FONTDATA_ITEM(400, 149, 149, fontpage_400_149_149), // '정' -- '정'
|
||||
FONTDATA_ITEM(400, 156, 156, fontpage_400_156_156), // '제' -- '제'
|
||||
FONTDATA_ITEM(401, 253, 253, fontpage_401_253_253), // '죽' -- '죽'
|
||||
FONTDATA_ITEM(402, 128, 128, fontpage_402_128_128), // '준' -- '준'
|
||||
FONTDATA_ITEM(402, 145, 145, fontpage_402_145_145), // '중' -- '중'
|
||||
FONTDATA_ITEM(403, 144, 144, fontpage_403_144_144), // '즐' -- '즐'
|
||||
FONTDATA_ITEM(403, 192, 192, fontpage_403_192_192), // '지' -- '지'
|
||||
FONTDATA_ITEM(409, 152, 152, fontpage_409_152_152), // '처' -- '처'
|
||||
FONTDATA_ITEM(410, 136, 136, fontpage_410_136_136), // '초' -- '초'
|
||||
FONTDATA_ITEM(411, 149, 149, fontpage_411_149_149), // '축' -- '축'
|
||||
FONTDATA_ITEM(411, 156, 156, fontpage_411_156_156), // '출' -- '출'
|
||||
FONTDATA_ITEM(411, 164, 164, fontpage_411_164_164), // '춤' -- '춤'
|
||||
FONTDATA_ITEM(411, 232, 232, fontpage_411_232_232), // '취' -- '취'
|
||||
FONTDATA_ITEM(412, 216, 216, fontpage_412_216_216), // '치' -- '치'
|
||||
FONTDATA_ITEM(412, 232, 232, fontpage_412_232_232), // '침' -- '침'
|
||||
FONTDATA_ITEM(412, 244, 244, fontpage_412_244_244), // '카' -- '카'
|
||||
FONTDATA_ITEM(414, 156, 156, fontpage_414_156_156), // '켜' -- '켜'
|
||||
FONTDATA_ITEM(417, 209, 209, fontpage_417_209_209), // '탑' -- '탑'
|
||||
FONTDATA_ITEM(418, 176, 176, fontpage_418_176_176), // '터' -- '터'
|
||||
FONTDATA_ITEM(418, 204, 204, fontpage_418_204_204), // '테' -- '테'
|
||||
FONTDATA_ITEM(419, 160, 160, fontpage_419_160_160), // '토' -- '토'
|
||||
FONTDATA_ITEM(421, 184, 184, fontpage_421_184_184), // '트' -- '트'
|
||||
FONTDATA_ITEM(423, 156, 156, fontpage_423_156_156), // '펜' -- '펜'
|
||||
FONTDATA_ITEM(426, 132, 132, fontpage_426_132_132), // '프' -- '프'
|
||||
FONTDATA_ITEM(426, 216, 216, fontpage_426_216_216), // '하' -- '하'
|
||||
FONTDATA_ITEM(426, 233, 233, fontpage_426_233_233), // '합' -- '합'
|
||||
FONTDATA_ITEM(428, 200, 200, fontpage_428_200_200), // '홈' -- '홈'
|
||||
FONTDATA_ITEM(428, 212, 212, fontpage_428_212_212), // '화' -- '화'
|
||||
FONTDATA_ITEM(431, 136, 136, fontpage_431_136_136), // '히' -- '히'
|
||||
static const uxg_fontinfo_t g_fontinfo_ko_KR[] PROGMEM = {
|
||||
FONTDATA_ITEM(344, 240, 240, fontpage_344_240_240), // '거' -- '거'
|
||||
FONTDATA_ITEM(345, 224, 224, fontpage_345_224_224), // '고' -- '고'
|
||||
FONTDATA_ITEM(347, 248, 248, fontpage_347_248_248), // '그' -- '그'
|
||||
FONTDATA_ITEM(348, 137, 137, fontpage_348_137_137), // '급' -- '급'
|
||||
FONTDATA_ITEM(348, 176, 176, fontpage_348_176_176), // '기' -- '기'
|
||||
FONTDATA_ITEM(348, 197, 197, fontpage_348_197_197), // '깅' -- '깅'
|
||||
FONTDATA_ITEM(352, 196, 196, fontpage_352_196_196), // '끄' -- '끄'
|
||||
FONTDATA_ITEM(353, 180, 180, fontpage_353_180_180), // '내' -- '내'
|
||||
FONTDATA_ITEM(354, 248, 248, fontpage_354_248_248), // '노' -- '노'
|
||||
FONTDATA_ITEM(356, 132, 132, fontpage_356_132_132), // '누' -- '누'
|
||||
FONTDATA_ITEM(356, 244, 244, fontpage_356_244_244), // '뉴' -- '뉴'
|
||||
FONTDATA_ITEM(357, 200, 200, fontpage_357_200_200), // '니' -- '니'
|
||||
FONTDATA_ITEM(357, 228, 228, fontpage_357_228_228), // '다' -- '다'
|
||||
FONTDATA_ITEM(357, 249, 249, fontpage_357_249_249), // '당' -- '당'
|
||||
FONTDATA_ITEM(359, 196, 196, fontpage_359_196_196), // '도' -- '도'
|
||||
FONTDATA_ITEM(359, 204, 204, fontpage_359_204_204), // '돌' -- '돌'
|
||||
FONTDATA_ITEM(359, 217, 217, fontpage_359_217_217), // '동' -- '동'
|
||||
FONTDATA_ITEM(360, 152, 152, fontpage_360_152_152), // '되' -- '되'
|
||||
FONTDATA_ITEM(360, 156, 156, fontpage_360_156_156), // '된' -- '된'
|
||||
FONTDATA_ITEM(360, 168, 168, fontpage_360_168_168), // '됨' -- '됨'
|
||||
FONTDATA_ITEM(361, 164, 164, fontpage_361_164_164), // '뒤' -- '뒤'
|
||||
FONTDATA_ITEM(361, 220, 220, fontpage_361_220_220), // '드' -- '드'
|
||||
FONTDATA_ITEM(362, 148, 148, fontpage_362_148_148), // '디' -- '디'
|
||||
FONTDATA_ITEM(366, 252, 252, fontpage_366_252_252), // '라' -- '라'
|
||||
FONTDATA_ITEM(367, 236, 236, fontpage_367_236_236), // '러' -- '러'
|
||||
FONTDATA_ITEM(368, 136, 136, fontpage_368_136_136), // '레' -- '레'
|
||||
FONTDATA_ITEM(368, 165, 165, fontpage_368_165_165), // '력' -- '력'
|
||||
FONTDATA_ITEM(368, 220, 220, fontpage_368_220_220), // '로' -- '로'
|
||||
FONTDATA_ITEM(369, 204, 204, fontpage_369_204_204), // '료' -- '료'
|
||||
FONTDATA_ITEM(370, 244, 244, fontpage_370_244_244), // '르' -- '르'
|
||||
FONTDATA_ITEM(371, 172, 172, fontpage_371_172_172), // '리' -- '리'
|
||||
FONTDATA_ITEM(371, 176, 176, fontpage_371_176_176), // '린' -- '린'
|
||||
FONTDATA_ITEM(371, 189, 189, fontpage_371_189_189), // '립' -- '립'
|
||||
FONTDATA_ITEM(371, 193, 193, fontpage_371_193_193), // '링' -- '링'
|
||||
FONTDATA_ITEM(372, 200, 200, fontpage_372_200_200), // '멈' -- '멈'
|
||||
FONTDATA_ITEM(372, 212, 212, fontpage_372_212_212), // '메' -- '메'
|
||||
FONTDATA_ITEM(372, 244, 244, fontpage_372_244_244), // '면' -- '면'
|
||||
FONTDATA_ITEM(373, 168, 168, fontpage_373_168_168), // '모' -- '모'
|
||||
FONTDATA_ITEM(373, 187, 187, fontpage_373_187_187), // '못' -- '못'
|
||||
FONTDATA_ITEM(375, 248, 248, fontpage_375_248_248), // '미' -- '미'
|
||||
FONTDATA_ITEM(376, 128, 128, fontpage_376_128_128), // '밀' -- '밀'
|
||||
FONTDATA_ITEM(376, 148, 148, fontpage_376_148_148), // '바' -- '바'
|
||||
FONTDATA_ITEM(377, 132, 132, fontpage_377_132_132), // '버' -- '버'
|
||||
FONTDATA_ITEM(377, 160, 160, fontpage_377_160_160), // '베' -- '베'
|
||||
FONTDATA_ITEM(377, 168, 168, fontpage_377_168_168), // '벨' -- '벨'
|
||||
FONTDATA_ITEM(377, 248, 248, fontpage_377_248_248), // '본' -- '본'
|
||||
FONTDATA_ITEM(380, 196, 196, fontpage_380_196_196), // '비' -- '비'
|
||||
FONTDATA_ITEM(385, 172, 172, fontpage_385_172_172), // '사' -- '사'
|
||||
FONTDATA_ITEM(385, 189, 189, fontpage_385_189_189), // '삽' -- '삽'
|
||||
FONTDATA_ITEM(385, 200, 200, fontpage_385_200_200), // '새' -- '새'
|
||||
FONTDATA_ITEM(386, 164, 164, fontpage_386_164_164), // '설' -- '설'
|
||||
FONTDATA_ITEM(387, 140, 141, fontpage_387_140_141), // '소' -- '속'
|
||||
FONTDATA_ITEM(389, 164, 164, fontpage_389_164_164), // '스' -- '스'
|
||||
FONTDATA_ITEM(389, 172, 172, fontpage_389_172_172), // '슬' -- '슬'
|
||||
FONTDATA_ITEM(389, 220, 221, fontpage_389_220_221), // '시' -- '식'
|
||||
FONTDATA_ITEM(395, 180, 180, fontpage_395_180_180), // '어' -- '어'
|
||||
FONTDATA_ITEM(395, 198, 198, fontpage_395_198_198), // '없' -- '없'
|
||||
FONTDATA_ITEM(395, 209, 209, fontpage_395_209_209), // '엑' -- '엑'
|
||||
FONTDATA_ITEM(395, 212, 212, fontpage_395_212_212), // '엔' -- '엔'
|
||||
FONTDATA_ITEM(395, 244, 244, fontpage_395_244_244), // '열' -- '열'
|
||||
FONTDATA_ITEM(396, 136, 136, fontpage_396_136_136), // '예' -- '예'
|
||||
FONTDATA_ITEM(396, 164, 164, fontpage_396_164_164), // '오' -- '오'
|
||||
FONTDATA_ITEM(396, 168, 168, fontpage_396_168_168), // '온' -- '온'
|
||||
FONTDATA_ITEM(396, 196, 196, fontpage_396_196_196), // '완' -- '완'
|
||||
FONTDATA_ITEM(397, 208, 208, fontpage_397_208_208), // '원' -- '원'
|
||||
FONTDATA_ITEM(398, 132, 132, fontpage_398_132_132), // '위' -- '위'
|
||||
FONTDATA_ITEM(398, 188, 188, fontpage_398_188_188), // '으' -- '으'
|
||||
FONTDATA_ITEM(398, 204, 204, fontpage_398_204_204), // '음' -- '음'
|
||||
FONTDATA_ITEM(398, 244, 244, fontpage_398_244_244), // '이' -- '이'
|
||||
FONTDATA_ITEM(398, 252, 253, fontpage_398_252_253), // '일' -- '읽'
|
||||
FONTDATA_ITEM(399, 133, 133, fontpage_399_133_133), // '입' -- '입'
|
||||
FONTDATA_ITEM(399, 144, 145, fontpage_399_144_145), // '자' -- '작'
|
||||
FONTDATA_ITEM(399, 152, 152, fontpage_399_152_152), // '잘' -- '잘'
|
||||
FONTDATA_ITEM(399, 165, 165, fontpage_399_165_165), // '장' -- '장'
|
||||
FONTDATA_ITEM(399, 172, 172, fontpage_399_172_172), // '재' -- '재'
|
||||
FONTDATA_ITEM(400, 128, 128, fontpage_400_128_128), // '저' -- '저'
|
||||
FONTDATA_ITEM(400, 132, 132, fontpage_400_132_132), // '전' -- '전'
|
||||
FONTDATA_ITEM(400, 149, 149, fontpage_400_149_149), // '정' -- '정'
|
||||
FONTDATA_ITEM(400, 156, 156, fontpage_400_156_156), // '제' -- '제'
|
||||
FONTDATA_ITEM(401, 253, 253, fontpage_401_253_253), // '죽' -- '죽'
|
||||
FONTDATA_ITEM(402, 128, 128, fontpage_402_128_128), // '준' -- '준'
|
||||
FONTDATA_ITEM(402, 145, 145, fontpage_402_145_145), // '중' -- '중'
|
||||
FONTDATA_ITEM(403, 144, 144, fontpage_403_144_144), // '즐' -- '즐'
|
||||
FONTDATA_ITEM(403, 192, 192, fontpage_403_192_192), // '지' -- '지'
|
||||
FONTDATA_ITEM(409, 152, 152, fontpage_409_152_152), // '처' -- '처'
|
||||
FONTDATA_ITEM(410, 136, 136, fontpage_410_136_136), // '초' -- '초'
|
||||
FONTDATA_ITEM(411, 149, 149, fontpage_411_149_149), // '축' -- '축'
|
||||
FONTDATA_ITEM(411, 156, 156, fontpage_411_156_156), // '출' -- '출'
|
||||
FONTDATA_ITEM(411, 164, 164, fontpage_411_164_164), // '춤' -- '춤'
|
||||
FONTDATA_ITEM(411, 232, 232, fontpage_411_232_232), // '취' -- '취'
|
||||
FONTDATA_ITEM(412, 216, 216, fontpage_412_216_216), // '치' -- '치'
|
||||
FONTDATA_ITEM(412, 232, 232, fontpage_412_232_232), // '침' -- '침'
|
||||
FONTDATA_ITEM(412, 244, 244, fontpage_412_244_244), // '카' -- '카'
|
||||
FONTDATA_ITEM(414, 156, 156, fontpage_414_156_156), // '켜' -- '켜'
|
||||
FONTDATA_ITEM(417, 209, 209, fontpage_417_209_209), // '탑' -- '탑'
|
||||
FONTDATA_ITEM(418, 176, 176, fontpage_418_176_176), // '터' -- '터'
|
||||
FONTDATA_ITEM(418, 204, 204, fontpage_418_204_204), // '테' -- '테'
|
||||
FONTDATA_ITEM(419, 160, 160, fontpage_419_160_160), // '토' -- '토'
|
||||
FONTDATA_ITEM(421, 184, 184, fontpage_421_184_184), // '트' -- '트'
|
||||
FONTDATA_ITEM(423, 156, 156, fontpage_423_156_156), // '펜' -- '펜'
|
||||
FONTDATA_ITEM(426, 132, 132, fontpage_426_132_132), // '프' -- '프'
|
||||
FONTDATA_ITEM(426, 216, 216, fontpage_426_216_216), // '하' -- '하'
|
||||
FONTDATA_ITEM(426, 233, 233, fontpage_426_233_233), // '합' -- '합'
|
||||
FONTDATA_ITEM(428, 200, 200, fontpage_428_200_200), // '홈' -- '홈'
|
||||
FONTDATA_ITEM(428, 212, 212, fontpage_428_212_212), // '화' -- '화'
|
||||
FONTDATA_ITEM(431, 136, 136, fontpage_431_136_136), // '히' -- '히'
|
||||
};
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
|
||||
#include "langdata.h"
|
||||
|
||||
static const uxg_fontinfo_t g_fontinfo_nl[] PROGMEM = {};
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#include "langdata.h"
|
||||
|
||||
const u8g_fntpgm_uint8_t fontpage_2_132_133[45] U8G_FONT_SECTION("fontpage_2_132_133") = {
|
||||
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x84,0x85,0x00,0x07,0xFE,0x00,
|
||||
@@ -29,12 +31,11 @@ const u8g_fntpgm_uint8_t fontpage_2_252_252[30] U8G_FONT_SECTION("fontpage_2_252
|
||||
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0x00,0x07,0x00,0x00,
|
||||
0x00,0x05,0x07,0x07,0x06,0x00,0x00,0x20,0x00,0xF8,0x10,0x20,0x40,0xF8};
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
|
||||
FONTDATA_ITEM(2, 132, 133, fontpage_2_132_133), // 'Ą' -- 'ą'
|
||||
FONTDATA_ITEM(2, 135, 135, fontpage_2_135_135), // 'ć' -- 'ć'
|
||||
FONTDATA_ITEM(2, 153, 153, fontpage_2_153_153), // 'ę' -- 'ę'
|
||||
FONTDATA_ITEM(2, 193, 196, fontpage_2_193_196), // 'Ł' -- 'ń'
|
||||
FONTDATA_ITEM(2, 218, 219, fontpage_2_218_219), // 'Ś' -- 'ś'
|
||||
FONTDATA_ITEM(2, 252, 252, fontpage_2_252_252), // 'ż' -- 'ż'
|
||||
static const uxg_fontinfo_t g_fontinfo_pl[] PROGMEM = {
|
||||
FONTDATA_ITEM(2, 132, 133, fontpage_2_132_133), // 'Ą' -- 'ą'
|
||||
FONTDATA_ITEM(2, 135, 135, fontpage_2_135_135), // 'ć' -- 'ć'
|
||||
FONTDATA_ITEM(2, 153, 153, fontpage_2_153_153), // 'ę' -- 'ę'
|
||||
FONTDATA_ITEM(2, 193, 196, fontpage_2_193_196), // 'Ł' -- 'ń'
|
||||
FONTDATA_ITEM(2, 218, 219, fontpage_2_218_219), // 'Ś' -- 'ś'
|
||||
FONTDATA_ITEM(2, 252, 252, fontpage_2_252_252), // 'ż' -- 'ż'
|
||||
};
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
|
||||
#include "langdata.h"
|
||||
|
||||
static const uxg_fontinfo_t g_fontinfo_pt[] PROGMEM = {};
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
|
||||
#include "langdata.h"
|
||||
|
||||
static const uxg_fontinfo_t g_fontinfo_pt_br[] PROGMEM = {};
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {};
|
||||
#include "langdata.h"
|
||||
|
||||
static const uxg_fontinfo_t g_fontinfo_ro[] PROGMEM = {};
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#include "langdata.h"
|
||||
|
||||
const u8g_fntpgm_uint8_t fontpage_8_144_168[348] U8G_FONT_SECTION("fontpage_8_144_168") = {
|
||||
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x90,0xA8,0x00,0x0A,0xFE,0x00,
|
||||
@@ -64,10 +66,9 @@ const u8g_fntpgm_uint8_t fontpage_8_209_209[30] U8G_FONT_SECTION("fontpage_8_209
|
||||
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xD1,0xD1,0x00,0x07,0x00,0x00,
|
||||
0x00,0x05,0x07,0x07,0x06,0x00,0x00,0x50,0x00,0x70,0x88,0xF0,0x80,0x70};
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
|
||||
FONTDATA_ITEM(8, 144, 168, fontpage_8_144_168), // 'А' -- 'Ш'
|
||||
FONTDATA_ITEM(8, 171, 173, fontpage_8_171_173), // 'Ы' -- 'Э'
|
||||
FONTDATA_ITEM(8, 175, 207, fontpage_8_175_207), // 'Я' -- 'я'
|
||||
FONTDATA_ITEM(8, 209, 209, fontpage_8_209_209), // 'ё' -- 'ё'
|
||||
static const uxg_fontinfo_t g_fontinfo_ru[] PROGMEM = {
|
||||
FONTDATA_ITEM(8, 144, 168, fontpage_8_144_168), // 'А' -- 'Ш'
|
||||
FONTDATA_ITEM(8, 171, 173, fontpage_8_171_173), // 'Ы' -- 'Э'
|
||||
FONTDATA_ITEM(8, 175, 207, fontpage_8_175_207), // 'Я' -- 'я'
|
||||
FONTDATA_ITEM(8, 209, 209, fontpage_8_209_209), // 'ё' -- 'ё'
|
||||
};
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#include "langdata.h"
|
||||
|
||||
const u8g_fntpgm_uint8_t fontpage_2_140_143[79] U8G_FONT_SECTION("fontpage_2_140_143") = {
|
||||
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x8C,0x8F,0x00,0x0A,0x00,0x00,
|
||||
@@ -37,13 +39,12 @@ const u8g_fntpgm_uint8_t fontpage_2_253_254[47] U8G_FONT_SECTION("fontpage_2_253
|
||||
0x00,0x05,0x0A,0x0A,0x06,0x00,0x00,0x50,0x20,0x00,0xF8,0x08,0x10,0x20,0x40,0x80,
|
||||
0xF8,0x05,0x08,0x08,0x06,0x00,0x00,0x50,0x20,0x00,0xF8,0x10,0x20,0x40,0xF8};
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
|
||||
FONTDATA_ITEM(2, 140, 143, fontpage_2_140_143), // 'Č' -- 'ď'
|
||||
FONTDATA_ITEM(2, 186, 186, fontpage_2_186_186), // 'ĺ' -- 'ĺ'
|
||||
FONTDATA_ITEM(2, 189, 190, fontpage_2_189_190), // 'Ľ' -- 'ľ'
|
||||
FONTDATA_ITEM(2, 199, 200, fontpage_2_199_200), // 'Ň' -- 'ň'
|
||||
FONTDATA_ITEM(2, 224, 225, fontpage_2_224_225), // 'Š' -- 'š'
|
||||
FONTDATA_ITEM(2, 229, 229, fontpage_2_229_229), // 'ť' -- 'ť'
|
||||
FONTDATA_ITEM(2, 253, 254, fontpage_2_253_254), // 'Ž' -- 'ž'
|
||||
static const uxg_fontinfo_t g_fontinfo_sk[] PROGMEM = {
|
||||
FONTDATA_ITEM(2, 140, 143, fontpage_2_140_143), // 'Č' -- 'ď'
|
||||
FONTDATA_ITEM(2, 186, 186, fontpage_2_186_186), // 'ĺ' -- 'ĺ'
|
||||
FONTDATA_ITEM(2, 189, 190, fontpage_2_189_190), // 'Ľ' -- 'ľ'
|
||||
FONTDATA_ITEM(2, 199, 200, fontpage_2_199_200), // 'Ň' -- 'ň'
|
||||
FONTDATA_ITEM(2, 224, 225, fontpage_2_224_225), // 'Š' -- 'š'
|
||||
FONTDATA_ITEM(2, 229, 229, fontpage_2_229_229), // 'ť' -- 'ť'
|
||||
FONTDATA_ITEM(2, 253, 254, fontpage_2_253_254), // 'Ž' -- 'ž'
|
||||
};
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#include "langdata.h"
|
||||
|
||||
const u8g_fntpgm_uint8_t fontpage_8_128_255[1677] U8G_FONT_SECTION("fontpage_8_128_255") = {
|
||||
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0x00,0x0A,0xFE,0x00,
|
||||
@@ -223,9 +225,8 @@ const u8g_fntpgm_uint8_t fontpage_97_193_255[822] U8G_FONT_SECTION("fontpage_97_
|
||||
0x06,0x00,0x02,0x28,0x28,0x00,0x80,0x60,0x10,0x08,0x05,0x06,0x06,0x06,0x00,0x00,
|
||||
0xF8,0x08,0x08,0x08,0x08,0x08};
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
|
||||
FONTDATA_ITEM(8, 128, 255, fontpage_8_128_255), // 'Ѐ' -- 'ѿ'
|
||||
FONTDATA_ITEM(97, 129, 191, fontpage_97_129_191), // 'め' -- 'タ'
|
||||
FONTDATA_ITEM(97, 193, 255, fontpage_97_193_255), // 'チ' -- 'ヿ'
|
||||
static const uxg_fontinfo_t g_fontinfo_test[] PROGMEM = {
|
||||
FONTDATA_ITEM(8, 128, 255, fontpage_8_128_255), // 'Ѐ' -- 'ѿ'
|
||||
FONTDATA_ITEM(97, 129, 191, fontpage_97_129_191), // 'め' -- 'タ'
|
||||
FONTDATA_ITEM(97, 193, 255, fontpage_97_193_255), // 'チ' -- 'ヿ'
|
||||
};
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#include "langdata.h"
|
||||
|
||||
const u8g_fntpgm_uint8_t fontpage_2_158_159[49] U8G_FONT_SECTION("fontpage_2_158_159") = {
|
||||
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x9E,0x9F,0x00,0x0A,0xFE,0x00,
|
||||
@@ -19,9 +21,8 @@ const u8g_fntpgm_uint8_t fontpage_2_222_223[45] U8G_FONT_SECTION("fontpage_2_222
|
||||
0x00,0x05,0x09,0x09,0x06,0x00,0xFE,0x70,0x88,0x80,0x70,0x08,0x88,0x70,0x10,0x60,
|
||||
0x05,0x07,0x07,0x06,0x00,0xFE,0x78,0x80,0x70,0x08,0xF0,0x10,0x60};
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
|
||||
FONTDATA_ITEM(2, 158, 159, fontpage_2_158_159), // 'Ğ' -- 'ğ'
|
||||
FONTDATA_ITEM(2, 176, 177, fontpage_2_176_177), // 'İ' -- 'ı'
|
||||
FONTDATA_ITEM(2, 222, 223, fontpage_2_222_223), // 'Ş' -- 'ş'
|
||||
static const uxg_fontinfo_t g_fontinfo_tr[] PROGMEM = {
|
||||
FONTDATA_ITEM(2, 158, 159, fontpage_2_158_159), // 'Ğ' -- 'ğ'
|
||||
FONTDATA_ITEM(2, 176, 177, fontpage_2_176_177), // 'İ' -- 'ı'
|
||||
FONTDATA_ITEM(2, 222, 223, fontpage_2_222_223), // 'Ş' -- 'ş'
|
||||
};
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#include "langdata.h"
|
||||
|
||||
const u8g_fntpgm_uint8_t fontpage_8_134_134[30] U8G_FONT_SECTION("fontpage_8_134_134") = {
|
||||
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x86,0x86,0x00,0x07,0x00,0x00,
|
||||
@@ -72,14 +74,13 @@ const u8g_fntpgm_uint8_t fontpage_8_214_215[41] U8G_FONT_SECTION("fontpage_8_214
|
||||
0x00,0x03,0x06,0x06,0x06,0x01,0x00,0x40,0x00,0xC0,0x40,0x40,0xE0,0x03,0x06,0x06,
|
||||
0x06,0x01,0x00,0xA0,0x00,0xC0,0x40,0x40,0xE0};
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
|
||||
FONTDATA_ITEM(8, 134, 134, fontpage_8_134_134), // 'І' -- 'І'
|
||||
FONTDATA_ITEM(8, 144, 169, fontpage_8_144_169), // 'А' -- 'Щ'
|
||||
FONTDATA_ITEM(8, 172, 172, fontpage_8_172_172), // 'Ь' -- 'Ь'
|
||||
FONTDATA_ITEM(8, 175, 201, fontpage_8_175_201), // 'Я' -- 'щ'
|
||||
FONTDATA_ITEM(8, 204, 204, fontpage_8_204_204), // 'ь' -- 'ь'
|
||||
FONTDATA_ITEM(8, 206, 207, fontpage_8_206_207), // 'ю' -- 'я'
|
||||
FONTDATA_ITEM(8, 212, 212, fontpage_8_212_212), // 'є' -- 'є'
|
||||
FONTDATA_ITEM(8, 214, 215, fontpage_8_214_215), // 'і' -- 'ї'
|
||||
static const uxg_fontinfo_t g_fontinfo_uk[] PROGMEM = {
|
||||
FONTDATA_ITEM(8, 134, 134, fontpage_8_134_134), // 'І' -- 'І'
|
||||
FONTDATA_ITEM(8, 144, 169, fontpage_8_144_169), // 'А' -- 'Щ'
|
||||
FONTDATA_ITEM(8, 172, 172, fontpage_8_172_172), // 'Ь' -- 'Ь'
|
||||
FONTDATA_ITEM(8, 175, 201, fontpage_8_175_201), // 'Я' -- 'щ'
|
||||
FONTDATA_ITEM(8, 204, 204, fontpage_8_204_204), // 'ь' -- 'ь'
|
||||
FONTDATA_ITEM(8, 206, 207, fontpage_8_206_207), // 'ю' -- 'я'
|
||||
FONTDATA_ITEM(8, 212, 212, fontpage_8_212_212), // 'є' -- 'є'
|
||||
FONTDATA_ITEM(8, 214, 215, fontpage_8_214_215), // 'і' -- 'ї'
|
||||
};
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#include "langdata.h"
|
||||
|
||||
const u8g_fntpgm_uint8_t fontpage_2_131_131[31] U8G_FONT_SECTION("fontpage_2_131_131") = {
|
||||
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x83,0x83,0x00,0x08,0x00,0x00,
|
||||
@@ -177,51 +179,50 @@ const u8g_fntpgm_uint8_t fontpage_61_241_241[32] U8G_FONT_SECTION("fontpage_61_2
|
||||
0x00,0x06,0x09,0x09,0x07,0x00,0xFE,0x0C,0x04,0x88,0x88,0x88,0x88,0x70,0x00,0x20
|
||||
};
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
|
||||
FONTDATA_ITEM(2, 131, 131, fontpage_2_131_131), // 'ă' -- 'ă'
|
||||
FONTDATA_ITEM(2, 144, 145, fontpage_2_144_145), // 'Đ' -- 'đ'
|
||||
FONTDATA_ITEM(2, 169, 169, fontpage_2_169_169), // 'ĩ' -- 'ĩ'
|
||||
FONTDATA_ITEM(3, 161, 161, fontpage_3_161_161), // 'ơ' -- 'ơ'
|
||||
FONTDATA_ITEM(3, 175, 176, fontpage_3_175_176), // 'Ư' -- 'ư'
|
||||
FONTDATA_ITEM(6, 131, 131, fontpage_6_131_131), // '̃' -- '̃'
|
||||
FONTDATA_ITEM(6, 137, 137, fontpage_6_137_137), // '̉' -- '̉'
|
||||
FONTDATA_ITEM(6, 163, 163, fontpage_6_163_163), // '̣' -- '̣'
|
||||
FONTDATA_ITEM(6, 192, 193, fontpage_6_192_193), // '̀' -- '́'
|
||||
FONTDATA_ITEM(61, 161, 161, fontpage_61_161_161), // 'ạ' -- 'ạ'
|
||||
FONTDATA_ITEM(61, 163, 163, fontpage_61_163_163), // 'ả' -- 'ả'
|
||||
FONTDATA_ITEM(61, 165, 165, fontpage_61_165_165), // 'ấ' -- 'ấ'
|
||||
FONTDATA_ITEM(61, 167, 167, fontpage_61_167_167), // 'ầ' -- 'ầ'
|
||||
FONTDATA_ITEM(61, 169, 169, fontpage_61_169_169), // 'ẩ' -- 'ẩ'
|
||||
FONTDATA_ITEM(61, 173, 173, fontpage_61_173_173), // 'ậ' -- 'ậ'
|
||||
FONTDATA_ITEM(61, 175, 175, fontpage_61_175_175), // 'ắ' -- 'ắ'
|
||||
FONTDATA_ITEM(61, 177, 177, fontpage_61_177_177), // 'ằ' -- 'ằ'
|
||||
FONTDATA_ITEM(61, 179, 179, fontpage_61_179_179), // 'ẳ' -- 'ẳ'
|
||||
FONTDATA_ITEM(61, 181, 181, fontpage_61_181_181), // 'ẵ' -- 'ẵ'
|
||||
FONTDATA_ITEM(61, 183, 183, fontpage_61_183_183), // 'ặ' -- 'ặ'
|
||||
FONTDATA_ITEM(61, 191, 191, fontpage_61_191_191), // 'ế' -- 'ế'
|
||||
FONTDATA_ITEM(61, 193, 193, fontpage_61_193_193), // 'ề' -- 'ề'
|
||||
FONTDATA_ITEM(61, 195, 195, fontpage_61_195_195), // 'ể' -- 'ể'
|
||||
FONTDATA_ITEM(61, 199, 199, fontpage_61_199_199), // 'ệ' -- 'ệ'
|
||||
FONTDATA_ITEM(61, 201, 201, fontpage_61_201_201), // 'ỉ' -- 'ỉ'
|
||||
FONTDATA_ITEM(61, 203, 203, fontpage_61_203_203), // 'ị' -- 'ị'
|
||||
FONTDATA_ITEM(61, 205, 205, fontpage_61_205_205), // 'ọ' -- 'ọ'
|
||||
FONTDATA_ITEM(61, 207, 207, fontpage_61_207_207), // 'ỏ' -- 'ỏ'
|
||||
FONTDATA_ITEM(61, 209, 209, fontpage_61_209_209), // 'ố' -- 'ố'
|
||||
FONTDATA_ITEM(61, 211, 211, fontpage_61_211_211), // 'ồ' -- 'ồ'
|
||||
FONTDATA_ITEM(61, 213, 213, fontpage_61_213_213), // 'ổ' -- 'ổ'
|
||||
FONTDATA_ITEM(61, 215, 215, fontpage_61_215_215), // 'ỗ' -- 'ỗ'
|
||||
FONTDATA_ITEM(61, 217, 217, fontpage_61_217_217), // 'ộ' -- 'ộ'
|
||||
FONTDATA_ITEM(61, 219, 219, fontpage_61_219_219), // 'ớ' -- 'ớ'
|
||||
FONTDATA_ITEM(61, 221, 221, fontpage_61_221_221), // 'ờ' -- 'ờ'
|
||||
FONTDATA_ITEM(61, 223, 223, fontpage_61_223_223), // 'ở' -- 'ở'
|
||||
FONTDATA_ITEM(61, 225, 225, fontpage_61_225_225), // 'ỡ' -- 'ỡ'
|
||||
FONTDATA_ITEM(61, 227, 227, fontpage_61_227_227), // 'ợ' -- 'ợ'
|
||||
FONTDATA_ITEM(61, 229, 229, fontpage_61_229_229), // 'ụ' -- 'ụ'
|
||||
FONTDATA_ITEM(61, 231, 231, fontpage_61_231_231), // 'ủ' -- 'ủ'
|
||||
FONTDATA_ITEM(61, 233, 233, fontpage_61_233_233), // 'ứ' -- 'ứ'
|
||||
FONTDATA_ITEM(61, 235, 235, fontpage_61_235_235), // 'ừ' -- 'ừ'
|
||||
FONTDATA_ITEM(61, 237, 237, fontpage_61_237_237), // 'ử' -- 'ử'
|
||||
FONTDATA_ITEM(61, 239, 239, fontpage_61_239_239), // 'ữ' -- 'ữ'
|
||||
FONTDATA_ITEM(61, 241, 241, fontpage_61_241_241), // 'ự' -- 'ự'
|
||||
static const uxg_fontinfo_t g_fontinfo_vi[] PROGMEM = {
|
||||
FONTDATA_ITEM(2, 131, 131, fontpage_2_131_131), // 'ă' -- 'ă'
|
||||
FONTDATA_ITEM(2, 144, 145, fontpage_2_144_145), // 'Đ' -- 'đ'
|
||||
FONTDATA_ITEM(2, 169, 169, fontpage_2_169_169), // 'ĩ' -- 'ĩ'
|
||||
FONTDATA_ITEM(3, 161, 161, fontpage_3_161_161), // 'ơ' -- 'ơ'
|
||||
FONTDATA_ITEM(3, 175, 176, fontpage_3_175_176), // 'Ư' -- 'ư'
|
||||
FONTDATA_ITEM(6, 131, 131, fontpage_6_131_131), // '̃' -- '̃'
|
||||
FONTDATA_ITEM(6, 137, 137, fontpage_6_137_137), // '̉' -- '̉'
|
||||
FONTDATA_ITEM(6, 163, 163, fontpage_6_163_163), // '̣' -- '̣'
|
||||
FONTDATA_ITEM(6, 192, 193, fontpage_6_192_193), // '̀' -- '́'
|
||||
FONTDATA_ITEM(61, 161, 161, fontpage_61_161_161), // 'ạ' -- 'ạ'
|
||||
FONTDATA_ITEM(61, 163, 163, fontpage_61_163_163), // 'ả' -- 'ả'
|
||||
FONTDATA_ITEM(61, 165, 165, fontpage_61_165_165), // 'ấ' -- 'ấ'
|
||||
FONTDATA_ITEM(61, 167, 167, fontpage_61_167_167), // 'ầ' -- 'ầ'
|
||||
FONTDATA_ITEM(61, 169, 169, fontpage_61_169_169), // 'ẩ' -- 'ẩ'
|
||||
FONTDATA_ITEM(61, 173, 173, fontpage_61_173_173), // 'ậ' -- 'ậ'
|
||||
FONTDATA_ITEM(61, 175, 175, fontpage_61_175_175), // 'ắ' -- 'ắ'
|
||||
FONTDATA_ITEM(61, 177, 177, fontpage_61_177_177), // 'ằ' -- 'ằ'
|
||||
FONTDATA_ITEM(61, 179, 179, fontpage_61_179_179), // 'ẳ' -- 'ẳ'
|
||||
FONTDATA_ITEM(61, 181, 181, fontpage_61_181_181), // 'ẵ' -- 'ẵ'
|
||||
FONTDATA_ITEM(61, 183, 183, fontpage_61_183_183), // 'ặ' -- 'ặ'
|
||||
FONTDATA_ITEM(61, 191, 191, fontpage_61_191_191), // 'ế' -- 'ế'
|
||||
FONTDATA_ITEM(61, 193, 193, fontpage_61_193_193), // 'ề' -- 'ề'
|
||||
FONTDATA_ITEM(61, 195, 195, fontpage_61_195_195), // 'ể' -- 'ể'
|
||||
FONTDATA_ITEM(61, 199, 199, fontpage_61_199_199), // 'ệ' -- 'ệ'
|
||||
FONTDATA_ITEM(61, 201, 201, fontpage_61_201_201), // 'ỉ' -- 'ỉ'
|
||||
FONTDATA_ITEM(61, 203, 203, fontpage_61_203_203), // 'ị' -- 'ị'
|
||||
FONTDATA_ITEM(61, 205, 205, fontpage_61_205_205), // 'ọ' -- 'ọ'
|
||||
FONTDATA_ITEM(61, 207, 207, fontpage_61_207_207), // 'ỏ' -- 'ỏ'
|
||||
FONTDATA_ITEM(61, 209, 209, fontpage_61_209_209), // 'ố' -- 'ố'
|
||||
FONTDATA_ITEM(61, 211, 211, fontpage_61_211_211), // 'ồ' -- 'ồ'
|
||||
FONTDATA_ITEM(61, 213, 213, fontpage_61_213_213), // 'ổ' -- 'ổ'
|
||||
FONTDATA_ITEM(61, 215, 215, fontpage_61_215_215), // 'ỗ' -- 'ỗ'
|
||||
FONTDATA_ITEM(61, 217, 217, fontpage_61_217_217), // 'ộ' -- 'ộ'
|
||||
FONTDATA_ITEM(61, 219, 219, fontpage_61_219_219), // 'ớ' -- 'ớ'
|
||||
FONTDATA_ITEM(61, 221, 221, fontpage_61_221_221), // 'ờ' -- 'ờ'
|
||||
FONTDATA_ITEM(61, 223, 223, fontpage_61_223_223), // 'ở' -- 'ở'
|
||||
FONTDATA_ITEM(61, 225, 225, fontpage_61_225_225), // 'ỡ' -- 'ỡ'
|
||||
FONTDATA_ITEM(61, 227, 227, fontpage_61_227_227), // 'ợ' -- 'ợ'
|
||||
FONTDATA_ITEM(61, 229, 229, fontpage_61_229_229), // 'ụ' -- 'ụ'
|
||||
FONTDATA_ITEM(61, 231, 231, fontpage_61_231_231), // 'ủ' -- 'ủ'
|
||||
FONTDATA_ITEM(61, 233, 233, fontpage_61_233_233), // 'ứ' -- 'ứ'
|
||||
FONTDATA_ITEM(61, 235, 235, fontpage_61_235_235), // 'ừ' -- 'ừ'
|
||||
FONTDATA_ITEM(61, 237, 237, fontpage_61_237_237), // 'ử' -- 'ử'
|
||||
FONTDATA_ITEM(61, 239, 239, fontpage_61_239_239), // 'ữ' -- 'ữ'
|
||||
FONTDATA_ITEM(61, 241, 241, fontpage_61_241_241), // 'ự' -- 'ự'
|
||||
};
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#include "langdata.h"
|
||||
|
||||
const u8g_fntpgm_uint8_t fontpage_64_157_157[26] U8G_FONT_SECTION("fontpage_64_157_157") = {
|
||||
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x9D,0x9D,0x00,0x07,0x00,0x00,
|
||||
@@ -1462,362 +1464,361 @@ const u8g_fntpgm_uint8_t fontpage_510_154_154[30] U8G_FONT_SECTION("fontpage_510
|
||||
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x9A,0x9A,0x00,0x08,0x00,0x00,
|
||||
0x00,0x02,0x07,0x07,0x0C,0x06,0x01,0xC0,0xC0,0x00,0x00,0x00,0xC0,0xC0};
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
|
||||
FONTDATA_ITEM(64, 157, 157, fontpage_64_157_157), // '”' -- '”'
|
||||
FONTDATA_ITEM(69, 191, 191, fontpage_69_191_191), // '⊿' -- '⊿'
|
||||
FONTDATA_ITEM(156, 128, 128, fontpage_156_128_128), // '一' -- '一'
|
||||
FONTDATA_ITEM(156, 137, 139, fontpage_156_137_139), // '三' -- '下'
|
||||
FONTDATA_ITEM(156, 141, 141, fontpage_156_141_141), // '不' -- '不'
|
||||
FONTDATA_ITEM(156, 147, 147, fontpage_156_147_147), // '专' -- '专'
|
||||
FONTDATA_ITEM(156, 157, 157, fontpage_156_157_157), // '丝' -- '丝'
|
||||
FONTDATA_ITEM(156, 170, 170, fontpage_156_170_170), // '个' -- '个'
|
||||
FONTDATA_ITEM(156, 173, 173, fontpage_156_173_173), // '中' -- '中'
|
||||
FONTDATA_ITEM(156, 186, 187, fontpage_156_186_187), // '为' -- '主'
|
||||
FONTDATA_ITEM(156, 201, 201, fontpage_156_201_201), // '义' -- '义'
|
||||
FONTDATA_ITEM(156, 203, 203, fontpage_156_203_203), // '之' -- '之'
|
||||
FONTDATA_ITEM(157, 134, 134, fontpage_157_134_134), // '了' -- '了'
|
||||
FONTDATA_ITEM(157, 140, 140, fontpage_157_140_140), // '二' -- '二'
|
||||
FONTDATA_ITEM(157, 142, 142, fontpage_157_142_142), // '于' -- '于'
|
||||
FONTDATA_ITEM(157, 164, 164, fontpage_157_164_164), // '交' -- '交'
|
||||
FONTDATA_ITEM(157, 174, 174, fontpage_157_174_174), // '亮' -- '亮'
|
||||
FONTDATA_ITEM(157, 206, 206, fontpage_157_206_206), // '从' -- '从'
|
||||
FONTDATA_ITEM(157, 228, 229, fontpage_157_228_229), // '令' -- '以'
|
||||
FONTDATA_ITEM(157, 246, 246, fontpage_157_246_246), // '件' -- '件'
|
||||
FONTDATA_ITEM(157, 253, 253, fontpage_157_253_253), // '份' -- '份'
|
||||
FONTDATA_ITEM(158, 145, 145, fontpage_158_145_145), // '休' -- '休'
|
||||
FONTDATA_ITEM(158, 160, 160, fontpage_158_160_160), // '传' -- '传'
|
||||
FONTDATA_ITEM(158, 205, 206, fontpage_158_205_206), // '位' -- '低'
|
||||
FONTDATA_ITEM(158, 211, 211, fontpage_158_211_211), // '体' -- '体'
|
||||
FONTDATA_ITEM(158, 217, 217, fontpage_158_217_217), // '余' -- '余'
|
||||
FONTDATA_ITEM(158, 220, 220, fontpage_158_220_220), // '作' -- '作'
|
||||
FONTDATA_ITEM(158, 255, 255, fontpage_158_255_255), // '使' -- '使'
|
||||
FONTDATA_ITEM(159, 155, 155, fontpage_159_155_155), // '供' -- '供'
|
||||
FONTDATA_ITEM(159, 181, 181, fontpage_159_181_181), // '侵' -- '侵'
|
||||
FONTDATA_ITEM(159, 221, 221, fontpage_159_221_221), // '保' -- '保'
|
||||
FONTDATA_ITEM(159, 225, 225, fontpage_159_225_225), // '信' -- '信'
|
||||
FONTDATA_ITEM(160, 188, 188, fontpage_160_188_188), // '值' -- '值'
|
||||
FONTDATA_ITEM(160, 190, 190, fontpage_160_190_190), // '倾' -- '倾'
|
||||
FONTDATA_ITEM(160, 207, 207, fontpage_160_207_207), // '偏' -- '偏'
|
||||
FONTDATA_ITEM(160, 220, 220, fontpage_160_220_220), // '停' -- '停'
|
||||
FONTDATA_ITEM(161, 168, 168, fontpage_161_168_168), // '储' -- '储'
|
||||
FONTDATA_ITEM(161, 207, 207, fontpage_161_207_207), // '像' -- '像'
|
||||
FONTDATA_ITEM(162, 197, 197, fontpage_162_197_197), // '充' -- '充'
|
||||
FONTDATA_ITEM(162, 200, 201, fontpage_162_200_201), // '先' -- '光'
|
||||
FONTDATA_ITEM(162, 229, 229, fontpage_162_229_229), // '入' -- '入'
|
||||
FONTDATA_ITEM(162, 232, 232, fontpage_162_232_232), // '全' -- '全'
|
||||
FONTDATA_ITEM(162, 241, 241, fontpage_162_241_241), // '共' -- '共'
|
||||
FONTDATA_ITEM(162, 243, 243, fontpage_162_243_243), // '关' -- '关'
|
||||
FONTDATA_ITEM(162, 247, 247, fontpage_162_247_247), // '具' -- '具'
|
||||
FONTDATA_ITEM(163, 151, 151, fontpage_163_151_151), // '冗' -- '冗'
|
||||
FONTDATA_ITEM(163, 183, 183, fontpage_163_183_183), // '冷' -- '冷'
|
||||
FONTDATA_ITEM(163, 198, 198, fontpage_163_198_198), // '准' -- '准'
|
||||
FONTDATA_ITEM(163, 250, 251, fontpage_163_250_251), // '出' -- '击'
|
||||
FONTDATA_ITEM(164, 134, 135, fontpage_164_134_135), // '分' -- '切'
|
||||
FONTDATA_ITEM(164, 155, 155, fontpage_164_155_155), // '创' -- '创'
|
||||
FONTDATA_ITEM(164, 157, 157, fontpage_164_157_157), // '初' -- '初'
|
||||
FONTDATA_ITEM(164, 171, 171, fontpage_164_171_171), // '别' -- '别'
|
||||
FONTDATA_ITEM(164, 176, 176, fontpage_164_176_176), // '到' -- '到'
|
||||
FONTDATA_ITEM(164, 182, 183, fontpage_164_182_183), // '制' -- '刷'
|
||||
FONTDATA_ITEM(164, 242, 242, fontpage_164_242_242), // '割' -- '割'
|
||||
FONTDATA_ITEM(165, 155, 155, fontpage_165_155_155), // '力' -- '力'
|
||||
FONTDATA_ITEM(165, 159, 160, fontpage_165_159_160), // '功' -- '加'
|
||||
FONTDATA_ITEM(165, 168, 168, fontpage_165_168_168), // '动' -- '动'
|
||||
FONTDATA_ITEM(166, 150, 150, fontpage_166_150_150), // '化' -- '化'
|
||||
FONTDATA_ITEM(166, 199, 199, fontpage_166_199_199), // '升' -- '升'
|
||||
FONTDATA_ITEM(166, 202, 202, fontpage_166_202_202), // '半' -- '半'
|
||||
FONTDATA_ITEM(166, 207, 207, fontpage_166_207_207), // '协' -- '协'
|
||||
FONTDATA_ITEM(166, 213, 213, fontpage_166_213_213), // '单' -- '单'
|
||||
FONTDATA_ITEM(166, 225, 225, fontpage_166_225_225), // '卡' -- '卡'
|
||||
FONTDATA_ITEM(166, 240, 241, fontpage_166_240_241), // '印' -- '危'
|
||||
FONTDATA_ITEM(166, 244, 244, fontpage_166_244_244), // '却' -- '却'
|
||||
FONTDATA_ITEM(166, 248, 248, fontpage_166_248_248), // '卸' -- '卸'
|
||||
FONTDATA_ITEM(167, 139, 139, fontpage_167_139_139), // '压' -- '压'
|
||||
FONTDATA_ITEM(167, 159, 159, fontpage_167_159_159), // '原' -- '原'
|
||||
FONTDATA_ITEM(167, 204, 205, fontpage_167_204_205), // '双' -- '反'
|
||||
FONTDATA_ITEM(167, 214, 214, fontpage_167_214_214), // '取' -- '取'
|
||||
FONTDATA_ITEM(167, 216, 216, fontpage_167_216_216), // '变' -- '变'
|
||||
FONTDATA_ITEM(167, 240, 240, fontpage_167_240_240), // '台' -- '台'
|
||||
FONTDATA_ITEM(168, 131, 131, fontpage_168_131_131), // '吃' -- '吃'
|
||||
FONTDATA_ITEM(168, 136, 136, fontpage_168_136_136), // '合' -- '合'
|
||||
FONTDATA_ITEM(168, 141, 142, fontpage_168_141_142), // '名' -- '后'
|
||||
FONTDATA_ITEM(168, 145, 145, fontpage_168_145_145), // '向' -- '向'
|
||||
FONTDATA_ITEM(168, 166, 166, fontpage_168_166_166), // '否' -- '否'
|
||||
FONTDATA_ITEM(168, 175, 175, fontpage_168_175_175), // '启' -- '启'
|
||||
FONTDATA_ITEM(168, 202, 202, fontpage_168_202_202), // '告' -- '告'
|
||||
FONTDATA_ITEM(168, 232, 232, fontpage_168_232_232), // '周' -- '周'
|
||||
FONTDATA_ITEM(168, 253, 253, fontpage_168_253_253), // '命' -- '命'
|
||||
FONTDATA_ITEM(169, 140, 140, fontpage_169_140_140), // '和' -- '和'
|
||||
FONTDATA_ITEM(169, 205, 205, fontpage_169_205_205), // '响' -- '响'
|
||||
FONTDATA_ITEM(171, 183, 183, fontpage_171_183_183), // '喷' -- '喷'
|
||||
FONTDATA_ITEM(172, 180, 180, fontpage_172_180_180), // '嘴' -- '嘴'
|
||||
FONTDATA_ITEM(172, 232, 232, fontpage_172_232_232), // '器' -- '器'
|
||||
FONTDATA_ITEM(172, 244, 244, fontpage_172_244_244), // '噴' -- '噴'
|
||||
FONTDATA_ITEM(173, 222, 222, fontpage_173_222_222), // '回' -- '回'
|
||||
FONTDATA_ITEM(173, 224, 224, fontpage_173_224_224), // '因' -- '因'
|
||||
FONTDATA_ITEM(173, 250, 250, fontpage_173_250_250), // '固' -- '固'
|
||||
FONTDATA_ITEM(173, 254, 254, fontpage_173_254_254), // '图' -- '图'
|
||||
FONTDATA_ITEM(174, 168, 168, fontpage_174_168_168), // '在' -- '在'
|
||||
FONTDATA_ITEM(174, 207, 207, fontpage_174_207_207), // '坏' -- '坏'
|
||||
FONTDATA_ITEM(174, 215, 215, fontpage_174_215_215), // '块' -- '块'
|
||||
FONTDATA_ITEM(175, 139, 139, fontpage_175_139_139), // '型' -- '型'
|
||||
FONTDATA_ITEM(175, 171, 171, fontpage_175_171_171), // '垫' -- '垫'
|
||||
FONTDATA_ITEM(176, 235, 235, fontpage_176_235_235), // '填' -- '填'
|
||||
FONTDATA_ITEM(177, 243, 243, fontpage_177_243_243), // '壳' -- '壳'
|
||||
FONTDATA_ITEM(178, 135, 135, fontpage_178_135_135), // '备' -- '备'
|
||||
FONTDATA_ITEM(178, 141, 141, fontpage_178_141_141), // '复' -- '复'
|
||||
FONTDATA_ITEM(178, 150, 150, fontpage_178_150_150), // '外' -- '外'
|
||||
FONTDATA_ITEM(178, 154, 154, fontpage_178_154_154), // '多' -- '多'
|
||||
FONTDATA_ITEM(178, 167, 167, fontpage_178_167_167), // '大' -- '大'
|
||||
FONTDATA_ITEM(178, 169, 170, fontpage_178_169_170), // '天' -- '太'
|
||||
FONTDATA_ITEM(178, 177, 177, fontpage_178_177_177), // '失' -- '失'
|
||||
FONTDATA_ITEM(178, 180, 180, fontpage_178_180_180), // '头' -- '头'
|
||||
FONTDATA_ITEM(178, 253, 253, fontpage_178_253_253), // '好' -- '好'
|
||||
FONTDATA_ITEM(179, 203, 203, fontpage_179_203_203), // '始' -- '始'
|
||||
FONTDATA_ITEM(182, 208, 208, fontpage_182_208_208), // '子' -- '子'
|
||||
FONTDATA_ITEM(182, 216, 216, fontpage_182_216_216), // '存' -- '存'
|
||||
FONTDATA_ITEM(183, 137, 137, fontpage_183_137_137), // '安' -- '安'
|
||||
FONTDATA_ITEM(183, 140, 140, fontpage_183_140_140), // '完' -- '完'
|
||||
FONTDATA_ITEM(183, 154, 154, fontpage_183_154_154), // '定' -- '定'
|
||||
FONTDATA_ITEM(183, 162, 162, fontpage_183_162_162), // '客' -- '客'
|
||||
FONTDATA_ITEM(183, 171, 171, fontpage_183_171_171), // '宫' -- '宫'
|
||||
FONTDATA_ITEM(183, 249, 249, fontpage_183_249_249), // '对' -- '对'
|
||||
FONTDATA_ITEM(184, 134, 134, fontpage_184_134_134), // '将' -- '将'
|
||||
FONTDATA_ITEM(184, 143, 143, fontpage_184_143_143), // '小' -- '小'
|
||||
FONTDATA_ITEM(184, 177, 177, fontpage_184_177_177), // '就' -- '就'
|
||||
FONTDATA_ITEM(184, 207, 207, fontpage_184_207_207), // '屏' -- '屏'
|
||||
FONTDATA_ITEM(187, 229, 229, fontpage_187_229_229), // '工' -- '工'
|
||||
FONTDATA_ITEM(187, 238, 238, fontpage_187_238_238), // '差' -- '差'
|
||||
FONTDATA_ITEM(187, 242, 242, fontpage_187_242_242), // '已' -- '已'
|
||||
FONTDATA_ITEM(188, 243, 243, fontpage_188_243_243), // '平' -- '平'
|
||||
FONTDATA_ITEM(188, 246, 246, fontpage_188_246_246), // '并' -- '并'
|
||||
FONTDATA_ITEM(189, 138, 138, fontpage_189_138_138), // '床' -- '床'
|
||||
FONTDATA_ITEM(189, 148, 148, fontpage_189_148_148), // '应' -- '应'
|
||||
FONTDATA_ITEM(189, 159, 159, fontpage_189_159_159), // '废' -- '废'
|
||||
FONTDATA_ITEM(189, 166, 166, fontpage_189_166_166), // '度' -- '度'
|
||||
FONTDATA_ITEM(190, 128, 128, fontpage_190_128_128), // '开' -- '开'
|
||||
FONTDATA_ITEM(190, 131, 131, fontpage_190_131_131), // '弃' -- '弃'
|
||||
FONTDATA_ITEM(190, 143, 143, fontpage_190_143_143), // '式' -- '式'
|
||||
FONTDATA_ITEM(190, 149, 149, fontpage_190_149_149), // '引' -- '引'
|
||||
FONTDATA_ITEM(190, 185, 185, fontpage_190_185_185), // '弹' -- '弹'
|
||||
FONTDATA_ITEM(190, 210, 210, fontpage_190_210_210), // '归' -- '归'
|
||||
FONTDATA_ITEM(191, 132, 133, fontpage_191_132_133), // '径' -- '待'
|
||||
FONTDATA_ITEM(191, 170, 170, fontpage_191_170_170), // '循' -- '循'
|
||||
FONTDATA_ITEM(191, 174, 174, fontpage_191_174_174), // '微' -- '微'
|
||||
FONTDATA_ITEM(191, 195, 195, fontpage_191_195_195), // '心' -- '心'
|
||||
FONTDATA_ITEM(191, 253, 253, fontpage_191_253_253), // '忽' -- '忽'
|
||||
FONTDATA_ITEM(192, 167, 167, fontpage_192_167_167), // '性' -- '性'
|
||||
FONTDATA_ITEM(192, 187, 187, fontpage_192_187_187), // '总' -- '总'
|
||||
FONTDATA_ITEM(192, 226, 226, fontpage_192_226_226), // '恢' -- '恢'
|
||||
FONTDATA_ITEM(192, 239, 239, fontpage_192_239_239), // '息' -- '息'
|
||||
FONTDATA_ITEM(194, 159, 159, fontpage_194_159_159), // '感' -- '感'
|
||||
FONTDATA_ITEM(196, 143, 144, fontpage_196_143_144), // '戏' -- '成'
|
||||
FONTDATA_ITEM(196, 183, 183, fontpage_196_183_183), // '户' -- '户'
|
||||
FONTDATA_ITEM(196, 192, 192, fontpage_196_192_192), // '所' -- '所'
|
||||
FONTDATA_ITEM(196, 199, 199, fontpage_196_199_199), // '扇' -- '扇'
|
||||
FONTDATA_ITEM(196, 203, 203, fontpage_196_203_203), // '手' -- '手'
|
||||
FONTDATA_ITEM(196, 211, 211, fontpage_196_211_211), // '打' -- '打'
|
||||
FONTDATA_ITEM(196, 231, 231, fontpage_196_231_231), // '执' -- '执'
|
||||
FONTDATA_ITEM(196, 249, 249, fontpage_196_249_249), // '批' -- '批'
|
||||
FONTDATA_ITEM(197, 150, 150, fontpage_197_150_150), // '抖' -- '抖'
|
||||
FONTDATA_ITEM(197, 165, 165, fontpage_197_165_165), // '报' -- '报'
|
||||
FONTDATA_ITEM(197, 172, 172, fontpage_197_172_172), // '抬' -- '抬'
|
||||
FONTDATA_ITEM(197, 189, 189, fontpage_197_189_189), // '抽' -- '抽'
|
||||
FONTDATA_ITEM(197, 212, 212, fontpage_197_212_212), // '拔' -- '拔'
|
||||
FONTDATA_ITEM(197, 233, 233, fontpage_197_233_233), // '择' -- '择'
|
||||
FONTDATA_ITEM(198, 137, 137, fontpage_198_137_137), // '按' -- '按'
|
||||
FONTDATA_ITEM(198, 161, 161, fontpage_198_161_161), // '挡' -- '挡'
|
||||
FONTDATA_ITEM(198, 164, 164, fontpage_198_164_164), // '挤' -- '挤'
|
||||
FONTDATA_ITEM(198, 223, 223, fontpage_198_223_223), // '损' -- '损'
|
||||
FONTDATA_ITEM(198, 226, 226, fontpage_198_226_226), // '换' -- '换'
|
||||
FONTDATA_ITEM(199, 137, 137, fontpage_199_137_137), // '掉' -- '掉'
|
||||
FONTDATA_ITEM(199, 162, 162, fontpage_199_162_162), // '探' -- '探'
|
||||
FONTDATA_ITEM(199, 165, 165, fontpage_199_165_165), // '接' -- '接'
|
||||
FONTDATA_ITEM(199, 167, 167, fontpage_199_167_167), // '控' -- '控'
|
||||
FONTDATA_ITEM(199, 208, 208, fontpage_199_208_208), // '提' -- '提'
|
||||
FONTDATA_ITEM(199, 210, 210, fontpage_199_210_210), // '插' -- '插'
|
||||
FONTDATA_ITEM(202, 182, 182, fontpage_202_182_182), // '收' -- '收'
|
||||
FONTDATA_ITEM(202, 190, 190, fontpage_202_190_190), // '放' -- '放'
|
||||
FONTDATA_ITEM(202, 240, 240, fontpage_202_240_240), // '数' -- '数'
|
||||
FONTDATA_ITEM(202, 242, 242, fontpage_202_242_242), // '敲' -- '敲'
|
||||
FONTDATA_ITEM(202, 244, 244, fontpage_202_244_244), // '整' -- '整'
|
||||
FONTDATA_ITEM(203, 135, 135, fontpage_203_135_135), // '文' -- '文'
|
||||
FONTDATA_ITEM(203, 153, 153, fontpage_203_153_153), // '料' -- '料'
|
||||
FONTDATA_ITEM(203, 156, 156, fontpage_203_156_156), // '斜' -- '斜'
|
||||
FONTDATA_ITEM(203, 173, 173, fontpage_203_173_173), // '断' -- '断'
|
||||
FONTDATA_ITEM(203, 176, 176, fontpage_203_176_176), // '新' -- '新'
|
||||
FONTDATA_ITEM(203, 185, 185, fontpage_203_185_185), // '方' -- '方'
|
||||
FONTDATA_ITEM(203, 224, 224, fontpage_203_224_224), // '无' -- '无'
|
||||
FONTDATA_ITEM(203, 246, 246, fontpage_203_246_246), // '时' -- '时'
|
||||
FONTDATA_ITEM(204, 142, 142, fontpage_204_142_142), // '明' -- '明'
|
||||
FONTDATA_ITEM(204, 175, 175, fontpage_204_175_175), // '是' -- '是'
|
||||
FONTDATA_ITEM(205, 130, 130, fontpage_205_130_130), // '暂' -- '暂'
|
||||
FONTDATA_ITEM(205, 171, 171, fontpage_205_171_171), // '暫' -- '暫'
|
||||
FONTDATA_ITEM(205, 244, 244, fontpage_205_244_244), // '更' -- '更'
|
||||
FONTDATA_ITEM(206, 128, 128, fontpage_206_128_128), // '最' -- '最'
|
||||
FONTDATA_ITEM(206, 137, 137, fontpage_206_137_137), // '有' -- '有'
|
||||
FONTDATA_ITEM(206, 159, 159, fontpage_206_159_159), // '期' -- '期'
|
||||
FONTDATA_ITEM(206, 186, 186, fontpage_206_186_186), // '机' -- '机'
|
||||
FONTDATA_ITEM(206, 192, 192, fontpage_206_192_192), // '杀' -- '杀'
|
||||
FONTDATA_ITEM(206, 223, 223, fontpage_206_223_223), // '束' -- '束'
|
||||
FONTDATA_ITEM(206, 225, 225, fontpage_206_225_225), // '条' -- '条'
|
||||
FONTDATA_ITEM(206, 229, 229, fontpage_206_229_229), // '来' -- '来'
|
||||
FONTDATA_ITEM(206, 255, 255, fontpage_206_255_255), // '板' -- '板'
|
||||
FONTDATA_ITEM(207, 151, 151, fontpage_207_151_151), // '林' -- '林'
|
||||
FONTDATA_ITEM(207, 241, 241, fontpage_207_241_241), // '柱' -- '柱'
|
||||
FONTDATA_ITEM(208, 161, 161, fontpage_208_161_161), // '校' -- '校'
|
||||
FONTDATA_ITEM(208, 188, 188, fontpage_208_188_188), // '格' -- '格'
|
||||
FONTDATA_ITEM(209, 175, 175, fontpage_209_175_175), // '梯' -- '梯'
|
||||
FONTDATA_ITEM(209, 192, 192, fontpage_209_192_192), // '检' -- '检'
|
||||
FONTDATA_ITEM(211, 253, 253, fontpage_211_253_253), // '槽' -- '槽'
|
||||
FONTDATA_ITEM(212, 161, 161, fontpage_212_161_161), // '模' -- '模'
|
||||
FONTDATA_ITEM(212, 217, 217, fontpage_212_217_217), // '橙' -- '橙'
|
||||
FONTDATA_ITEM(214, 226, 227, fontpage_214_226_227), // '止' -- '正'
|
||||
FONTDATA_ITEM(214, 229, 229, fontpage_214_229_229), // '步' -- '步'
|
||||
FONTDATA_ITEM(215, 212, 212, fontpage_215_212_212), // '比' -- '比'
|
||||
FONTDATA_ITEM(217, 161, 161, fontpage_217_161_161), // '没' -- '没'
|
||||
FONTDATA_ITEM(217, 226, 226, fontpage_217_226_226), // '波' -- '波'
|
||||
FONTDATA_ITEM(217, 232, 232, fontpage_217_232_232), // '注' -- '注'
|
||||
FONTDATA_ITEM(218, 151, 151, fontpage_218_151_151), // '洗' -- '洗'
|
||||
FONTDATA_ITEM(218, 187, 187, fontpage_218_187_187), // '活' -- '活'
|
||||
FONTDATA_ITEM(218, 193, 193, fontpage_218_193_193), // '流' -- '流'
|
||||
FONTDATA_ITEM(218, 203, 203, fontpage_218_203_203), // '测' -- '测'
|
||||
FONTDATA_ITEM(219, 136, 136, fontpage_219_136_136), // '消' -- '消'
|
||||
FONTDATA_ITEM(219, 225, 225, fontpage_219_225_225), // '淡' -- '淡'
|
||||
FONTDATA_ITEM(219, 247, 247, fontpage_219_247_247), // '混' -- '混'
|
||||
FONTDATA_ITEM(220, 133, 133, fontpage_220_133_133), // '清' -- '清'
|
||||
FONTDATA_ITEM(220, 169, 169, fontpage_220_169_169), // '温' -- '温'
|
||||
FONTDATA_ITEM(220, 184, 184, fontpage_220_184_184), // '游' -- '游'
|
||||
FONTDATA_ITEM(221, 144, 144, fontpage_221_144_144), // '源' -- '源'
|
||||
FONTDATA_ITEM(221, 162, 162, fontpage_221_162_162), // '溢' -- '溢'
|
||||
FONTDATA_ITEM(221, 209, 209, fontpage_221_209_209), // '滑' -- '滑'
|
||||
FONTDATA_ITEM(222, 143, 143, fontpage_222_143_143), // '漏' -- '漏'
|
||||
FONTDATA_ITEM(223, 192, 192, fontpage_223_192_192), // '激' -- '激'
|
||||
FONTDATA_ITEM(224, 239, 239, fontpage_224_239_239), // '灯' -- '灯'
|
||||
FONTDATA_ITEM(225, 185, 185, fontpage_225_185_185), // '点' -- '点'
|
||||
FONTDATA_ITEM(225, 237, 237, fontpage_225_237_237), // '热' -- '热'
|
||||
FONTDATA_ITEM(228, 199, 199, fontpage_228_199_199), // '片' -- '片'
|
||||
FONTDATA_ITEM(228, 233, 233, fontpage_228_233_233), // '物' -- '物'
|
||||
FONTDATA_ITEM(228, 249, 249, fontpage_228_249_249), // '特' -- '特'
|
||||
FONTDATA_ITEM(231, 135, 135, fontpage_231_135_135), // '率' -- '率'
|
||||
FONTDATA_ITEM(231, 175, 175, fontpage_231_175_175), // '环' -- '环'
|
||||
FONTDATA_ITEM(234, 168, 168, fontpage_234_168_168), // '用' -- '用'
|
||||
FONTDATA_ITEM(234, 181, 181, fontpage_234_181_181), // '电' -- '电'
|
||||
FONTDATA_ITEM(234, 229, 229, fontpage_234_229_229), // '略' -- '略'
|
||||
FONTDATA_ITEM(236, 253, 253, fontpage_236_253_253), // '白' -- '白'
|
||||
FONTDATA_ITEM(237, 132, 132, fontpage_237_132_132), // '的' -- '的'
|
||||
FONTDATA_ITEM(237, 209, 209, fontpage_237_209_209), // '监' -- '监'
|
||||
FONTDATA_ITEM(237, 244, 244, fontpage_237_244_244), // '直' -- '直'
|
||||
FONTDATA_ITEM(238, 129, 129, fontpage_238_129_129), // '省' -- '省'
|
||||
FONTDATA_ITEM(238, 160, 160, fontpage_238_160_160), // '眠' -- '眠'
|
||||
FONTDATA_ITEM(240, 238, 238, fontpage_240_238_238), // '确' -- '确'
|
||||
FONTDATA_ITEM(243, 187, 187, fontpage_243_187_187), // '离' -- '离'
|
||||
FONTDATA_ITEM(243, 251, 251, fontpage_243_251_251), // '移' -- '移'
|
||||
FONTDATA_ITEM(244, 250, 250, fontpage_244_250_250), // '空' -- '空'
|
||||
FONTDATA_ITEM(245, 239, 239, fontpage_245_239_239), // '端' -- '端'
|
||||
FONTDATA_ITEM(246, 172, 172, fontpage_246_172_172), // '第' -- '第'
|
||||
FONTDATA_ITEM(246, 201, 201, fontpage_246_201_201), // '等' -- '等'
|
||||
FONTDATA_ITEM(247, 128, 128, fontpage_247_128_128), // '简' -- '简'
|
||||
FONTDATA_ITEM(247, 177, 177, fontpage_247_177_177), // '箱' -- '箱'
|
||||
FONTDATA_ITEM(248, 251, 251, fontpage_248_251_251), // '类' -- '类'
|
||||
FONTDATA_ITEM(250, 162, 162, fontpage_250_162_162), // '索' -- '索'
|
||||
FONTDATA_ITEM(250, 171, 171, fontpage_250_171_171), // '紫' -- '紫'
|
||||
FONTDATA_ITEM(253, 162, 162, fontpage_253_162_162), // '红' -- '红'
|
||||
FONTDATA_ITEM(253, 167, 167, fontpage_253_167_167), // '级' -- '级'
|
||||
FONTDATA_ITEM(253, 191, 191, fontpage_253_191_191), // '线' -- '线'
|
||||
FONTDATA_ITEM(253, 198, 198, fontpage_253_198_198), // '细' -- '细'
|
||||
FONTDATA_ITEM(253, 200, 200, fontpage_253_200_200), // '终' -- '终'
|
||||
FONTDATA_ITEM(253, 211, 211, fontpage_253_211_211), // '结' -- '结'
|
||||
FONTDATA_ITEM(253, 217, 217, fontpage_253_217_217), // '给' -- '给'
|
||||
FONTDATA_ITEM(253, 223, 223, fontpage_253_223_223), // '统' -- '统'
|
||||
FONTDATA_ITEM(253, 231, 231, fontpage_253_231_231), // '继' -- '继'
|
||||
FONTDATA_ITEM(253, 234, 234, fontpage_253_234_234), // '绪' -- '绪'
|
||||
FONTDATA_ITEM(253, 237, 237, fontpage_253_237_237), // '续' -- '续'
|
||||
FONTDATA_ITEM(253, 255, 255, fontpage_253_255_255), // '绿' -- '绿'
|
||||
FONTDATA_ITEM(254, 150, 150, fontpage_254_150_150), // '编' -- '编'
|
||||
FONTDATA_ITEM(254, 186, 186, fontpage_254_186_186), // '缺' -- '缺'
|
||||
FONTDATA_ITEM(254, 209, 209, fontpage_254_209_209), // '网' -- '网'
|
||||
FONTDATA_ITEM(254, 238, 238, fontpage_254_238_238), // '置' -- '置'
|
||||
FONTDATA_ITEM(254, 242, 242, fontpage_254_242_242), // '署' -- '署'
|
||||
FONTDATA_ITEM(256, 133, 133, fontpage_256_133_133), // '者' -- '者'
|
||||
FONTDATA_ITEM(256, 234, 234, fontpage_256_234_234), // '聪' -- '聪'
|
||||
FONTDATA_ITEM(257, 253, 253, fontpage_257_253_253), // '能' -- '能'
|
||||
FONTDATA_ITEM(259, 234, 234, fontpage_259_234_234), // '自' -- '自'
|
||||
FONTDATA_ITEM(259, 243, 243, fontpage_259_243_243), // '至' -- '至'
|
||||
FONTDATA_ITEM(263, 220, 220, fontpage_263_220_220), // '菜' -- '菜'
|
||||
FONTDATA_ITEM(265, 221, 221, fontpage_265_221_221), // '蓝' -- '蓝'
|
||||
FONTDATA_ITEM(269, 199, 199, fontpage_269_199_199), // '蛇' -- '蛇'
|
||||
FONTDATA_ITEM(272, 204, 204, fontpage_272_204_204), // '行' -- '行'
|
||||
FONTDATA_ITEM(273, 171, 171, fontpage_273_171_171), // '被' -- '被'
|
||||
FONTDATA_ITEM(273, 197, 197, fontpage_273_197_197), // '装' -- '装'
|
||||
FONTDATA_ITEM(275, 129, 129, fontpage_275_129_129), // '要' -- '要'
|
||||
FONTDATA_ITEM(275, 210, 210, fontpage_275_210_210), // '角' -- '角'
|
||||
FONTDATA_ITEM(279, 161, 161, fontpage_279_161_161), // '计' -- '计'
|
||||
FONTDATA_ITEM(279, 174, 174, fontpage_279_174_174), // '议' -- '议'
|
||||
FONTDATA_ITEM(279, 190, 190, fontpage_279_190_190), // '设' -- '设'
|
||||
FONTDATA_ITEM(279, 213, 213, fontpage_279_213_213), // '试' -- '试'
|
||||
FONTDATA_ITEM(279, 239, 239, fontpage_279_239_239), // '误' -- '误'
|
||||
FONTDATA_ITEM(279, 247, 247, fontpage_279_247_247), // '请' -- '请'
|
||||
FONTDATA_ITEM(279, 251, 251, fontpage_279_251_251), // '读' -- '读'
|
||||
FONTDATA_ITEM(280, 131, 131, fontpage_280_131_131), // '调' -- '调'
|
||||
FONTDATA_ITEM(282, 165, 165, fontpage_282_165_165), // '败' -- '败'
|
||||
FONTDATA_ITEM(282, 170, 170, fontpage_282_170_170), // '贪' -- '贪'
|
||||
FONTDATA_ITEM(282, 247, 247, fontpage_282_247_247), // '起' -- '起'
|
||||
FONTDATA_ITEM(283, 133, 133, fontpage_283_133_133), // '超' -- '超'
|
||||
FONTDATA_ITEM(283, 221, 221, fontpage_283_221_221), // '距' -- '距'
|
||||
FONTDATA_ITEM(286, 236, 236, fontpage_286_236_236), // '转' -- '转'
|
||||
FONTDATA_ITEM(286, 239, 239, fontpage_286_239_239), // '软' -- '软'
|
||||
FONTDATA_ITEM(286, 244, 244, fontpage_286_244_244), // '轴' -- '轴'
|
||||
FONTDATA_ITEM(286, 253, 253, fontpage_286_253_253), // '载' -- '载'
|
||||
FONTDATA_ITEM(287, 145, 145, fontpage_287_145_145), // '辑' -- '辑'
|
||||
FONTDATA_ITEM(287, 147, 147, fontpage_287_147_147), // '输' -- '输'
|
||||
FONTDATA_ITEM(287, 185, 185, fontpage_287_185_185), // '边' -- '边'
|
||||
FONTDATA_ITEM(287, 193, 193, fontpage_287_193_193), // '迁' -- '迁'
|
||||
FONTDATA_ITEM(287, 208, 209, fontpage_287_208_209), // '运' -- '近'
|
||||
FONTDATA_ITEM(287, 212, 212, fontpage_287_212_212), // '返' -- '返'
|
||||
FONTDATA_ITEM(287, 216, 216, fontpage_287_216_216), // '还' -- '还'
|
||||
FONTDATA_ITEM(287, 219, 219, fontpage_287_219_219), // '进' -- '进'
|
||||
FONTDATA_ITEM(287, 222, 222, fontpage_287_222_222), // '连' -- '连'
|
||||
FONTDATA_ITEM(287, 247, 247, fontpage_287_247_247), // '迷' -- '迷'
|
||||
FONTDATA_ITEM(288, 128, 128, fontpage_288_128_128), // '退' -- '退'
|
||||
FONTDATA_ITEM(288, 137, 137, fontpage_288_137_137), // '选' -- '选'
|
||||
FONTDATA_ITEM(288, 159, 159, fontpage_288_159_159), // '速' -- '速'
|
||||
FONTDATA_ITEM(289, 232, 232, fontpage_289_232_232), // '部' -- '部'
|
||||
FONTDATA_ITEM(290, 205, 205, fontpage_290_205_205), // '配' -- '配'
|
||||
FONTDATA_ITEM(291, 202, 202, fontpage_291_202_202), // '释' -- '释'
|
||||
FONTDATA_ITEM(291, 205, 205, fontpage_291_205_205), // '重' -- '重'
|
||||
FONTDATA_ITEM(291, 207, 207, fontpage_291_207_207), // '量' -- '量'
|
||||
FONTDATA_ITEM(297, 136, 136, fontpage_297_136_136), // '针' -- '针'
|
||||
FONTDATA_ITEM(297, 174, 174, fontpage_297_174_174), // '钮' -- '钮'
|
||||
FONTDATA_ITEM(298, 153, 153, fontpage_298_153_153), // '错' -- '错'
|
||||
FONTDATA_ITEM(298, 220, 220, fontpage_298_220_220), // '镜' -- '镜'
|
||||
FONTDATA_ITEM(298, 255, 255, fontpage_298_255_255), // '长' -- '长'
|
||||
FONTDATA_ITEM(299, 237, 237, fontpage_299_237_237), // '闭' -- '闭'
|
||||
FONTDATA_ITEM(299, 242, 242, fontpage_299_242_242), // '闲' -- '闲'
|
||||
FONTDATA_ITEM(299, 244, 244, fontpage_299_244_244), // '间' -- '间'
|
||||
FONTDATA_ITEM(300, 136, 136, fontpage_300_136_136), // '阈' -- '阈'
|
||||
FONTDATA_ITEM(300, 205, 205, fontpage_300_205_205), // '降' -- '降'
|
||||
FONTDATA_ITEM(300, 208, 208, fontpage_300_208_208), // '限' -- '限'
|
||||
FONTDATA_ITEM(300, 228, 228, fontpage_300_228_228), // '除' -- '除'
|
||||
FONTDATA_ITEM(300, 233, 233, fontpage_300_233_233), // '险' -- '险'
|
||||
FONTDATA_ITEM(301, 246, 246, fontpage_301_246_246), // '零' -- '零'
|
||||
FONTDATA_ITEM(302, 128, 128, fontpage_302_128_128), // '需' -- '需'
|
||||
FONTDATA_ITEM(302, 210, 210, fontpage_302_210_210), // '青' -- '青'
|
||||
FONTDATA_ITEM(302, 222, 222, fontpage_302_222_222), // '非' -- '非'
|
||||
FONTDATA_ITEM(302, 224, 224, fontpage_302_224_224), // '靠' -- '靠'
|
||||
FONTDATA_ITEM(302, 226, 226, fontpage_302_226_226), // '面' -- '面'
|
||||
FONTDATA_ITEM(304, 245, 245, fontpage_304_245_245), // '页' -- '页'
|
||||
FONTDATA_ITEM(304, 249, 249, fontpage_304_249_249), // '项' -- '项'
|
||||
FONTDATA_ITEM(305, 132, 132, fontpage_305_132_132), // '预' -- '预'
|
||||
FONTDATA_ITEM(305, 145, 145, fontpage_305_145_145), // '频' -- '频'
|
||||
FONTDATA_ITEM(305, 157, 157, fontpage_305_157_157), // '额' -- '额'
|
||||
FONTDATA_ITEM(305, 206, 206, fontpage_305_206_206), // '风' -- '风'
|
||||
FONTDATA_ITEM(306, 241, 241, fontpage_306_241_241), // '饱' -- '饱'
|
||||
FONTDATA_ITEM(308, 236, 236, fontpage_308_236_236), // '马' -- '马'
|
||||
FONTDATA_ITEM(308, 241, 241, fontpage_308_241_241), // '驱' -- '驱'
|
||||
FONTDATA_ITEM(309, 216, 216, fontpage_309_216_216), // '高' -- '高'
|
||||
FONTDATA_ITEM(317, 196, 196, fontpage_317_196_196), // '黄' -- '黄'
|
||||
FONTDATA_ITEM(317, 222, 222, fontpage_317_222_222), // '點' -- '點'
|
||||
FONTDATA_ITEM(318, 208, 208, fontpage_318_208_208), // '齐' -- '齐'
|
||||
FONTDATA_ITEM(510, 154, 154, fontpage_510_154_154), // ':' -- ':'
|
||||
static const uxg_fontinfo_t g_fontinfo_zh_CN[] PROGMEM = {
|
||||
FONTDATA_ITEM(64, 157, 157, fontpage_64_157_157), // '”' -- '”'
|
||||
FONTDATA_ITEM(69, 191, 191, fontpage_69_191_191), // '⊿' -- '⊿'
|
||||
FONTDATA_ITEM(156, 128, 128, fontpage_156_128_128), // '一' -- '一'
|
||||
FONTDATA_ITEM(156, 137, 139, fontpage_156_137_139), // '三' -- '下'
|
||||
FONTDATA_ITEM(156, 141, 141, fontpage_156_141_141), // '不' -- '不'
|
||||
FONTDATA_ITEM(156, 147, 147, fontpage_156_147_147), // '专' -- '专'
|
||||
FONTDATA_ITEM(156, 157, 157, fontpage_156_157_157), // '丝' -- '丝'
|
||||
FONTDATA_ITEM(156, 170, 170, fontpage_156_170_170), // '个' -- '个'
|
||||
FONTDATA_ITEM(156, 173, 173, fontpage_156_173_173), // '中' -- '中'
|
||||
FONTDATA_ITEM(156, 186, 187, fontpage_156_186_187), // '为' -- '主'
|
||||
FONTDATA_ITEM(156, 201, 201, fontpage_156_201_201), // '义' -- '义'
|
||||
FONTDATA_ITEM(156, 203, 203, fontpage_156_203_203), // '之' -- '之'
|
||||
FONTDATA_ITEM(157, 134, 134, fontpage_157_134_134), // '了' -- '了'
|
||||
FONTDATA_ITEM(157, 140, 140, fontpage_157_140_140), // '二' -- '二'
|
||||
FONTDATA_ITEM(157, 142, 142, fontpage_157_142_142), // '于' -- '于'
|
||||
FONTDATA_ITEM(157, 164, 164, fontpage_157_164_164), // '交' -- '交'
|
||||
FONTDATA_ITEM(157, 174, 174, fontpage_157_174_174), // '亮' -- '亮'
|
||||
FONTDATA_ITEM(157, 206, 206, fontpage_157_206_206), // '从' -- '从'
|
||||
FONTDATA_ITEM(157, 228, 229, fontpage_157_228_229), // '令' -- '以'
|
||||
FONTDATA_ITEM(157, 246, 246, fontpage_157_246_246), // '件' -- '件'
|
||||
FONTDATA_ITEM(157, 253, 253, fontpage_157_253_253), // '份' -- '份'
|
||||
FONTDATA_ITEM(158, 145, 145, fontpage_158_145_145), // '休' -- '休'
|
||||
FONTDATA_ITEM(158, 160, 160, fontpage_158_160_160), // '传' -- '传'
|
||||
FONTDATA_ITEM(158, 205, 206, fontpage_158_205_206), // '位' -- '低'
|
||||
FONTDATA_ITEM(158, 211, 211, fontpage_158_211_211), // '体' -- '体'
|
||||
FONTDATA_ITEM(158, 217, 217, fontpage_158_217_217), // '余' -- '余'
|
||||
FONTDATA_ITEM(158, 220, 220, fontpage_158_220_220), // '作' -- '作'
|
||||
FONTDATA_ITEM(158, 255, 255, fontpage_158_255_255), // '使' -- '使'
|
||||
FONTDATA_ITEM(159, 155, 155, fontpage_159_155_155), // '供' -- '供'
|
||||
FONTDATA_ITEM(159, 181, 181, fontpage_159_181_181), // '侵' -- '侵'
|
||||
FONTDATA_ITEM(159, 221, 221, fontpage_159_221_221), // '保' -- '保'
|
||||
FONTDATA_ITEM(159, 225, 225, fontpage_159_225_225), // '信' -- '信'
|
||||
FONTDATA_ITEM(160, 188, 188, fontpage_160_188_188), // '值' -- '值'
|
||||
FONTDATA_ITEM(160, 190, 190, fontpage_160_190_190), // '倾' -- '倾'
|
||||
FONTDATA_ITEM(160, 207, 207, fontpage_160_207_207), // '偏' -- '偏'
|
||||
FONTDATA_ITEM(160, 220, 220, fontpage_160_220_220), // '停' -- '停'
|
||||
FONTDATA_ITEM(161, 168, 168, fontpage_161_168_168), // '储' -- '储'
|
||||
FONTDATA_ITEM(161, 207, 207, fontpage_161_207_207), // '像' -- '像'
|
||||
FONTDATA_ITEM(162, 197, 197, fontpage_162_197_197), // '充' -- '充'
|
||||
FONTDATA_ITEM(162, 200, 201, fontpage_162_200_201), // '先' -- '光'
|
||||
FONTDATA_ITEM(162, 229, 229, fontpage_162_229_229), // '入' -- '入'
|
||||
FONTDATA_ITEM(162, 232, 232, fontpage_162_232_232), // '全' -- '全'
|
||||
FONTDATA_ITEM(162, 241, 241, fontpage_162_241_241), // '共' -- '共'
|
||||
FONTDATA_ITEM(162, 243, 243, fontpage_162_243_243), // '关' -- '关'
|
||||
FONTDATA_ITEM(162, 247, 247, fontpage_162_247_247), // '具' -- '具'
|
||||
FONTDATA_ITEM(163, 151, 151, fontpage_163_151_151), // '冗' -- '冗'
|
||||
FONTDATA_ITEM(163, 183, 183, fontpage_163_183_183), // '冷' -- '冷'
|
||||
FONTDATA_ITEM(163, 198, 198, fontpage_163_198_198), // '准' -- '准'
|
||||
FONTDATA_ITEM(163, 250, 251, fontpage_163_250_251), // '出' -- '击'
|
||||
FONTDATA_ITEM(164, 134, 135, fontpage_164_134_135), // '分' -- '切'
|
||||
FONTDATA_ITEM(164, 155, 155, fontpage_164_155_155), // '创' -- '创'
|
||||
FONTDATA_ITEM(164, 157, 157, fontpage_164_157_157), // '初' -- '初'
|
||||
FONTDATA_ITEM(164, 171, 171, fontpage_164_171_171), // '别' -- '别'
|
||||
FONTDATA_ITEM(164, 176, 176, fontpage_164_176_176), // '到' -- '到'
|
||||
FONTDATA_ITEM(164, 182, 183, fontpage_164_182_183), // '制' -- '刷'
|
||||
FONTDATA_ITEM(164, 242, 242, fontpage_164_242_242), // '割' -- '割'
|
||||
FONTDATA_ITEM(165, 155, 155, fontpage_165_155_155), // '力' -- '力'
|
||||
FONTDATA_ITEM(165, 159, 160, fontpage_165_159_160), // '功' -- '加'
|
||||
FONTDATA_ITEM(165, 168, 168, fontpage_165_168_168), // '动' -- '动'
|
||||
FONTDATA_ITEM(166, 150, 150, fontpage_166_150_150), // '化' -- '化'
|
||||
FONTDATA_ITEM(166, 199, 199, fontpage_166_199_199), // '升' -- '升'
|
||||
FONTDATA_ITEM(166, 202, 202, fontpage_166_202_202), // '半' -- '半'
|
||||
FONTDATA_ITEM(166, 207, 207, fontpage_166_207_207), // '协' -- '协'
|
||||
FONTDATA_ITEM(166, 213, 213, fontpage_166_213_213), // '单' -- '单'
|
||||
FONTDATA_ITEM(166, 225, 225, fontpage_166_225_225), // '卡' -- '卡'
|
||||
FONTDATA_ITEM(166, 240, 241, fontpage_166_240_241), // '印' -- '危'
|
||||
FONTDATA_ITEM(166, 244, 244, fontpage_166_244_244), // '却' -- '却'
|
||||
FONTDATA_ITEM(166, 248, 248, fontpage_166_248_248), // '卸' -- '卸'
|
||||
FONTDATA_ITEM(167, 139, 139, fontpage_167_139_139), // '压' -- '压'
|
||||
FONTDATA_ITEM(167, 159, 159, fontpage_167_159_159), // '原' -- '原'
|
||||
FONTDATA_ITEM(167, 204, 205, fontpage_167_204_205), // '双' -- '反'
|
||||
FONTDATA_ITEM(167, 214, 214, fontpage_167_214_214), // '取' -- '取'
|
||||
FONTDATA_ITEM(167, 216, 216, fontpage_167_216_216), // '变' -- '变'
|
||||
FONTDATA_ITEM(167, 240, 240, fontpage_167_240_240), // '台' -- '台'
|
||||
FONTDATA_ITEM(168, 131, 131, fontpage_168_131_131), // '吃' -- '吃'
|
||||
FONTDATA_ITEM(168, 136, 136, fontpage_168_136_136), // '合' -- '合'
|
||||
FONTDATA_ITEM(168, 141, 142, fontpage_168_141_142), // '名' -- '后'
|
||||
FONTDATA_ITEM(168, 145, 145, fontpage_168_145_145), // '向' -- '向'
|
||||
FONTDATA_ITEM(168, 166, 166, fontpage_168_166_166), // '否' -- '否'
|
||||
FONTDATA_ITEM(168, 175, 175, fontpage_168_175_175), // '启' -- '启'
|
||||
FONTDATA_ITEM(168, 202, 202, fontpage_168_202_202), // '告' -- '告'
|
||||
FONTDATA_ITEM(168, 232, 232, fontpage_168_232_232), // '周' -- '周'
|
||||
FONTDATA_ITEM(168, 253, 253, fontpage_168_253_253), // '命' -- '命'
|
||||
FONTDATA_ITEM(169, 140, 140, fontpage_169_140_140), // '和' -- '和'
|
||||
FONTDATA_ITEM(169, 205, 205, fontpage_169_205_205), // '响' -- '响'
|
||||
FONTDATA_ITEM(171, 183, 183, fontpage_171_183_183), // '喷' -- '喷'
|
||||
FONTDATA_ITEM(172, 180, 180, fontpage_172_180_180), // '嘴' -- '嘴'
|
||||
FONTDATA_ITEM(172, 232, 232, fontpage_172_232_232), // '器' -- '器'
|
||||
FONTDATA_ITEM(172, 244, 244, fontpage_172_244_244), // '噴' -- '噴'
|
||||
FONTDATA_ITEM(173, 222, 222, fontpage_173_222_222), // '回' -- '回'
|
||||
FONTDATA_ITEM(173, 224, 224, fontpage_173_224_224), // '因' -- '因'
|
||||
FONTDATA_ITEM(173, 250, 250, fontpage_173_250_250), // '固' -- '固'
|
||||
FONTDATA_ITEM(173, 254, 254, fontpage_173_254_254), // '图' -- '图'
|
||||
FONTDATA_ITEM(174, 168, 168, fontpage_174_168_168), // '在' -- '在'
|
||||
FONTDATA_ITEM(174, 207, 207, fontpage_174_207_207), // '坏' -- '坏'
|
||||
FONTDATA_ITEM(174, 215, 215, fontpage_174_215_215), // '块' -- '块'
|
||||
FONTDATA_ITEM(175, 139, 139, fontpage_175_139_139), // '型' -- '型'
|
||||
FONTDATA_ITEM(175, 171, 171, fontpage_175_171_171), // '垫' -- '垫'
|
||||
FONTDATA_ITEM(176, 235, 235, fontpage_176_235_235), // '填' -- '填'
|
||||
FONTDATA_ITEM(177, 243, 243, fontpage_177_243_243), // '壳' -- '壳'
|
||||
FONTDATA_ITEM(178, 135, 135, fontpage_178_135_135), // '备' -- '备'
|
||||
FONTDATA_ITEM(178, 141, 141, fontpage_178_141_141), // '复' -- '复'
|
||||
FONTDATA_ITEM(178, 150, 150, fontpage_178_150_150), // '外' -- '外'
|
||||
FONTDATA_ITEM(178, 154, 154, fontpage_178_154_154), // '多' -- '多'
|
||||
FONTDATA_ITEM(178, 167, 167, fontpage_178_167_167), // '大' -- '大'
|
||||
FONTDATA_ITEM(178, 169, 170, fontpage_178_169_170), // '天' -- '太'
|
||||
FONTDATA_ITEM(178, 177, 177, fontpage_178_177_177), // '失' -- '失'
|
||||
FONTDATA_ITEM(178, 180, 180, fontpage_178_180_180), // '头' -- '头'
|
||||
FONTDATA_ITEM(178, 253, 253, fontpage_178_253_253), // '好' -- '好'
|
||||
FONTDATA_ITEM(179, 203, 203, fontpage_179_203_203), // '始' -- '始'
|
||||
FONTDATA_ITEM(182, 208, 208, fontpage_182_208_208), // '子' -- '子'
|
||||
FONTDATA_ITEM(182, 216, 216, fontpage_182_216_216), // '存' -- '存'
|
||||
FONTDATA_ITEM(183, 137, 137, fontpage_183_137_137), // '安' -- '安'
|
||||
FONTDATA_ITEM(183, 140, 140, fontpage_183_140_140), // '完' -- '完'
|
||||
FONTDATA_ITEM(183, 154, 154, fontpage_183_154_154), // '定' -- '定'
|
||||
FONTDATA_ITEM(183, 162, 162, fontpage_183_162_162), // '客' -- '客'
|
||||
FONTDATA_ITEM(183, 171, 171, fontpage_183_171_171), // '宫' -- '宫'
|
||||
FONTDATA_ITEM(183, 249, 249, fontpage_183_249_249), // '对' -- '对'
|
||||
FONTDATA_ITEM(184, 134, 134, fontpage_184_134_134), // '将' -- '将'
|
||||
FONTDATA_ITEM(184, 143, 143, fontpage_184_143_143), // '小' -- '小'
|
||||
FONTDATA_ITEM(184, 177, 177, fontpage_184_177_177), // '就' -- '就'
|
||||
FONTDATA_ITEM(184, 207, 207, fontpage_184_207_207), // '屏' -- '屏'
|
||||
FONTDATA_ITEM(187, 229, 229, fontpage_187_229_229), // '工' -- '工'
|
||||
FONTDATA_ITEM(187, 238, 238, fontpage_187_238_238), // '差' -- '差'
|
||||
FONTDATA_ITEM(187, 242, 242, fontpage_187_242_242), // '已' -- '已'
|
||||
FONTDATA_ITEM(188, 243, 243, fontpage_188_243_243), // '平' -- '平'
|
||||
FONTDATA_ITEM(188, 246, 246, fontpage_188_246_246), // '并' -- '并'
|
||||
FONTDATA_ITEM(189, 138, 138, fontpage_189_138_138), // '床' -- '床'
|
||||
FONTDATA_ITEM(189, 148, 148, fontpage_189_148_148), // '应' -- '应'
|
||||
FONTDATA_ITEM(189, 159, 159, fontpage_189_159_159), // '废' -- '废'
|
||||
FONTDATA_ITEM(189, 166, 166, fontpage_189_166_166), // '度' -- '度'
|
||||
FONTDATA_ITEM(190, 128, 128, fontpage_190_128_128), // '开' -- '开'
|
||||
FONTDATA_ITEM(190, 131, 131, fontpage_190_131_131), // '弃' -- '弃'
|
||||
FONTDATA_ITEM(190, 143, 143, fontpage_190_143_143), // '式' -- '式'
|
||||
FONTDATA_ITEM(190, 149, 149, fontpage_190_149_149), // '引' -- '引'
|
||||
FONTDATA_ITEM(190, 185, 185, fontpage_190_185_185), // '弹' -- '弹'
|
||||
FONTDATA_ITEM(190, 210, 210, fontpage_190_210_210), // '归' -- '归'
|
||||
FONTDATA_ITEM(191, 132, 133, fontpage_191_132_133), // '径' -- '待'
|
||||
FONTDATA_ITEM(191, 170, 170, fontpage_191_170_170), // '循' -- '循'
|
||||
FONTDATA_ITEM(191, 174, 174, fontpage_191_174_174), // '微' -- '微'
|
||||
FONTDATA_ITEM(191, 195, 195, fontpage_191_195_195), // '心' -- '心'
|
||||
FONTDATA_ITEM(191, 253, 253, fontpage_191_253_253), // '忽' -- '忽'
|
||||
FONTDATA_ITEM(192, 167, 167, fontpage_192_167_167), // '性' -- '性'
|
||||
FONTDATA_ITEM(192, 187, 187, fontpage_192_187_187), // '总' -- '总'
|
||||
FONTDATA_ITEM(192, 226, 226, fontpage_192_226_226), // '恢' -- '恢'
|
||||
FONTDATA_ITEM(192, 239, 239, fontpage_192_239_239), // '息' -- '息'
|
||||
FONTDATA_ITEM(194, 159, 159, fontpage_194_159_159), // '感' -- '感'
|
||||
FONTDATA_ITEM(196, 143, 144, fontpage_196_143_144), // '戏' -- '成'
|
||||
FONTDATA_ITEM(196, 183, 183, fontpage_196_183_183), // '户' -- '户'
|
||||
FONTDATA_ITEM(196, 192, 192, fontpage_196_192_192), // '所' -- '所'
|
||||
FONTDATA_ITEM(196, 199, 199, fontpage_196_199_199), // '扇' -- '扇'
|
||||
FONTDATA_ITEM(196, 203, 203, fontpage_196_203_203), // '手' -- '手'
|
||||
FONTDATA_ITEM(196, 211, 211, fontpage_196_211_211), // '打' -- '打'
|
||||
FONTDATA_ITEM(196, 231, 231, fontpage_196_231_231), // '执' -- '执'
|
||||
FONTDATA_ITEM(196, 249, 249, fontpage_196_249_249), // '批' -- '批'
|
||||
FONTDATA_ITEM(197, 150, 150, fontpage_197_150_150), // '抖' -- '抖'
|
||||
FONTDATA_ITEM(197, 165, 165, fontpage_197_165_165), // '报' -- '报'
|
||||
FONTDATA_ITEM(197, 172, 172, fontpage_197_172_172), // '抬' -- '抬'
|
||||
FONTDATA_ITEM(197, 189, 189, fontpage_197_189_189), // '抽' -- '抽'
|
||||
FONTDATA_ITEM(197, 212, 212, fontpage_197_212_212), // '拔' -- '拔'
|
||||
FONTDATA_ITEM(197, 233, 233, fontpage_197_233_233), // '择' -- '择'
|
||||
FONTDATA_ITEM(198, 137, 137, fontpage_198_137_137), // '按' -- '按'
|
||||
FONTDATA_ITEM(198, 161, 161, fontpage_198_161_161), // '挡' -- '挡'
|
||||
FONTDATA_ITEM(198, 164, 164, fontpage_198_164_164), // '挤' -- '挤'
|
||||
FONTDATA_ITEM(198, 223, 223, fontpage_198_223_223), // '损' -- '损'
|
||||
FONTDATA_ITEM(198, 226, 226, fontpage_198_226_226), // '换' -- '换'
|
||||
FONTDATA_ITEM(199, 137, 137, fontpage_199_137_137), // '掉' -- '掉'
|
||||
FONTDATA_ITEM(199, 162, 162, fontpage_199_162_162), // '探' -- '探'
|
||||
FONTDATA_ITEM(199, 165, 165, fontpage_199_165_165), // '接' -- '接'
|
||||
FONTDATA_ITEM(199, 167, 167, fontpage_199_167_167), // '控' -- '控'
|
||||
FONTDATA_ITEM(199, 208, 208, fontpage_199_208_208), // '提' -- '提'
|
||||
FONTDATA_ITEM(199, 210, 210, fontpage_199_210_210), // '插' -- '插'
|
||||
FONTDATA_ITEM(202, 182, 182, fontpage_202_182_182), // '收' -- '收'
|
||||
FONTDATA_ITEM(202, 190, 190, fontpage_202_190_190), // '放' -- '放'
|
||||
FONTDATA_ITEM(202, 240, 240, fontpage_202_240_240), // '数' -- '数'
|
||||
FONTDATA_ITEM(202, 242, 242, fontpage_202_242_242), // '敲' -- '敲'
|
||||
FONTDATA_ITEM(202, 244, 244, fontpage_202_244_244), // '整' -- '整'
|
||||
FONTDATA_ITEM(203, 135, 135, fontpage_203_135_135), // '文' -- '文'
|
||||
FONTDATA_ITEM(203, 153, 153, fontpage_203_153_153), // '料' -- '料'
|
||||
FONTDATA_ITEM(203, 156, 156, fontpage_203_156_156), // '斜' -- '斜'
|
||||
FONTDATA_ITEM(203, 173, 173, fontpage_203_173_173), // '断' -- '断'
|
||||
FONTDATA_ITEM(203, 176, 176, fontpage_203_176_176), // '新' -- '新'
|
||||
FONTDATA_ITEM(203, 185, 185, fontpage_203_185_185), // '方' -- '方'
|
||||
FONTDATA_ITEM(203, 224, 224, fontpage_203_224_224), // '无' -- '无'
|
||||
FONTDATA_ITEM(203, 246, 246, fontpage_203_246_246), // '时' -- '时'
|
||||
FONTDATA_ITEM(204, 142, 142, fontpage_204_142_142), // '明' -- '明'
|
||||
FONTDATA_ITEM(204, 175, 175, fontpage_204_175_175), // '是' -- '是'
|
||||
FONTDATA_ITEM(205, 130, 130, fontpage_205_130_130), // '暂' -- '暂'
|
||||
FONTDATA_ITEM(205, 171, 171, fontpage_205_171_171), // '暫' -- '暫'
|
||||
FONTDATA_ITEM(205, 244, 244, fontpage_205_244_244), // '更' -- '更'
|
||||
FONTDATA_ITEM(206, 128, 128, fontpage_206_128_128), // '最' -- '最'
|
||||
FONTDATA_ITEM(206, 137, 137, fontpage_206_137_137), // '有' -- '有'
|
||||
FONTDATA_ITEM(206, 159, 159, fontpage_206_159_159), // '期' -- '期'
|
||||
FONTDATA_ITEM(206, 186, 186, fontpage_206_186_186), // '机' -- '机'
|
||||
FONTDATA_ITEM(206, 192, 192, fontpage_206_192_192), // '杀' -- '杀'
|
||||
FONTDATA_ITEM(206, 223, 223, fontpage_206_223_223), // '束' -- '束'
|
||||
FONTDATA_ITEM(206, 225, 225, fontpage_206_225_225), // '条' -- '条'
|
||||
FONTDATA_ITEM(206, 229, 229, fontpage_206_229_229), // '来' -- '来'
|
||||
FONTDATA_ITEM(206, 255, 255, fontpage_206_255_255), // '板' -- '板'
|
||||
FONTDATA_ITEM(207, 151, 151, fontpage_207_151_151), // '林' -- '林'
|
||||
FONTDATA_ITEM(207, 241, 241, fontpage_207_241_241), // '柱' -- '柱'
|
||||
FONTDATA_ITEM(208, 161, 161, fontpage_208_161_161), // '校' -- '校'
|
||||
FONTDATA_ITEM(208, 188, 188, fontpage_208_188_188), // '格' -- '格'
|
||||
FONTDATA_ITEM(209, 175, 175, fontpage_209_175_175), // '梯' -- '梯'
|
||||
FONTDATA_ITEM(209, 192, 192, fontpage_209_192_192), // '检' -- '检'
|
||||
FONTDATA_ITEM(211, 253, 253, fontpage_211_253_253), // '槽' -- '槽'
|
||||
FONTDATA_ITEM(212, 161, 161, fontpage_212_161_161), // '模' -- '模'
|
||||
FONTDATA_ITEM(212, 217, 217, fontpage_212_217_217), // '橙' -- '橙'
|
||||
FONTDATA_ITEM(214, 226, 227, fontpage_214_226_227), // '止' -- '正'
|
||||
FONTDATA_ITEM(214, 229, 229, fontpage_214_229_229), // '步' -- '步'
|
||||
FONTDATA_ITEM(215, 212, 212, fontpage_215_212_212), // '比' -- '比'
|
||||
FONTDATA_ITEM(217, 161, 161, fontpage_217_161_161), // '没' -- '没'
|
||||
FONTDATA_ITEM(217, 226, 226, fontpage_217_226_226), // '波' -- '波'
|
||||
FONTDATA_ITEM(217, 232, 232, fontpage_217_232_232), // '注' -- '注'
|
||||
FONTDATA_ITEM(218, 151, 151, fontpage_218_151_151), // '洗' -- '洗'
|
||||
FONTDATA_ITEM(218, 187, 187, fontpage_218_187_187), // '活' -- '活'
|
||||
FONTDATA_ITEM(218, 193, 193, fontpage_218_193_193), // '流' -- '流'
|
||||
FONTDATA_ITEM(218, 203, 203, fontpage_218_203_203), // '测' -- '测'
|
||||
FONTDATA_ITEM(219, 136, 136, fontpage_219_136_136), // '消' -- '消'
|
||||
FONTDATA_ITEM(219, 225, 225, fontpage_219_225_225), // '淡' -- '淡'
|
||||
FONTDATA_ITEM(219, 247, 247, fontpage_219_247_247), // '混' -- '混'
|
||||
FONTDATA_ITEM(220, 133, 133, fontpage_220_133_133), // '清' -- '清'
|
||||
FONTDATA_ITEM(220, 169, 169, fontpage_220_169_169), // '温' -- '温'
|
||||
FONTDATA_ITEM(220, 184, 184, fontpage_220_184_184), // '游' -- '游'
|
||||
FONTDATA_ITEM(221, 144, 144, fontpage_221_144_144), // '源' -- '源'
|
||||
FONTDATA_ITEM(221, 162, 162, fontpage_221_162_162), // '溢' -- '溢'
|
||||
FONTDATA_ITEM(221, 209, 209, fontpage_221_209_209), // '滑' -- '滑'
|
||||
FONTDATA_ITEM(222, 143, 143, fontpage_222_143_143), // '漏' -- '漏'
|
||||
FONTDATA_ITEM(223, 192, 192, fontpage_223_192_192), // '激' -- '激'
|
||||
FONTDATA_ITEM(224, 239, 239, fontpage_224_239_239), // '灯' -- '灯'
|
||||
FONTDATA_ITEM(225, 185, 185, fontpage_225_185_185), // '点' -- '点'
|
||||
FONTDATA_ITEM(225, 237, 237, fontpage_225_237_237), // '热' -- '热'
|
||||
FONTDATA_ITEM(228, 199, 199, fontpage_228_199_199), // '片' -- '片'
|
||||
FONTDATA_ITEM(228, 233, 233, fontpage_228_233_233), // '物' -- '物'
|
||||
FONTDATA_ITEM(228, 249, 249, fontpage_228_249_249), // '特' -- '特'
|
||||
FONTDATA_ITEM(231, 135, 135, fontpage_231_135_135), // '率' -- '率'
|
||||
FONTDATA_ITEM(231, 175, 175, fontpage_231_175_175), // '环' -- '环'
|
||||
FONTDATA_ITEM(234, 168, 168, fontpage_234_168_168), // '用' -- '用'
|
||||
FONTDATA_ITEM(234, 181, 181, fontpage_234_181_181), // '电' -- '电'
|
||||
FONTDATA_ITEM(234, 229, 229, fontpage_234_229_229), // '略' -- '略'
|
||||
FONTDATA_ITEM(236, 253, 253, fontpage_236_253_253), // '白' -- '白'
|
||||
FONTDATA_ITEM(237, 132, 132, fontpage_237_132_132), // '的' -- '的'
|
||||
FONTDATA_ITEM(237, 209, 209, fontpage_237_209_209), // '监' -- '监'
|
||||
FONTDATA_ITEM(237, 244, 244, fontpage_237_244_244), // '直' -- '直'
|
||||
FONTDATA_ITEM(238, 129, 129, fontpage_238_129_129), // '省' -- '省'
|
||||
FONTDATA_ITEM(238, 160, 160, fontpage_238_160_160), // '眠' -- '眠'
|
||||
FONTDATA_ITEM(240, 238, 238, fontpage_240_238_238), // '确' -- '确'
|
||||
FONTDATA_ITEM(243, 187, 187, fontpage_243_187_187), // '离' -- '离'
|
||||
FONTDATA_ITEM(243, 251, 251, fontpage_243_251_251), // '移' -- '移'
|
||||
FONTDATA_ITEM(244, 250, 250, fontpage_244_250_250), // '空' -- '空'
|
||||
FONTDATA_ITEM(245, 239, 239, fontpage_245_239_239), // '端' -- '端'
|
||||
FONTDATA_ITEM(246, 172, 172, fontpage_246_172_172), // '第' -- '第'
|
||||
FONTDATA_ITEM(246, 201, 201, fontpage_246_201_201), // '等' -- '等'
|
||||
FONTDATA_ITEM(247, 128, 128, fontpage_247_128_128), // '简' -- '简'
|
||||
FONTDATA_ITEM(247, 177, 177, fontpage_247_177_177), // '箱' -- '箱'
|
||||
FONTDATA_ITEM(248, 251, 251, fontpage_248_251_251), // '类' -- '类'
|
||||
FONTDATA_ITEM(250, 162, 162, fontpage_250_162_162), // '索' -- '索'
|
||||
FONTDATA_ITEM(250, 171, 171, fontpage_250_171_171), // '紫' -- '紫'
|
||||
FONTDATA_ITEM(253, 162, 162, fontpage_253_162_162), // '红' -- '红'
|
||||
FONTDATA_ITEM(253, 167, 167, fontpage_253_167_167), // '级' -- '级'
|
||||
FONTDATA_ITEM(253, 191, 191, fontpage_253_191_191), // '线' -- '线'
|
||||
FONTDATA_ITEM(253, 198, 198, fontpage_253_198_198), // '细' -- '细'
|
||||
FONTDATA_ITEM(253, 200, 200, fontpage_253_200_200), // '终' -- '终'
|
||||
FONTDATA_ITEM(253, 211, 211, fontpage_253_211_211), // '结' -- '结'
|
||||
FONTDATA_ITEM(253, 217, 217, fontpage_253_217_217), // '给' -- '给'
|
||||
FONTDATA_ITEM(253, 223, 223, fontpage_253_223_223), // '统' -- '统'
|
||||
FONTDATA_ITEM(253, 231, 231, fontpage_253_231_231), // '继' -- '继'
|
||||
FONTDATA_ITEM(253, 234, 234, fontpage_253_234_234), // '绪' -- '绪'
|
||||
FONTDATA_ITEM(253, 237, 237, fontpage_253_237_237), // '续' -- '续'
|
||||
FONTDATA_ITEM(253, 255, 255, fontpage_253_255_255), // '绿' -- '绿'
|
||||
FONTDATA_ITEM(254, 150, 150, fontpage_254_150_150), // '编' -- '编'
|
||||
FONTDATA_ITEM(254, 186, 186, fontpage_254_186_186), // '缺' -- '缺'
|
||||
FONTDATA_ITEM(254, 209, 209, fontpage_254_209_209), // '网' -- '网'
|
||||
FONTDATA_ITEM(254, 238, 238, fontpage_254_238_238), // '置' -- '置'
|
||||
FONTDATA_ITEM(254, 242, 242, fontpage_254_242_242), // '署' -- '署'
|
||||
FONTDATA_ITEM(256, 133, 133, fontpage_256_133_133), // '者' -- '者'
|
||||
FONTDATA_ITEM(256, 234, 234, fontpage_256_234_234), // '聪' -- '聪'
|
||||
FONTDATA_ITEM(257, 253, 253, fontpage_257_253_253), // '能' -- '能'
|
||||
FONTDATA_ITEM(259, 234, 234, fontpage_259_234_234), // '自' -- '自'
|
||||
FONTDATA_ITEM(259, 243, 243, fontpage_259_243_243), // '至' -- '至'
|
||||
FONTDATA_ITEM(263, 220, 220, fontpage_263_220_220), // '菜' -- '菜'
|
||||
FONTDATA_ITEM(265, 221, 221, fontpage_265_221_221), // '蓝' -- '蓝'
|
||||
FONTDATA_ITEM(269, 199, 199, fontpage_269_199_199), // '蛇' -- '蛇'
|
||||
FONTDATA_ITEM(272, 204, 204, fontpage_272_204_204), // '行' -- '行'
|
||||
FONTDATA_ITEM(273, 171, 171, fontpage_273_171_171), // '被' -- '被'
|
||||
FONTDATA_ITEM(273, 197, 197, fontpage_273_197_197), // '装' -- '装'
|
||||
FONTDATA_ITEM(275, 129, 129, fontpage_275_129_129), // '要' -- '要'
|
||||
FONTDATA_ITEM(275, 210, 210, fontpage_275_210_210), // '角' -- '角'
|
||||
FONTDATA_ITEM(279, 161, 161, fontpage_279_161_161), // '计' -- '计'
|
||||
FONTDATA_ITEM(279, 174, 174, fontpage_279_174_174), // '议' -- '议'
|
||||
FONTDATA_ITEM(279, 190, 190, fontpage_279_190_190), // '设' -- '设'
|
||||
FONTDATA_ITEM(279, 213, 213, fontpage_279_213_213), // '试' -- '试'
|
||||
FONTDATA_ITEM(279, 239, 239, fontpage_279_239_239), // '误' -- '误'
|
||||
FONTDATA_ITEM(279, 247, 247, fontpage_279_247_247), // '请' -- '请'
|
||||
FONTDATA_ITEM(279, 251, 251, fontpage_279_251_251), // '读' -- '读'
|
||||
FONTDATA_ITEM(280, 131, 131, fontpage_280_131_131), // '调' -- '调'
|
||||
FONTDATA_ITEM(282, 165, 165, fontpage_282_165_165), // '败' -- '败'
|
||||
FONTDATA_ITEM(282, 170, 170, fontpage_282_170_170), // '贪' -- '贪'
|
||||
FONTDATA_ITEM(282, 247, 247, fontpage_282_247_247), // '起' -- '起'
|
||||
FONTDATA_ITEM(283, 133, 133, fontpage_283_133_133), // '超' -- '超'
|
||||
FONTDATA_ITEM(283, 221, 221, fontpage_283_221_221), // '距' -- '距'
|
||||
FONTDATA_ITEM(286, 236, 236, fontpage_286_236_236), // '转' -- '转'
|
||||
FONTDATA_ITEM(286, 239, 239, fontpage_286_239_239), // '软' -- '软'
|
||||
FONTDATA_ITEM(286, 244, 244, fontpage_286_244_244), // '轴' -- '轴'
|
||||
FONTDATA_ITEM(286, 253, 253, fontpage_286_253_253), // '载' -- '载'
|
||||
FONTDATA_ITEM(287, 145, 145, fontpage_287_145_145), // '辑' -- '辑'
|
||||
FONTDATA_ITEM(287, 147, 147, fontpage_287_147_147), // '输' -- '输'
|
||||
FONTDATA_ITEM(287, 185, 185, fontpage_287_185_185), // '边' -- '边'
|
||||
FONTDATA_ITEM(287, 193, 193, fontpage_287_193_193), // '迁' -- '迁'
|
||||
FONTDATA_ITEM(287, 208, 209, fontpage_287_208_209), // '运' -- '近'
|
||||
FONTDATA_ITEM(287, 212, 212, fontpage_287_212_212), // '返' -- '返'
|
||||
FONTDATA_ITEM(287, 216, 216, fontpage_287_216_216), // '还' -- '还'
|
||||
FONTDATA_ITEM(287, 219, 219, fontpage_287_219_219), // '进' -- '进'
|
||||
FONTDATA_ITEM(287, 222, 222, fontpage_287_222_222), // '连' -- '连'
|
||||
FONTDATA_ITEM(287, 247, 247, fontpage_287_247_247), // '迷' -- '迷'
|
||||
FONTDATA_ITEM(288, 128, 128, fontpage_288_128_128), // '退' -- '退'
|
||||
FONTDATA_ITEM(288, 137, 137, fontpage_288_137_137), // '选' -- '选'
|
||||
FONTDATA_ITEM(288, 159, 159, fontpage_288_159_159), // '速' -- '速'
|
||||
FONTDATA_ITEM(289, 232, 232, fontpage_289_232_232), // '部' -- '部'
|
||||
FONTDATA_ITEM(290, 205, 205, fontpage_290_205_205), // '配' -- '配'
|
||||
FONTDATA_ITEM(291, 202, 202, fontpage_291_202_202), // '释' -- '释'
|
||||
FONTDATA_ITEM(291, 205, 205, fontpage_291_205_205), // '重' -- '重'
|
||||
FONTDATA_ITEM(291, 207, 207, fontpage_291_207_207), // '量' -- '量'
|
||||
FONTDATA_ITEM(297, 136, 136, fontpage_297_136_136), // '针' -- '针'
|
||||
FONTDATA_ITEM(297, 174, 174, fontpage_297_174_174), // '钮' -- '钮'
|
||||
FONTDATA_ITEM(298, 153, 153, fontpage_298_153_153), // '错' -- '错'
|
||||
FONTDATA_ITEM(298, 220, 220, fontpage_298_220_220), // '镜' -- '镜'
|
||||
FONTDATA_ITEM(298, 255, 255, fontpage_298_255_255), // '长' -- '长'
|
||||
FONTDATA_ITEM(299, 237, 237, fontpage_299_237_237), // '闭' -- '闭'
|
||||
FONTDATA_ITEM(299, 242, 242, fontpage_299_242_242), // '闲' -- '闲'
|
||||
FONTDATA_ITEM(299, 244, 244, fontpage_299_244_244), // '间' -- '间'
|
||||
FONTDATA_ITEM(300, 136, 136, fontpage_300_136_136), // '阈' -- '阈'
|
||||
FONTDATA_ITEM(300, 205, 205, fontpage_300_205_205), // '降' -- '降'
|
||||
FONTDATA_ITEM(300, 208, 208, fontpage_300_208_208), // '限' -- '限'
|
||||
FONTDATA_ITEM(300, 228, 228, fontpage_300_228_228), // '除' -- '除'
|
||||
FONTDATA_ITEM(300, 233, 233, fontpage_300_233_233), // '险' -- '险'
|
||||
FONTDATA_ITEM(301, 246, 246, fontpage_301_246_246), // '零' -- '零'
|
||||
FONTDATA_ITEM(302, 128, 128, fontpage_302_128_128), // '需' -- '需'
|
||||
FONTDATA_ITEM(302, 210, 210, fontpage_302_210_210), // '青' -- '青'
|
||||
FONTDATA_ITEM(302, 222, 222, fontpage_302_222_222), // '非' -- '非'
|
||||
FONTDATA_ITEM(302, 224, 224, fontpage_302_224_224), // '靠' -- '靠'
|
||||
FONTDATA_ITEM(302, 226, 226, fontpage_302_226_226), // '面' -- '面'
|
||||
FONTDATA_ITEM(304, 245, 245, fontpage_304_245_245), // '页' -- '页'
|
||||
FONTDATA_ITEM(304, 249, 249, fontpage_304_249_249), // '项' -- '项'
|
||||
FONTDATA_ITEM(305, 132, 132, fontpage_305_132_132), // '预' -- '预'
|
||||
FONTDATA_ITEM(305, 145, 145, fontpage_305_145_145), // '频' -- '频'
|
||||
FONTDATA_ITEM(305, 157, 157, fontpage_305_157_157), // '额' -- '额'
|
||||
FONTDATA_ITEM(305, 206, 206, fontpage_305_206_206), // '风' -- '风'
|
||||
FONTDATA_ITEM(306, 241, 241, fontpage_306_241_241), // '饱' -- '饱'
|
||||
FONTDATA_ITEM(308, 236, 236, fontpage_308_236_236), // '马' -- '马'
|
||||
FONTDATA_ITEM(308, 241, 241, fontpage_308_241_241), // '驱' -- '驱'
|
||||
FONTDATA_ITEM(309, 216, 216, fontpage_309_216_216), // '高' -- '高'
|
||||
FONTDATA_ITEM(317, 196, 196, fontpage_317_196_196), // '黄' -- '黄'
|
||||
FONTDATA_ITEM(317, 222, 222, fontpage_317_222_222), // '點' -- '點'
|
||||
FONTDATA_ITEM(318, 208, 208, fontpage_318_208_208), // '齐' -- '齐'
|
||||
FONTDATA_ITEM(510, 154, 154, fontpage_510_154_154), // ':' -- ':'
|
||||
};
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
* Contents will be REPLACED by future processing!
|
||||
* Use genallfont.sh to generate font data for updated languages.
|
||||
*/
|
||||
#include <U8glib-HAL.h>
|
||||
#pragma once
|
||||
|
||||
#include "langdata.h"
|
||||
|
||||
const u8g_fntpgm_uint8_t fontpage_69_191_191[28] U8G_FONT_SECTION("fontpage_69_191_191") = {
|
||||
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xBF,0xBF,0x00,0x05,0x00,0x00,
|
||||
@@ -1217,305 +1219,304 @@ const u8g_fntpgm_uint8_t fontpage_510_154_154[30] U8G_FONT_SECTION("fontpage_510
|
||||
0x00,0x0C,0x0F,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x9A,0x9A,0x00,0x08,0x00,0x00,
|
||||
0x00,0x02,0x07,0x07,0x0C,0x06,0x01,0xC0,0xC0,0x00,0x00,0x00,0xC0,0xC0};
|
||||
|
||||
#define FONTDATA_ITEM(page, begin, end, data) { page, begin, end, COUNT(data), data }
|
||||
static const uxg_fontinfo_t g_fontinfo[] PROGMEM = {
|
||||
FONTDATA_ITEM(69, 191, 191, fontpage_69_191_191), // '⊿' -- '⊿'
|
||||
FONTDATA_ITEM(156, 128, 128, fontpage_156_128_128), // '一' -- '一'
|
||||
FONTDATA_ITEM(156, 137, 139, fontpage_156_137_139), // '三' -- '下'
|
||||
FONTDATA_ITEM(156, 141, 141, fontpage_156_141_141), // '不' -- '不'
|
||||
FONTDATA_ITEM(156, 166, 166, fontpage_156_166_166), // '並' -- '並'
|
||||
FONTDATA_ITEM(156, 173, 173, fontpage_156_173_173), // '中' -- '中'
|
||||
FONTDATA_ITEM(156, 187, 187, fontpage_156_187_187), // '主' -- '主'
|
||||
FONTDATA_ITEM(156, 203, 203, fontpage_156_203_203), // '之' -- '之'
|
||||
FONTDATA_ITEM(157, 164, 164, fontpage_157_164_164), // '交' -- '交'
|
||||
FONTDATA_ITEM(157, 174, 174, fontpage_157_174_174), // '亮' -- '亮'
|
||||
FONTDATA_ITEM(157, 228, 228, fontpage_157_228_228), // '令' -- '令'
|
||||
FONTDATA_ITEM(157, 246, 246, fontpage_157_246_246), // '件' -- '件'
|
||||
FONTDATA_ITEM(157, 253, 253, fontpage_157_253_253), // '份' -- '份'
|
||||
FONTDATA_ITEM(158, 145, 145, fontpage_158_145_145), // '休' -- '休'
|
||||
FONTDATA_ITEM(158, 205, 206, fontpage_158_205_206), // '位' -- '低'
|
||||
FONTDATA_ITEM(158, 220, 220, fontpage_158_220_220), // '作' -- '作'
|
||||
FONTDATA_ITEM(159, 155, 155, fontpage_159_155_155), // '供' -- '供'
|
||||
FONTDATA_ITEM(159, 221, 221, fontpage_159_221_221), // '保' -- '保'
|
||||
FONTDATA_ITEM(159, 225, 225, fontpage_159_225_225), // '信' -- '信'
|
||||
FONTDATA_ITEM(160, 139, 139, fontpage_160_139_139), // '個' -- '個'
|
||||
FONTDATA_ITEM(160, 188, 188, fontpage_160_188_188), // '值' -- '值'
|
||||
FONTDATA_ITEM(160, 207, 207, fontpage_160_207_207), // '偏' -- '偏'
|
||||
FONTDATA_ITEM(160, 220, 220, fontpage_160_220_220), // '停' -- '停'
|
||||
FONTDATA_ITEM(160, 245, 245, fontpage_160_245_245), // '偵' -- '偵'
|
||||
FONTDATA_ITEM(161, 153, 153, fontpage_161_153_153), // '備' -- '備'
|
||||
FONTDATA_ITEM(161, 179, 179, fontpage_161_179_179), // '傳' -- '傳'
|
||||
FONTDATA_ITEM(161, 190, 190, fontpage_161_190_190), // '傾' -- '傾'
|
||||
FONTDATA_ITEM(162, 178, 178, fontpage_162_178_178), // '儲' -- '儲'
|
||||
FONTDATA_ITEM(162, 197, 197, fontpage_162_197_197), // '充' -- '充'
|
||||
FONTDATA_ITEM(162, 200, 201, fontpage_162_200_201), // '先' -- '光'
|
||||
FONTDATA_ITEM(162, 229, 229, fontpage_162_229_229), // '入' -- '入'
|
||||
FONTDATA_ITEM(162, 232, 232, fontpage_162_232_232), // '全' -- '全'
|
||||
FONTDATA_ITEM(162, 241, 241, fontpage_162_241_241), // '共' -- '共'
|
||||
FONTDATA_ITEM(162, 247, 247, fontpage_162_247_247), // '具' -- '具'
|
||||
FONTDATA_ITEM(163, 151, 151, fontpage_163_151_151), // '冗' -- '冗'
|
||||
FONTDATA_ITEM(163, 183, 183, fontpage_163_183_183), // '冷' -- '冷'
|
||||
FONTDATA_ITEM(163, 198, 198, fontpage_163_198_198), // '准' -- '准'
|
||||
FONTDATA_ITEM(163, 250, 250, fontpage_163_250_250), // '出' -- '出'
|
||||
FONTDATA_ITEM(164, 134, 134, fontpage_164_134_134), // '分' -- '分'
|
||||
FONTDATA_ITEM(164, 151, 151, fontpage_164_151_151), // '列' -- '列'
|
||||
FONTDATA_ITEM(164, 157, 157, fontpage_164_157_157), // '初' -- '初'
|
||||
FONTDATA_ITEM(164, 176, 176, fontpage_164_176_176), // '到' -- '到'
|
||||
FONTDATA_ITEM(164, 182, 183, fontpage_164_182_183), // '制' -- '刷'
|
||||
FONTDATA_ITEM(164, 245, 245, fontpage_164_245_245), // '創' -- '創'
|
||||
FONTDATA_ITEM(165, 155, 155, fontpage_165_155_155), // '力' -- '力'
|
||||
FONTDATA_ITEM(165, 160, 160, fontpage_165_160_160), // '加' -- '加'
|
||||
FONTDATA_ITEM(165, 213, 213, fontpage_165_213_213), // '動' -- '動'
|
||||
FONTDATA_ITEM(166, 150, 150, fontpage_166_150_150), // '化' -- '化'
|
||||
FONTDATA_ITEM(166, 202, 202, fontpage_166_202_202), // '半' -- '半'
|
||||
FONTDATA_ITEM(166, 212, 212, fontpage_166_212_212), // '協' -- '協'
|
||||
FONTDATA_ITEM(166, 225, 225, fontpage_166_225_225), // '卡' -- '卡'
|
||||
FONTDATA_ITEM(166, 240, 240, fontpage_166_240_240), // '印' -- '印'
|
||||
FONTDATA_ITEM(166, 248, 248, fontpage_166_248_248), // '卸' -- '卸'
|
||||
FONTDATA_ITEM(166, 251, 251, fontpage_166_251_251), // '卻' -- '卻'
|
||||
FONTDATA_ITEM(167, 159, 159, fontpage_167_159_159), // '原' -- '原'
|
||||
FONTDATA_ITEM(167, 205, 205, fontpage_167_205_205), // '反' -- '反'
|
||||
FONTDATA_ITEM(167, 214, 214, fontpage_167_214_214), // '取' -- '取'
|
||||
FONTDATA_ITEM(167, 240, 240, fontpage_167_240_240), // '台' -- '台'
|
||||
FONTDATA_ITEM(168, 136, 136, fontpage_168_136_136), // '合' -- '合'
|
||||
FONTDATA_ITEM(168, 166, 166, fontpage_168_166_166), // '否' -- '否'
|
||||
FONTDATA_ITEM(168, 202, 202, fontpage_168_202_202), // '告' -- '告'
|
||||
FONTDATA_ITEM(168, 253, 253, fontpage_168_253_253), // '命' -- '命'
|
||||
FONTDATA_ITEM(169, 140, 140, fontpage_169_140_140), // '和' -- '和'
|
||||
FONTDATA_ITEM(170, 223, 223, fontpage_170_223_223), // '啟' -- '啟'
|
||||
FONTDATA_ITEM(171, 174, 174, fontpage_171_174_174), // '單' -- '單'
|
||||
FONTDATA_ITEM(172, 180, 180, fontpage_172_180_180), // '嘴' -- '嘴'
|
||||
FONTDATA_ITEM(172, 232, 232, fontpage_172_232_232), // '器' -- '器'
|
||||
FONTDATA_ITEM(172, 244, 244, fontpage_172_244_244), // '噴' -- '噴'
|
||||
FONTDATA_ITEM(173, 222, 222, fontpage_173_222_222), // '回' -- '回'
|
||||
FONTDATA_ITEM(173, 224, 224, fontpage_173_224_224), // '因' -- '因'
|
||||
FONTDATA_ITEM(173, 250, 250, fontpage_173_250_250), // '固' -- '固'
|
||||
FONTDATA_ITEM(174, 150, 150, fontpage_174_150_150), // '圖' -- '圖'
|
||||
FONTDATA_ITEM(174, 168, 168, fontpage_174_168_168), // '在' -- '在'
|
||||
FONTDATA_ITEM(175, 139, 139, fontpage_175_139_139), // '型' -- '型'
|
||||
FONTDATA_ITEM(175, 247, 247, fontpage_175_247_247), // '執' -- '執'
|
||||
FONTDATA_ITEM(176, 202, 202, fontpage_176_202_202), // '塊' -- '塊'
|
||||
FONTDATA_ITEM(176, 235, 235, fontpage_176_235_235), // '填' -- '填'
|
||||
FONTDATA_ITEM(177, 138, 138, fontpage_177_138_138), // '墊' -- '墊'
|
||||
FONTDATA_ITEM(178, 150, 150, fontpage_178_150_150), // '外' -- '外'
|
||||
FONTDATA_ITEM(178, 154, 154, fontpage_178_154_154), // '多' -- '多'
|
||||
FONTDATA_ITEM(178, 160, 160, fontpage_178_160_160), // '夠' -- '夠'
|
||||
FONTDATA_ITEM(178, 167, 167, fontpage_178_167_167), // '大' -- '大'
|
||||
FONTDATA_ITEM(178, 169, 170, fontpage_178_169_170), // '天' -- '太'
|
||||
FONTDATA_ITEM(178, 177, 177, fontpage_178_177_177), // '失' -- '失'
|
||||
FONTDATA_ITEM(179, 203, 203, fontpage_179_203_203), // '始' -- '始'
|
||||
FONTDATA_ITEM(181, 146, 146, fontpage_181_146_146), // '媒' -- '媒'
|
||||
FONTDATA_ITEM(182, 208, 208, fontpage_182_208_208), // '子' -- '子'
|
||||
FONTDATA_ITEM(182, 216, 216, fontpage_182_216_216), // '存' -- '存'
|
||||
FONTDATA_ITEM(183, 137, 137, fontpage_183_137_137), // '安' -- '安'
|
||||
FONTDATA_ITEM(183, 140, 140, fontpage_183_140_140), // '完' -- '完'
|
||||
FONTDATA_ITEM(183, 154, 154, fontpage_183_154_154), // '定' -- '定'
|
||||
FONTDATA_ITEM(183, 162, 162, fontpage_183_162_162), // '客' -- '客'
|
||||
FONTDATA_ITEM(183, 185, 185, fontpage_183_185_185), // '容' -- '容'
|
||||
FONTDATA_ITEM(184, 141, 141, fontpage_184_141_141), // '對' -- '對'
|
||||
FONTDATA_ITEM(184, 143, 143, fontpage_184_143_143), // '小' -- '小'
|
||||
FONTDATA_ITEM(184, 177, 177, fontpage_184_177_177), // '就' -- '就'
|
||||
FONTDATA_ITEM(187, 229, 229, fontpage_187_229_229), // '工' -- '工'
|
||||
FONTDATA_ITEM(187, 238, 238, fontpage_187_238_238), // '差' -- '差'
|
||||
FONTDATA_ITEM(187, 242, 242, fontpage_187_242_242), // '已' -- '已'
|
||||
FONTDATA_ITEM(188, 243, 243, fontpage_188_243_243), // '平' -- '平'
|
||||
FONTDATA_ITEM(189, 138, 138, fontpage_189_138_138), // '床' -- '床'
|
||||
FONTDATA_ITEM(189, 166, 166, fontpage_189_166_166), // '度' -- '度'
|
||||
FONTDATA_ITEM(189, 226, 226, fontpage_189_226_226), // '廢' -- '廢'
|
||||
FONTDATA_ITEM(189, 250, 250, fontpage_189_250_250), // '建' -- '建'
|
||||
FONTDATA_ITEM(190, 149, 149, fontpage_190_149_149), // '引' -- '引'
|
||||
FONTDATA_ITEM(191, 133, 133, fontpage_191_133_133), // '待' -- '待'
|
||||
FONTDATA_ITEM(191, 140, 140, fontpage_191_140_140), // '後' -- '後'
|
||||
FONTDATA_ITEM(191, 145, 145, fontpage_191_145_145), // '徑' -- '徑'
|
||||
FONTDATA_ITEM(191, 158, 158, fontpage_191_158_158), // '從' -- '從'
|
||||
FONTDATA_ITEM(191, 169, 169, fontpage_191_169_169), // '復' -- '復'
|
||||
FONTDATA_ITEM(191, 174, 174, fontpage_191_174_174), // '微' -- '微'
|
||||
FONTDATA_ITEM(191, 195, 195, fontpage_191_195_195), // '心' -- '心'
|
||||
FONTDATA_ITEM(192, 167, 167, fontpage_192_167_167), // '性' -- '性'
|
||||
FONTDATA_ITEM(192, 226, 226, fontpage_192_226_226), // '恢' -- '恢'
|
||||
FONTDATA_ITEM(192, 239, 239, fontpage_192_239_239), // '息' -- '息'
|
||||
FONTDATA_ITEM(195, 182, 182, fontpage_195_182_182), // '憶' -- '憶'
|
||||
FONTDATA_ITEM(195, 201, 201, fontpage_195_201_201), // '應' -- '應'
|
||||
FONTDATA_ITEM(196, 144, 144, fontpage_196_144_144), // '成' -- '成'
|
||||
FONTDATA_ITEM(196, 182, 182, fontpage_196_182_182), // '戶' -- '戶'
|
||||
FONTDATA_ITEM(196, 192, 192, fontpage_196_192_192), // '所' -- '所'
|
||||
FONTDATA_ITEM(196, 199, 199, fontpage_196_199_199), // '扇' -- '扇'
|
||||
FONTDATA_ITEM(196, 203, 203, fontpage_196_203_203), // '手' -- '手'
|
||||
FONTDATA_ITEM(196, 211, 211, fontpage_196_211_211), // '打' -- '打'
|
||||
FONTDATA_ITEM(196, 249, 249, fontpage_196_249_249), // '批' -- '批'
|
||||
FONTDATA_ITEM(197, 150, 150, fontpage_197_150_150), // '抖' -- '抖'
|
||||
FONTDATA_ITEM(197, 189, 189, fontpage_197_189_189), // '抽' -- '抽'
|
||||
FONTDATA_ITEM(197, 212, 212, fontpage_197_212_212), // '拔' -- '拔'
|
||||
FONTDATA_ITEM(198, 137, 137, fontpage_198_137_137), // '按' -- '按'
|
||||
FONTDATA_ITEM(199, 137, 137, fontpage_199_137_137), // '掉' -- '掉'
|
||||
FONTDATA_ITEM(199, 162, 162, fontpage_199_162_162), // '探' -- '探'
|
||||
FONTDATA_ITEM(199, 165, 165, fontpage_199_165_165), // '接' -- '接'
|
||||
FONTDATA_ITEM(199, 167, 167, fontpage_199_167_167), // '控' -- '控'
|
||||
FONTDATA_ITEM(199, 208, 208, fontpage_199_208_208), // '提' -- '提'
|
||||
FONTDATA_ITEM(199, 210, 210, fontpage_199_210_210), // '插' -- '插'
|
||||
FONTDATA_ITEM(199, 219, 219, fontpage_199_219_219), // '換' -- '換'
|
||||
FONTDATA_ITEM(201, 199, 199, fontpage_201_199_199), // '擇' -- '擇'
|
||||
FONTDATA_ITEM(201, 202, 203, fontpage_201_202_203), // '擊' -- '擋'
|
||||
FONTDATA_ITEM(201, 224, 224, fontpage_201_224_224), // '擠' -- '擠'
|
||||
FONTDATA_ITEM(202, 182, 182, fontpage_202_182_182), // '收' -- '收'
|
||||
FONTDATA_ITEM(202, 190, 190, fontpage_202_190_190), // '放' -- '放'
|
||||
FONTDATA_ITEM(202, 215, 215, fontpage_202_215_215), // '敗' -- '敗'
|
||||
FONTDATA_ITEM(202, 244, 244, fontpage_202_244_244), // '整' -- '整'
|
||||
FONTDATA_ITEM(202, 248, 248, fontpage_202_248_248), // '數' -- '數'
|
||||
FONTDATA_ITEM(203, 153, 153, fontpage_203_153_153), // '料' -- '料'
|
||||
FONTDATA_ITEM(203, 156, 156, fontpage_203_156_156), // '斜' -- '斜'
|
||||
FONTDATA_ITEM(203, 176, 176, fontpage_203_176_176), // '新' -- '新'
|
||||
FONTDATA_ITEM(203, 183, 183, fontpage_203_183_183), // '斷' -- '斷'
|
||||
FONTDATA_ITEM(203, 188, 188, fontpage_203_188_188), // '於' -- '於'
|
||||
FONTDATA_ITEM(204, 135, 135, fontpage_204_135_135), // '昇' -- '昇'
|
||||
FONTDATA_ITEM(204, 142, 142, fontpage_204_142_142), // '明' -- '明'
|
||||
FONTDATA_ITEM(204, 175, 175, fontpage_204_175_175), // '是' -- '是'
|
||||
FONTDATA_ITEM(204, 194, 194, fontpage_204_194_194), // '時' -- '時'
|
||||
FONTDATA_ITEM(205, 171, 171, fontpage_205_171_171), // '暫' -- '暫'
|
||||
FONTDATA_ITEM(205, 244, 244, fontpage_205_244_244), // '更' -- '更'
|
||||
FONTDATA_ITEM(206, 128, 128, fontpage_206_128_128), // '最' -- '最'
|
||||
FONTDATA_ITEM(206, 137, 137, fontpage_206_137_137), // '有' -- '有'
|
||||
FONTDATA_ITEM(206, 255, 255, fontpage_206_255_255), // '板' -- '板'
|
||||
FONTDATA_ITEM(207, 241, 241, fontpage_207_241_241), // '柱' -- '柱'
|
||||
FONTDATA_ITEM(208, 161, 161, fontpage_208_161_161), // '校' -- '校'
|
||||
FONTDATA_ITEM(208, 188, 188, fontpage_208_188_188), // '格' -- '格'
|
||||
FONTDATA_ITEM(209, 157, 157, fontpage_209_157_157), // '條' -- '條'
|
||||
FONTDATA_ITEM(209, 196, 196, fontpage_209_196_196), // '棄' -- '棄'
|
||||
FONTDATA_ITEM(211, 253, 253, fontpage_211_253_253), // '槽' -- '槽'
|
||||
FONTDATA_ITEM(212, 217, 217, fontpage_212_217_217), // '橙' -- '橙'
|
||||
FONTDATA_ITEM(212, 223, 223, fontpage_212_223_223), // '機' -- '機'
|
||||
FONTDATA_ITEM(213, 162, 162, fontpage_213_162_162), // '檢' -- '檢'
|
||||
FONTDATA_ITEM(214, 226, 227, fontpage_214_226_227), // '止' -- '正'
|
||||
FONTDATA_ITEM(214, 229, 229, fontpage_214_229_229), // '步' -- '步'
|
||||
FONTDATA_ITEM(214, 248, 248, fontpage_214_248_248), // '歸' -- '歸'
|
||||
FONTDATA_ITEM(215, 188, 188, fontpage_215_188_188), // '殼' -- '殼'
|
||||
FONTDATA_ITEM(215, 212, 212, fontpage_215_212_212), // '比' -- '比'
|
||||
FONTDATA_ITEM(217, 146, 146, fontpage_217_146_146), // '沒' -- '沒'
|
||||
FONTDATA_ITEM(219, 136, 136, fontpage_219_136_136), // '消' -- '消'
|
||||
FONTDATA_ITEM(219, 225, 225, fontpage_219_225_225), // '淡' -- '淡'
|
||||
FONTDATA_ITEM(220, 133, 133, fontpage_220_133_133), // '清' -- '清'
|
||||
FONTDATA_ITEM(220, 172, 172, fontpage_220_172_172), // '測' -- '測'
|
||||
FONTDATA_ITEM(221, 144, 144, fontpage_221_144_144), // '源' -- '源'
|
||||
FONTDATA_ITEM(221, 150, 150, fontpage_221_150_150), // '準' -- '準'
|
||||
FONTDATA_ITEM(221, 171, 171, fontpage_221_171_171), // '溫' -- '溫'
|
||||
FONTDATA_ITEM(223, 192, 192, fontpage_223_192_192), // '激' -- '激'
|
||||
FONTDATA_ITEM(226, 161, 161, fontpage_226_161_161), // '無' -- '無'
|
||||
FONTDATA_ITEM(227, 177, 177, fontpage_227_177_177), // '熱' -- '熱'
|
||||
FONTDATA_ITEM(227, 200, 200, fontpage_227_200_200), // '燈' -- '燈'
|
||||
FONTDATA_ITEM(228, 199, 199, fontpage_228_199_199), // '片' -- '片'
|
||||
FONTDATA_ITEM(228, 233, 233, fontpage_228_233_233), // '物' -- '物'
|
||||
FONTDATA_ITEM(231, 135, 135, fontpage_231_135_135), // '率' -- '率'
|
||||
FONTDATA_ITEM(234, 168, 168, fontpage_234_168_168), // '用' -- '用'
|
||||
FONTDATA_ITEM(234, 204, 204, fontpage_234_204_204), // '界' -- '界'
|
||||
FONTDATA_ITEM(236, 253, 253, fontpage_236_253_253), // '白' -- '白'
|
||||
FONTDATA_ITEM(237, 132, 132, fontpage_237_132_132), // '的' -- '的'
|
||||
FONTDATA_ITEM(237, 227, 227, fontpage_237_227_227), // '監' -- '監'
|
||||
FONTDATA_ITEM(237, 244, 244, fontpage_237_244_244), // '直' -- '直'
|
||||
FONTDATA_ITEM(238, 160, 160, fontpage_238_160_160), // '眠' -- '眠'
|
||||
FONTDATA_ITEM(240, 141, 141, fontpage_240_141_141), // '砍' -- '砍'
|
||||
FONTDATA_ITEM(241, 186, 186, fontpage_241_186_186), // '確' -- '確'
|
||||
FONTDATA_ITEM(243, 251, 251, fontpage_243_251_251), // '移' -- '移'
|
||||
FONTDATA_ITEM(244, 205, 205, fontpage_244_205_205), // '積' -- '積'
|
||||
FONTDATA_ITEM(245, 239, 239, fontpage_245_239_239), // '端' -- '端'
|
||||
FONTDATA_ITEM(246, 201, 201, fontpage_246_201_201), // '等' -- '等'
|
||||
FONTDATA_ITEM(247, 161, 161, fontpage_247_161_161), // '管' -- '管'
|
||||
FONTDATA_ITEM(247, 177, 177, fontpage_247_177_177), // '箱' -- '箱'
|
||||
FONTDATA_ITEM(249, 251, 251, fontpage_249_251_251), // '系' -- '系'
|
||||
FONTDATA_ITEM(250, 133, 133, fontpage_250_133_133), // '紅' -- '紅'
|
||||
FONTDATA_ITEM(250, 162, 162, fontpage_250_162_162), // '索' -- '索'
|
||||
FONTDATA_ITEM(250, 171, 171, fontpage_250_171_171), // '紫' -- '紫'
|
||||
FONTDATA_ITEM(250, 176, 176, fontpage_250_176_176), // '細' -- '細'
|
||||
FONTDATA_ITEM(250, 194, 194, fontpage_250_194_194), // '終' -- '終'
|
||||
FONTDATA_ITEM(250, 241, 242, fontpage_250_241_242), // '統' -- '絲'
|
||||
FONTDATA_ITEM(251, 160, 160, fontpage_251_160_160), // '綠' -- '綠'
|
||||
FONTDATA_ITEM(251, 178, 178, fontpage_251_178_178), // '網' -- '網'
|
||||
FONTDATA_ITEM(251, 210, 210, fontpage_251_210_210), // '緒' -- '緒'
|
||||
FONTDATA_ITEM(251, 218, 218, fontpage_251_218_218), // '線' -- '線'
|
||||
FONTDATA_ITEM(251, 232, 232, fontpage_251_232_232), // '編' -- '編'
|
||||
FONTDATA_ITEM(252, 174, 174, fontpage_252_174_174), // '縮' -- '縮'
|
||||
FONTDATA_ITEM(252, 189, 189, fontpage_252_189_189), // '總' -- '總'
|
||||
FONTDATA_ITEM(252, 252, 252, fontpage_252_252_252), // '繼' -- '繼'
|
||||
FONTDATA_ITEM(253, 140, 140, fontpage_253_140_140), // '續' -- '續'
|
||||
FONTDATA_ITEM(253, 162, 162, fontpage_253_162_162), // '红' -- '红'
|
||||
FONTDATA_ITEM(254, 238, 238, fontpage_254_238_238), // '置' -- '置'
|
||||
FONTDATA_ITEM(254, 242, 242, fontpage_254_242_242), // '署' -- '署'
|
||||
FONTDATA_ITEM(256, 240, 240, fontpage_256_240_240), // '聰' -- '聰'
|
||||
FONTDATA_ITEM(259, 234, 234, fontpage_259_234_234), // '自' -- '自'
|
||||
FONTDATA_ITEM(267, 205, 205, fontpage_267_205_205), // '藍' -- '藍'
|
||||
FONTDATA_ITEM(272, 204, 204, fontpage_272_204_204), // '行' -- '行'
|
||||
FONTDATA_ITEM(272, 232, 232, fontpage_272_232_232), // '表' -- '表'
|
||||
FONTDATA_ITEM(273, 171, 171, fontpage_273_171_171), // '被' -- '被'
|
||||
FONTDATA_ITEM(273, 197, 197, fontpage_273_197_197), // '装' -- '装'
|
||||
FONTDATA_ITEM(273, 221, 221, fontpage_273_221_221), // '裝' -- '裝'
|
||||
FONTDATA_ITEM(274, 135, 135, fontpage_274_135_135), // '複' -- '複'
|
||||
FONTDATA_ITEM(275, 210, 210, fontpage_275_210_210), // '角' -- '角'
|
||||
FONTDATA_ITEM(276, 136, 136, fontpage_276_136_136), // '計' -- '計'
|
||||
FONTDATA_ITEM(276, 138, 138, fontpage_276_138_138), // '訊' -- '訊'
|
||||
FONTDATA_ITEM(276, 152, 152, fontpage_276_152_152), // '記' -- '記'
|
||||
FONTDATA_ITEM(276, 173, 173, fontpage_276_173_173), // '設' -- '設'
|
||||
FONTDATA_ITEM(276, 230, 230, fontpage_276_230_230), // '試' -- '試'
|
||||
FONTDATA_ITEM(277, 141, 141, fontpage_277_141_141), // '認' -- '認'
|
||||
FONTDATA_ITEM(277, 164, 164, fontpage_277_164_164), // '誤' -- '誤'
|
||||
FONTDATA_ITEM(277, 191, 191, fontpage_277_191_191), // '調' -- '調'
|
||||
FONTDATA_ITEM(277, 203, 203, fontpage_277_203_203), // '請' -- '請'
|
||||
FONTDATA_ITEM(278, 240, 240, fontpage_278_240_240), // '議' -- '議'
|
||||
FONTDATA_ITEM(279, 128, 128, fontpage_279_128_128), // '讀' -- '讀'
|
||||
FONTDATA_ITEM(279, 138, 138, fontpage_279_138_138), // '變' -- '變'
|
||||
FONTDATA_ITEM(281, 199, 199, fontpage_281_199_199), // '資' -- '資'
|
||||
FONTDATA_ITEM(283, 221, 221, fontpage_283_221_221), // '距' -- '距'
|
||||
FONTDATA_ITEM(285, 202, 202, fontpage_285_202_202), // '車' -- '車'
|
||||
FONTDATA_ITEM(285, 223, 223, fontpage_285_223_223), // '軟' -- '軟'
|
||||
FONTDATA_ITEM(285, 248, 248, fontpage_285_248_248), // '軸' -- '軸'
|
||||
FONTDATA_ITEM(286, 137, 137, fontpage_286_137_137), // '載' -- '載'
|
||||
FONTDATA_ITEM(286, 175, 175, fontpage_286_175_175), // '輯' -- '輯'
|
||||
FONTDATA_ITEM(286, 184, 184, fontpage_286_184_184), // '輸' -- '輸'
|
||||
FONTDATA_ITEM(286, 201, 201, fontpage_286_201_201), // '轉' -- '轉'
|
||||
FONTDATA_ITEM(287, 209, 209, fontpage_287_209_209), // '近' -- '近'
|
||||
FONTDATA_ITEM(287, 212, 212, fontpage_287_212_212), // '返' -- '返'
|
||||
FONTDATA_ITEM(288, 128, 128, fontpage_288_128_128), // '退' -- '退'
|
||||
FONTDATA_ITEM(288, 159, 159, fontpage_288_159_159), // '速' -- '速'
|
||||
FONTDATA_ITEM(288, 163, 163, fontpage_288_163_163), // '連' -- '連'
|
||||
FONTDATA_ITEM(288, 178, 178, fontpage_288_178_178), // '進' -- '進'
|
||||
FONTDATA_ITEM(288, 203, 203, fontpage_288_203_203), // '運' -- '運'
|
||||
FONTDATA_ITEM(288, 212, 212, fontpage_288_212_212), // '達' -- '達'
|
||||
FONTDATA_ITEM(288, 248, 248, fontpage_288_248_248), // '選' -- '選'
|
||||
FONTDATA_ITEM(289, 132, 132, fontpage_289_132_132), // '還' -- '還'
|
||||
FONTDATA_ITEM(289, 138, 138, fontpage_289_138_138), // '邊' -- '邊'
|
||||
FONTDATA_ITEM(289, 232, 232, fontpage_289_232_232), // '部' -- '部'
|
||||
FONTDATA_ITEM(291, 203, 203, fontpage_291_203_203), // '釋' -- '釋'
|
||||
FONTDATA_ITEM(291, 205, 205, fontpage_291_205_205), // '重' -- '重'
|
||||
FONTDATA_ITEM(291, 207, 207, fontpage_291_207_207), // '量' -- '量'
|
||||
FONTDATA_ITEM(291, 221, 221, fontpage_291_221_221), // '針' -- '針'
|
||||
FONTDATA_ITEM(292, 149, 149, fontpage_292_149_149), // '鈕' -- '鈕'
|
||||
FONTDATA_ITEM(294, 175, 175, fontpage_294_175_175), // '錯' -- '錯'
|
||||
FONTDATA_ITEM(294, 245, 245, fontpage_294_245_245), // '鍵' -- '鍵'
|
||||
FONTDATA_ITEM(298, 247, 247, fontpage_298_247_247), // '長' -- '長'
|
||||
FONTDATA_ITEM(299, 137, 137, fontpage_299_137_137), // '閉' -- '閉'
|
||||
FONTDATA_ITEM(299, 139, 139, fontpage_299_139_139), // '開' -- '開'
|
||||
FONTDATA_ITEM(299, 147, 147, fontpage_299_147_147), // '間' -- '間'
|
||||
FONTDATA_ITEM(299, 220, 220, fontpage_299_220_220), // '關' -- '關'
|
||||
FONTDATA_ITEM(300, 205, 205, fontpage_300_205_205), // '降' -- '降'
|
||||
FONTDATA_ITEM(300, 228, 228, fontpage_300_228_228), // '除' -- '除'
|
||||
FONTDATA_ITEM(301, 142, 142, fontpage_301_142_142), // '階' -- '階'
|
||||
FONTDATA_ITEM(301, 217, 217, fontpage_301_217_217), // '雙' -- '雙'
|
||||
FONTDATA_ITEM(301, 226, 226, fontpage_301_226_226), // '離' -- '離'
|
||||
FONTDATA_ITEM(301, 251, 251, fontpage_301_251_251), // '電' -- '電'
|
||||
FONTDATA_ITEM(302, 210, 210, fontpage_302_210_210), // '青' -- '青'
|
||||
FONTDATA_ITEM(302, 222, 222, fontpage_302_222_222), // '非' -- '非'
|
||||
FONTDATA_ITEM(302, 226, 226, fontpage_302_226_226), // '面' -- '面'
|
||||
FONTDATA_ITEM(304, 133, 133, fontpage_304_133_133), // '項' -- '項'
|
||||
FONTDATA_ITEM(304, 144, 144, fontpage_304_144_144), // '預' -- '預'
|
||||
FONTDATA_ITEM(304, 205, 205, fontpage_304_205_205), // '額' -- '額'
|
||||
FONTDATA_ITEM(304, 222, 222, fontpage_304_222_222), // '類' -- '類'
|
||||
FONTDATA_ITEM(305, 168, 168, fontpage_305_168_168), // '風' -- '風'
|
||||
FONTDATA_ITEM(305, 253, 253, fontpage_305_253_253), // '飽' -- '飽'
|
||||
FONTDATA_ITEM(306, 152, 152, fontpage_306_152_152), // '餘' -- '餘'
|
||||
FONTDATA_ITEM(307, 172, 172, fontpage_307_172_172), // '馬' -- '馬'
|
||||
FONTDATA_ITEM(308, 197, 197, fontpage_308_197_197), // '驅' -- '驅'
|
||||
FONTDATA_ITEM(309, 212, 212, fontpage_309_212_212), // '體' -- '體'
|
||||
FONTDATA_ITEM(309, 216, 216, fontpage_309_216_216), // '高' -- '高'
|
||||
FONTDATA_ITEM(317, 195, 195, fontpage_317_195_195), // '黃' -- '黃'
|
||||
FONTDATA_ITEM(317, 222, 222, fontpage_317_222_222), // '點' -- '點'
|
||||
FONTDATA_ITEM(318, 202, 202, fontpage_318_202_202), // '齊' -- '齊'
|
||||
FONTDATA_ITEM(510, 154, 154, fontpage_510_154_154), // ':' -- ':'
|
||||
static const uxg_fontinfo_t g_fontinfo_zh_TW[] PROGMEM = {
|
||||
FONTDATA_ITEM(69, 191, 191, fontpage_69_191_191), // '⊿' -- '⊿'
|
||||
FONTDATA_ITEM(156, 128, 128, fontpage_156_128_128), // '一' -- '一'
|
||||
FONTDATA_ITEM(156, 137, 139, fontpage_156_137_139), // '三' -- '下'
|
||||
FONTDATA_ITEM(156, 141, 141, fontpage_156_141_141), // '不' -- '不'
|
||||
FONTDATA_ITEM(156, 166, 166, fontpage_156_166_166), // '並' -- '並'
|
||||
FONTDATA_ITEM(156, 173, 173, fontpage_156_173_173), // '中' -- '中'
|
||||
FONTDATA_ITEM(156, 187, 187, fontpage_156_187_187), // '主' -- '主'
|
||||
FONTDATA_ITEM(156, 203, 203, fontpage_156_203_203), // '之' -- '之'
|
||||
FONTDATA_ITEM(157, 164, 164, fontpage_157_164_164), // '交' -- '交'
|
||||
FONTDATA_ITEM(157, 174, 174, fontpage_157_174_174), // '亮' -- '亮'
|
||||
FONTDATA_ITEM(157, 228, 228, fontpage_157_228_228), // '令' -- '令'
|
||||
FONTDATA_ITEM(157, 246, 246, fontpage_157_246_246), // '件' -- '件'
|
||||
FONTDATA_ITEM(157, 253, 253, fontpage_157_253_253), // '份' -- '份'
|
||||
FONTDATA_ITEM(158, 145, 145, fontpage_158_145_145), // '休' -- '休'
|
||||
FONTDATA_ITEM(158, 205, 206, fontpage_158_205_206), // '位' -- '低'
|
||||
FONTDATA_ITEM(158, 220, 220, fontpage_158_220_220), // '作' -- '作'
|
||||
FONTDATA_ITEM(159, 155, 155, fontpage_159_155_155), // '供' -- '供'
|
||||
FONTDATA_ITEM(159, 221, 221, fontpage_159_221_221), // '保' -- '保'
|
||||
FONTDATA_ITEM(159, 225, 225, fontpage_159_225_225), // '信' -- '信'
|
||||
FONTDATA_ITEM(160, 139, 139, fontpage_160_139_139), // '個' -- '個'
|
||||
FONTDATA_ITEM(160, 188, 188, fontpage_160_188_188), // '值' -- '值'
|
||||
FONTDATA_ITEM(160, 207, 207, fontpage_160_207_207), // '偏' -- '偏'
|
||||
FONTDATA_ITEM(160, 220, 220, fontpage_160_220_220), // '停' -- '停'
|
||||
FONTDATA_ITEM(160, 245, 245, fontpage_160_245_245), // '偵' -- '偵'
|
||||
FONTDATA_ITEM(161, 153, 153, fontpage_161_153_153), // '備' -- '備'
|
||||
FONTDATA_ITEM(161, 179, 179, fontpage_161_179_179), // '傳' -- '傳'
|
||||
FONTDATA_ITEM(161, 190, 190, fontpage_161_190_190), // '傾' -- '傾'
|
||||
FONTDATA_ITEM(162, 178, 178, fontpage_162_178_178), // '儲' -- '儲'
|
||||
FONTDATA_ITEM(162, 197, 197, fontpage_162_197_197), // '充' -- '充'
|
||||
FONTDATA_ITEM(162, 200, 201, fontpage_162_200_201), // '先' -- '光'
|
||||
FONTDATA_ITEM(162, 229, 229, fontpage_162_229_229), // '入' -- '入'
|
||||
FONTDATA_ITEM(162, 232, 232, fontpage_162_232_232), // '全' -- '全'
|
||||
FONTDATA_ITEM(162, 241, 241, fontpage_162_241_241), // '共' -- '共'
|
||||
FONTDATA_ITEM(162, 247, 247, fontpage_162_247_247), // '具' -- '具'
|
||||
FONTDATA_ITEM(163, 151, 151, fontpage_163_151_151), // '冗' -- '冗'
|
||||
FONTDATA_ITEM(163, 183, 183, fontpage_163_183_183), // '冷' -- '冷'
|
||||
FONTDATA_ITEM(163, 198, 198, fontpage_163_198_198), // '准' -- '准'
|
||||
FONTDATA_ITEM(163, 250, 250, fontpage_163_250_250), // '出' -- '出'
|
||||
FONTDATA_ITEM(164, 134, 134, fontpage_164_134_134), // '分' -- '分'
|
||||
FONTDATA_ITEM(164, 151, 151, fontpage_164_151_151), // '列' -- '列'
|
||||
FONTDATA_ITEM(164, 157, 157, fontpage_164_157_157), // '初' -- '初'
|
||||
FONTDATA_ITEM(164, 176, 176, fontpage_164_176_176), // '到' -- '到'
|
||||
FONTDATA_ITEM(164, 182, 183, fontpage_164_182_183), // '制' -- '刷'
|
||||
FONTDATA_ITEM(164, 245, 245, fontpage_164_245_245), // '創' -- '創'
|
||||
FONTDATA_ITEM(165, 155, 155, fontpage_165_155_155), // '力' -- '力'
|
||||
FONTDATA_ITEM(165, 160, 160, fontpage_165_160_160), // '加' -- '加'
|
||||
FONTDATA_ITEM(165, 213, 213, fontpage_165_213_213), // '動' -- '動'
|
||||
FONTDATA_ITEM(166, 150, 150, fontpage_166_150_150), // '化' -- '化'
|
||||
FONTDATA_ITEM(166, 202, 202, fontpage_166_202_202), // '半' -- '半'
|
||||
FONTDATA_ITEM(166, 212, 212, fontpage_166_212_212), // '協' -- '協'
|
||||
FONTDATA_ITEM(166, 225, 225, fontpage_166_225_225), // '卡' -- '卡'
|
||||
FONTDATA_ITEM(166, 240, 240, fontpage_166_240_240), // '印' -- '印'
|
||||
FONTDATA_ITEM(166, 248, 248, fontpage_166_248_248), // '卸' -- '卸'
|
||||
FONTDATA_ITEM(166, 251, 251, fontpage_166_251_251), // '卻' -- '卻'
|
||||
FONTDATA_ITEM(167, 159, 159, fontpage_167_159_159), // '原' -- '原'
|
||||
FONTDATA_ITEM(167, 205, 205, fontpage_167_205_205), // '反' -- '反'
|
||||
FONTDATA_ITEM(167, 214, 214, fontpage_167_214_214), // '取' -- '取'
|
||||
FONTDATA_ITEM(167, 240, 240, fontpage_167_240_240), // '台' -- '台'
|
||||
FONTDATA_ITEM(168, 136, 136, fontpage_168_136_136), // '合' -- '合'
|
||||
FONTDATA_ITEM(168, 166, 166, fontpage_168_166_166), // '否' -- '否'
|
||||
FONTDATA_ITEM(168, 202, 202, fontpage_168_202_202), // '告' -- '告'
|
||||
FONTDATA_ITEM(168, 253, 253, fontpage_168_253_253), // '命' -- '命'
|
||||
FONTDATA_ITEM(169, 140, 140, fontpage_169_140_140), // '和' -- '和'
|
||||
FONTDATA_ITEM(170, 223, 223, fontpage_170_223_223), // '啟' -- '啟'
|
||||
FONTDATA_ITEM(171, 174, 174, fontpage_171_174_174), // '單' -- '單'
|
||||
FONTDATA_ITEM(172, 180, 180, fontpage_172_180_180), // '嘴' -- '嘴'
|
||||
FONTDATA_ITEM(172, 232, 232, fontpage_172_232_232), // '器' -- '器'
|
||||
FONTDATA_ITEM(172, 244, 244, fontpage_172_244_244), // '噴' -- '噴'
|
||||
FONTDATA_ITEM(173, 222, 222, fontpage_173_222_222), // '回' -- '回'
|
||||
FONTDATA_ITEM(173, 224, 224, fontpage_173_224_224), // '因' -- '因'
|
||||
FONTDATA_ITEM(173, 250, 250, fontpage_173_250_250), // '固' -- '固'
|
||||
FONTDATA_ITEM(174, 150, 150, fontpage_174_150_150), // '圖' -- '圖'
|
||||
FONTDATA_ITEM(174, 168, 168, fontpage_174_168_168), // '在' -- '在'
|
||||
FONTDATA_ITEM(175, 139, 139, fontpage_175_139_139), // '型' -- '型'
|
||||
FONTDATA_ITEM(175, 247, 247, fontpage_175_247_247), // '執' -- '執'
|
||||
FONTDATA_ITEM(176, 202, 202, fontpage_176_202_202), // '塊' -- '塊'
|
||||
FONTDATA_ITEM(176, 235, 235, fontpage_176_235_235), // '填' -- '填'
|
||||
FONTDATA_ITEM(177, 138, 138, fontpage_177_138_138), // '墊' -- '墊'
|
||||
FONTDATA_ITEM(178, 150, 150, fontpage_178_150_150), // '外' -- '外'
|
||||
FONTDATA_ITEM(178, 154, 154, fontpage_178_154_154), // '多' -- '多'
|
||||
FONTDATA_ITEM(178, 160, 160, fontpage_178_160_160), // '夠' -- '夠'
|
||||
FONTDATA_ITEM(178, 167, 167, fontpage_178_167_167), // '大' -- '大'
|
||||
FONTDATA_ITEM(178, 169, 170, fontpage_178_169_170), // '天' -- '太'
|
||||
FONTDATA_ITEM(178, 177, 177, fontpage_178_177_177), // '失' -- '失'
|
||||
FONTDATA_ITEM(179, 203, 203, fontpage_179_203_203), // '始' -- '始'
|
||||
FONTDATA_ITEM(181, 146, 146, fontpage_181_146_146), // '媒' -- '媒'
|
||||
FONTDATA_ITEM(182, 208, 208, fontpage_182_208_208), // '子' -- '子'
|
||||
FONTDATA_ITEM(182, 216, 216, fontpage_182_216_216), // '存' -- '存'
|
||||
FONTDATA_ITEM(183, 137, 137, fontpage_183_137_137), // '安' -- '安'
|
||||
FONTDATA_ITEM(183, 140, 140, fontpage_183_140_140), // '完' -- '完'
|
||||
FONTDATA_ITEM(183, 154, 154, fontpage_183_154_154), // '定' -- '定'
|
||||
FONTDATA_ITEM(183, 162, 162, fontpage_183_162_162), // '客' -- '客'
|
||||
FONTDATA_ITEM(183, 185, 185, fontpage_183_185_185), // '容' -- '容'
|
||||
FONTDATA_ITEM(184, 141, 141, fontpage_184_141_141), // '對' -- '對'
|
||||
FONTDATA_ITEM(184, 143, 143, fontpage_184_143_143), // '小' -- '小'
|
||||
FONTDATA_ITEM(184, 177, 177, fontpage_184_177_177), // '就' -- '就'
|
||||
FONTDATA_ITEM(187, 229, 229, fontpage_187_229_229), // '工' -- '工'
|
||||
FONTDATA_ITEM(187, 238, 238, fontpage_187_238_238), // '差' -- '差'
|
||||
FONTDATA_ITEM(187, 242, 242, fontpage_187_242_242), // '已' -- '已'
|
||||
FONTDATA_ITEM(188, 243, 243, fontpage_188_243_243), // '平' -- '平'
|
||||
FONTDATA_ITEM(189, 138, 138, fontpage_189_138_138), // '床' -- '床'
|
||||
FONTDATA_ITEM(189, 166, 166, fontpage_189_166_166), // '度' -- '度'
|
||||
FONTDATA_ITEM(189, 226, 226, fontpage_189_226_226), // '廢' -- '廢'
|
||||
FONTDATA_ITEM(189, 250, 250, fontpage_189_250_250), // '建' -- '建'
|
||||
FONTDATA_ITEM(190, 149, 149, fontpage_190_149_149), // '引' -- '引'
|
||||
FONTDATA_ITEM(191, 133, 133, fontpage_191_133_133), // '待' -- '待'
|
||||
FONTDATA_ITEM(191, 140, 140, fontpage_191_140_140), // '後' -- '後'
|
||||
FONTDATA_ITEM(191, 145, 145, fontpage_191_145_145), // '徑' -- '徑'
|
||||
FONTDATA_ITEM(191, 158, 158, fontpage_191_158_158), // '從' -- '從'
|
||||
FONTDATA_ITEM(191, 169, 169, fontpage_191_169_169), // '復' -- '復'
|
||||
FONTDATA_ITEM(191, 174, 174, fontpage_191_174_174), // '微' -- '微'
|
||||
FONTDATA_ITEM(191, 195, 195, fontpage_191_195_195), // '心' -- '心'
|
||||
FONTDATA_ITEM(192, 167, 167, fontpage_192_167_167), // '性' -- '性'
|
||||
FONTDATA_ITEM(192, 226, 226, fontpage_192_226_226), // '恢' -- '恢'
|
||||
FONTDATA_ITEM(192, 239, 239, fontpage_192_239_239), // '息' -- '息'
|
||||
FONTDATA_ITEM(195, 182, 182, fontpage_195_182_182), // '憶' -- '憶'
|
||||
FONTDATA_ITEM(195, 201, 201, fontpage_195_201_201), // '應' -- '應'
|
||||
FONTDATA_ITEM(196, 144, 144, fontpage_196_144_144), // '成' -- '成'
|
||||
FONTDATA_ITEM(196, 182, 182, fontpage_196_182_182), // '戶' -- '戶'
|
||||
FONTDATA_ITEM(196, 192, 192, fontpage_196_192_192), // '所' -- '所'
|
||||
FONTDATA_ITEM(196, 199, 199, fontpage_196_199_199), // '扇' -- '扇'
|
||||
FONTDATA_ITEM(196, 203, 203, fontpage_196_203_203), // '手' -- '手'
|
||||
FONTDATA_ITEM(196, 211, 211, fontpage_196_211_211), // '打' -- '打'
|
||||
FONTDATA_ITEM(196, 249, 249, fontpage_196_249_249), // '批' -- '批'
|
||||
FONTDATA_ITEM(197, 150, 150, fontpage_197_150_150), // '抖' -- '抖'
|
||||
FONTDATA_ITEM(197, 189, 189, fontpage_197_189_189), // '抽' -- '抽'
|
||||
FONTDATA_ITEM(197, 212, 212, fontpage_197_212_212), // '拔' -- '拔'
|
||||
FONTDATA_ITEM(198, 137, 137, fontpage_198_137_137), // '按' -- '按'
|
||||
FONTDATA_ITEM(199, 137, 137, fontpage_199_137_137), // '掉' -- '掉'
|
||||
FONTDATA_ITEM(199, 162, 162, fontpage_199_162_162), // '探' -- '探'
|
||||
FONTDATA_ITEM(199, 165, 165, fontpage_199_165_165), // '接' -- '接'
|
||||
FONTDATA_ITEM(199, 167, 167, fontpage_199_167_167), // '控' -- '控'
|
||||
FONTDATA_ITEM(199, 208, 208, fontpage_199_208_208), // '提' -- '提'
|
||||
FONTDATA_ITEM(199, 210, 210, fontpage_199_210_210), // '插' -- '插'
|
||||
FONTDATA_ITEM(199, 219, 219, fontpage_199_219_219), // '換' -- '換'
|
||||
FONTDATA_ITEM(201, 199, 199, fontpage_201_199_199), // '擇' -- '擇'
|
||||
FONTDATA_ITEM(201, 202, 203, fontpage_201_202_203), // '擊' -- '擋'
|
||||
FONTDATA_ITEM(201, 224, 224, fontpage_201_224_224), // '擠' -- '擠'
|
||||
FONTDATA_ITEM(202, 182, 182, fontpage_202_182_182), // '收' -- '收'
|
||||
FONTDATA_ITEM(202, 190, 190, fontpage_202_190_190), // '放' -- '放'
|
||||
FONTDATA_ITEM(202, 215, 215, fontpage_202_215_215), // '敗' -- '敗'
|
||||
FONTDATA_ITEM(202, 244, 244, fontpage_202_244_244), // '整' -- '整'
|
||||
FONTDATA_ITEM(202, 248, 248, fontpage_202_248_248), // '數' -- '數'
|
||||
FONTDATA_ITEM(203, 153, 153, fontpage_203_153_153), // '料' -- '料'
|
||||
FONTDATA_ITEM(203, 156, 156, fontpage_203_156_156), // '斜' -- '斜'
|
||||
FONTDATA_ITEM(203, 176, 176, fontpage_203_176_176), // '新' -- '新'
|
||||
FONTDATA_ITEM(203, 183, 183, fontpage_203_183_183), // '斷' -- '斷'
|
||||
FONTDATA_ITEM(203, 188, 188, fontpage_203_188_188), // '於' -- '於'
|
||||
FONTDATA_ITEM(204, 135, 135, fontpage_204_135_135), // '昇' -- '昇'
|
||||
FONTDATA_ITEM(204, 142, 142, fontpage_204_142_142), // '明' -- '明'
|
||||
FONTDATA_ITEM(204, 175, 175, fontpage_204_175_175), // '是' -- '是'
|
||||
FONTDATA_ITEM(204, 194, 194, fontpage_204_194_194), // '時' -- '時'
|
||||
FONTDATA_ITEM(205, 171, 171, fontpage_205_171_171), // '暫' -- '暫'
|
||||
FONTDATA_ITEM(205, 244, 244, fontpage_205_244_244), // '更' -- '更'
|
||||
FONTDATA_ITEM(206, 128, 128, fontpage_206_128_128), // '最' -- '最'
|
||||
FONTDATA_ITEM(206, 137, 137, fontpage_206_137_137), // '有' -- '有'
|
||||
FONTDATA_ITEM(206, 255, 255, fontpage_206_255_255), // '板' -- '板'
|
||||
FONTDATA_ITEM(207, 241, 241, fontpage_207_241_241), // '柱' -- '柱'
|
||||
FONTDATA_ITEM(208, 161, 161, fontpage_208_161_161), // '校' -- '校'
|
||||
FONTDATA_ITEM(208, 188, 188, fontpage_208_188_188), // '格' -- '格'
|
||||
FONTDATA_ITEM(209, 157, 157, fontpage_209_157_157), // '條' -- '條'
|
||||
FONTDATA_ITEM(209, 196, 196, fontpage_209_196_196), // '棄' -- '棄'
|
||||
FONTDATA_ITEM(211, 253, 253, fontpage_211_253_253), // '槽' -- '槽'
|
||||
FONTDATA_ITEM(212, 217, 217, fontpage_212_217_217), // '橙' -- '橙'
|
||||
FONTDATA_ITEM(212, 223, 223, fontpage_212_223_223), // '機' -- '機'
|
||||
FONTDATA_ITEM(213, 162, 162, fontpage_213_162_162), // '檢' -- '檢'
|
||||
FONTDATA_ITEM(214, 226, 227, fontpage_214_226_227), // '止' -- '正'
|
||||
FONTDATA_ITEM(214, 229, 229, fontpage_214_229_229), // '步' -- '步'
|
||||
FONTDATA_ITEM(214, 248, 248, fontpage_214_248_248), // '歸' -- '歸'
|
||||
FONTDATA_ITEM(215, 188, 188, fontpage_215_188_188), // '殼' -- '殼'
|
||||
FONTDATA_ITEM(215, 212, 212, fontpage_215_212_212), // '比' -- '比'
|
||||
FONTDATA_ITEM(217, 146, 146, fontpage_217_146_146), // '沒' -- '沒'
|
||||
FONTDATA_ITEM(219, 136, 136, fontpage_219_136_136), // '消' -- '消'
|
||||
FONTDATA_ITEM(219, 225, 225, fontpage_219_225_225), // '淡' -- '淡'
|
||||
FONTDATA_ITEM(220, 133, 133, fontpage_220_133_133), // '清' -- '清'
|
||||
FONTDATA_ITEM(220, 172, 172, fontpage_220_172_172), // '測' -- '測'
|
||||
FONTDATA_ITEM(221, 144, 144, fontpage_221_144_144), // '源' -- '源'
|
||||
FONTDATA_ITEM(221, 150, 150, fontpage_221_150_150), // '準' -- '準'
|
||||
FONTDATA_ITEM(221, 171, 171, fontpage_221_171_171), // '溫' -- '溫'
|
||||
FONTDATA_ITEM(223, 192, 192, fontpage_223_192_192), // '激' -- '激'
|
||||
FONTDATA_ITEM(226, 161, 161, fontpage_226_161_161), // '無' -- '無'
|
||||
FONTDATA_ITEM(227, 177, 177, fontpage_227_177_177), // '熱' -- '熱'
|
||||
FONTDATA_ITEM(227, 200, 200, fontpage_227_200_200), // '燈' -- '燈'
|
||||
FONTDATA_ITEM(228, 199, 199, fontpage_228_199_199), // '片' -- '片'
|
||||
FONTDATA_ITEM(228, 233, 233, fontpage_228_233_233), // '物' -- '物'
|
||||
FONTDATA_ITEM(231, 135, 135, fontpage_231_135_135), // '率' -- '率'
|
||||
FONTDATA_ITEM(234, 168, 168, fontpage_234_168_168), // '用' -- '用'
|
||||
FONTDATA_ITEM(234, 204, 204, fontpage_234_204_204), // '界' -- '界'
|
||||
FONTDATA_ITEM(236, 253, 253, fontpage_236_253_253), // '白' -- '白'
|
||||
FONTDATA_ITEM(237, 132, 132, fontpage_237_132_132), // '的' -- '的'
|
||||
FONTDATA_ITEM(237, 227, 227, fontpage_237_227_227), // '監' -- '監'
|
||||
FONTDATA_ITEM(237, 244, 244, fontpage_237_244_244), // '直' -- '直'
|
||||
FONTDATA_ITEM(238, 160, 160, fontpage_238_160_160), // '眠' -- '眠'
|
||||
FONTDATA_ITEM(240, 141, 141, fontpage_240_141_141), // '砍' -- '砍'
|
||||
FONTDATA_ITEM(241, 186, 186, fontpage_241_186_186), // '確' -- '確'
|
||||
FONTDATA_ITEM(243, 251, 251, fontpage_243_251_251), // '移' -- '移'
|
||||
FONTDATA_ITEM(244, 205, 205, fontpage_244_205_205), // '積' -- '積'
|
||||
FONTDATA_ITEM(245, 239, 239, fontpage_245_239_239), // '端' -- '端'
|
||||
FONTDATA_ITEM(246, 201, 201, fontpage_246_201_201), // '等' -- '等'
|
||||
FONTDATA_ITEM(247, 161, 161, fontpage_247_161_161), // '管' -- '管'
|
||||
FONTDATA_ITEM(247, 177, 177, fontpage_247_177_177), // '箱' -- '箱'
|
||||
FONTDATA_ITEM(249, 251, 251, fontpage_249_251_251), // '系' -- '系'
|
||||
FONTDATA_ITEM(250, 133, 133, fontpage_250_133_133), // '紅' -- '紅'
|
||||
FONTDATA_ITEM(250, 162, 162, fontpage_250_162_162), // '索' -- '索'
|
||||
FONTDATA_ITEM(250, 171, 171, fontpage_250_171_171), // '紫' -- '紫'
|
||||
FONTDATA_ITEM(250, 176, 176, fontpage_250_176_176), // '細' -- '細'
|
||||
FONTDATA_ITEM(250, 194, 194, fontpage_250_194_194), // '終' -- '終'
|
||||
FONTDATA_ITEM(250, 241, 242, fontpage_250_241_242), // '統' -- '絲'
|
||||
FONTDATA_ITEM(251, 160, 160, fontpage_251_160_160), // '綠' -- '綠'
|
||||
FONTDATA_ITEM(251, 178, 178, fontpage_251_178_178), // '網' -- '網'
|
||||
FONTDATA_ITEM(251, 210, 210, fontpage_251_210_210), // '緒' -- '緒'
|
||||
FONTDATA_ITEM(251, 218, 218, fontpage_251_218_218), // '線' -- '線'
|
||||
FONTDATA_ITEM(251, 232, 232, fontpage_251_232_232), // '編' -- '編'
|
||||
FONTDATA_ITEM(252, 174, 174, fontpage_252_174_174), // '縮' -- '縮'
|
||||
FONTDATA_ITEM(252, 189, 189, fontpage_252_189_189), // '總' -- '總'
|
||||
FONTDATA_ITEM(252, 252, 252, fontpage_252_252_252), // '繼' -- '繼'
|
||||
FONTDATA_ITEM(253, 140, 140, fontpage_253_140_140), // '續' -- '續'
|
||||
FONTDATA_ITEM(253, 162, 162, fontpage_253_162_162), // '红' -- '红'
|
||||
FONTDATA_ITEM(254, 238, 238, fontpage_254_238_238), // '置' -- '置'
|
||||
FONTDATA_ITEM(254, 242, 242, fontpage_254_242_242), // '署' -- '署'
|
||||
FONTDATA_ITEM(256, 240, 240, fontpage_256_240_240), // '聰' -- '聰'
|
||||
FONTDATA_ITEM(259, 234, 234, fontpage_259_234_234), // '自' -- '自'
|
||||
FONTDATA_ITEM(267, 205, 205, fontpage_267_205_205), // '藍' -- '藍'
|
||||
FONTDATA_ITEM(272, 204, 204, fontpage_272_204_204), // '行' -- '行'
|
||||
FONTDATA_ITEM(272, 232, 232, fontpage_272_232_232), // '表' -- '表'
|
||||
FONTDATA_ITEM(273, 171, 171, fontpage_273_171_171), // '被' -- '被'
|
||||
FONTDATA_ITEM(273, 197, 197, fontpage_273_197_197), // '装' -- '装'
|
||||
FONTDATA_ITEM(273, 221, 221, fontpage_273_221_221), // '裝' -- '裝'
|
||||
FONTDATA_ITEM(274, 135, 135, fontpage_274_135_135), // '複' -- '複'
|
||||
FONTDATA_ITEM(275, 210, 210, fontpage_275_210_210), // '角' -- '角'
|
||||
FONTDATA_ITEM(276, 136, 136, fontpage_276_136_136), // '計' -- '計'
|
||||
FONTDATA_ITEM(276, 138, 138, fontpage_276_138_138), // '訊' -- '訊'
|
||||
FONTDATA_ITEM(276, 152, 152, fontpage_276_152_152), // '記' -- '記'
|
||||
FONTDATA_ITEM(276, 173, 173, fontpage_276_173_173), // '設' -- '設'
|
||||
FONTDATA_ITEM(276, 230, 230, fontpage_276_230_230), // '試' -- '試'
|
||||
FONTDATA_ITEM(277, 141, 141, fontpage_277_141_141), // '認' -- '認'
|
||||
FONTDATA_ITEM(277, 164, 164, fontpage_277_164_164), // '誤' -- '誤'
|
||||
FONTDATA_ITEM(277, 191, 191, fontpage_277_191_191), // '調' -- '調'
|
||||
FONTDATA_ITEM(277, 203, 203, fontpage_277_203_203), // '請' -- '請'
|
||||
FONTDATA_ITEM(278, 240, 240, fontpage_278_240_240), // '議' -- '議'
|
||||
FONTDATA_ITEM(279, 128, 128, fontpage_279_128_128), // '讀' -- '讀'
|
||||
FONTDATA_ITEM(279, 138, 138, fontpage_279_138_138), // '變' -- '變'
|
||||
FONTDATA_ITEM(281, 199, 199, fontpage_281_199_199), // '資' -- '資'
|
||||
FONTDATA_ITEM(283, 221, 221, fontpage_283_221_221), // '距' -- '距'
|
||||
FONTDATA_ITEM(285, 202, 202, fontpage_285_202_202), // '車' -- '車'
|
||||
FONTDATA_ITEM(285, 223, 223, fontpage_285_223_223), // '軟' -- '軟'
|
||||
FONTDATA_ITEM(285, 248, 248, fontpage_285_248_248), // '軸' -- '軸'
|
||||
FONTDATA_ITEM(286, 137, 137, fontpage_286_137_137), // '載' -- '載'
|
||||
FONTDATA_ITEM(286, 175, 175, fontpage_286_175_175), // '輯' -- '輯'
|
||||
FONTDATA_ITEM(286, 184, 184, fontpage_286_184_184), // '輸' -- '輸'
|
||||
FONTDATA_ITEM(286, 201, 201, fontpage_286_201_201), // '轉' -- '轉'
|
||||
FONTDATA_ITEM(287, 209, 209, fontpage_287_209_209), // '近' -- '近'
|
||||
FONTDATA_ITEM(287, 212, 212, fontpage_287_212_212), // '返' -- '返'
|
||||
FONTDATA_ITEM(288, 128, 128, fontpage_288_128_128), // '退' -- '退'
|
||||
FONTDATA_ITEM(288, 159, 159, fontpage_288_159_159), // '速' -- '速'
|
||||
FONTDATA_ITEM(288, 163, 163, fontpage_288_163_163), // '連' -- '連'
|
||||
FONTDATA_ITEM(288, 178, 178, fontpage_288_178_178), // '進' -- '進'
|
||||
FONTDATA_ITEM(288, 203, 203, fontpage_288_203_203), // '運' -- '運'
|
||||
FONTDATA_ITEM(288, 212, 212, fontpage_288_212_212), // '達' -- '達'
|
||||
FONTDATA_ITEM(288, 248, 248, fontpage_288_248_248), // '選' -- '選'
|
||||
FONTDATA_ITEM(289, 132, 132, fontpage_289_132_132), // '還' -- '還'
|
||||
FONTDATA_ITEM(289, 138, 138, fontpage_289_138_138), // '邊' -- '邊'
|
||||
FONTDATA_ITEM(289, 232, 232, fontpage_289_232_232), // '部' -- '部'
|
||||
FONTDATA_ITEM(291, 203, 203, fontpage_291_203_203), // '釋' -- '釋'
|
||||
FONTDATA_ITEM(291, 205, 205, fontpage_291_205_205), // '重' -- '重'
|
||||
FONTDATA_ITEM(291, 207, 207, fontpage_291_207_207), // '量' -- '量'
|
||||
FONTDATA_ITEM(291, 221, 221, fontpage_291_221_221), // '針' -- '針'
|
||||
FONTDATA_ITEM(292, 149, 149, fontpage_292_149_149), // '鈕' -- '鈕'
|
||||
FONTDATA_ITEM(294, 175, 175, fontpage_294_175_175), // '錯' -- '錯'
|
||||
FONTDATA_ITEM(294, 245, 245, fontpage_294_245_245), // '鍵' -- '鍵'
|
||||
FONTDATA_ITEM(298, 247, 247, fontpage_298_247_247), // '長' -- '長'
|
||||
FONTDATA_ITEM(299, 137, 137, fontpage_299_137_137), // '閉' -- '閉'
|
||||
FONTDATA_ITEM(299, 139, 139, fontpage_299_139_139), // '開' -- '開'
|
||||
FONTDATA_ITEM(299, 147, 147, fontpage_299_147_147), // '間' -- '間'
|
||||
FONTDATA_ITEM(299, 220, 220, fontpage_299_220_220), // '關' -- '關'
|
||||
FONTDATA_ITEM(300, 205, 205, fontpage_300_205_205), // '降' -- '降'
|
||||
FONTDATA_ITEM(300, 228, 228, fontpage_300_228_228), // '除' -- '除'
|
||||
FONTDATA_ITEM(301, 142, 142, fontpage_301_142_142), // '階' -- '階'
|
||||
FONTDATA_ITEM(301, 217, 217, fontpage_301_217_217), // '雙' -- '雙'
|
||||
FONTDATA_ITEM(301, 226, 226, fontpage_301_226_226), // '離' -- '離'
|
||||
FONTDATA_ITEM(301, 251, 251, fontpage_301_251_251), // '電' -- '電'
|
||||
FONTDATA_ITEM(302, 210, 210, fontpage_302_210_210), // '青' -- '青'
|
||||
FONTDATA_ITEM(302, 222, 222, fontpage_302_222_222), // '非' -- '非'
|
||||
FONTDATA_ITEM(302, 226, 226, fontpage_302_226_226), // '面' -- '面'
|
||||
FONTDATA_ITEM(304, 133, 133, fontpage_304_133_133), // '項' -- '項'
|
||||
FONTDATA_ITEM(304, 144, 144, fontpage_304_144_144), // '預' -- '預'
|
||||
FONTDATA_ITEM(304, 205, 205, fontpage_304_205_205), // '額' -- '額'
|
||||
FONTDATA_ITEM(304, 222, 222, fontpage_304_222_222), // '類' -- '類'
|
||||
FONTDATA_ITEM(305, 168, 168, fontpage_305_168_168), // '風' -- '風'
|
||||
FONTDATA_ITEM(305, 253, 253, fontpage_305_253_253), // '飽' -- '飽'
|
||||
FONTDATA_ITEM(306, 152, 152, fontpage_306_152_152), // '餘' -- '餘'
|
||||
FONTDATA_ITEM(307, 172, 172, fontpage_307_172_172), // '馬' -- '馬'
|
||||
FONTDATA_ITEM(308, 197, 197, fontpage_308_197_197), // '驅' -- '驅'
|
||||
FONTDATA_ITEM(309, 212, 212, fontpage_309_212_212), // '體' -- '體'
|
||||
FONTDATA_ITEM(309, 216, 216, fontpage_309_216_216), // '高' -- '高'
|
||||
FONTDATA_ITEM(317, 195, 195, fontpage_317_195_195), // '黃' -- '黃'
|
||||
FONTDATA_ITEM(317, 222, 222, fontpage_317_222_222), // '點' -- '點'
|
||||
FONTDATA_ITEM(318, 202, 202, fontpage_318_202_202), // '齊' -- '齊'
|
||||
FONTDATA_ITEM(510, 154, 154, fontpage_510_154_154), // ':' -- ':'
|
||||
};
|
||||
|
||||
@@ -79,6 +79,18 @@
|
||||
U8G_CLASS u8g;
|
||||
|
||||
#include LANGUAGE_DATA_INCL(LCD_LANGUAGE)
|
||||
#ifdef LCD_LANGUAGE_2
|
||||
#include LANGUAGE_DATA_INCL(LCD_LANGUAGE_2)
|
||||
#endif
|
||||
#ifdef LCD_LANGUAGE_3
|
||||
#include LANGUAGE_DATA_INCL(LCD_LANGUAGE_3)
|
||||
#endif
|
||||
#ifdef LCD_LANGUAGE_4
|
||||
#include LANGUAGE_DATA_INCL(LCD_LANGUAGE_4)
|
||||
#endif
|
||||
#ifdef LCD_LANGUAGE_5
|
||||
#include LANGUAGE_DATA_INCL(LCD_LANGUAGE_5)
|
||||
#endif
|
||||
|
||||
#if HAS_LCD_CONTRAST
|
||||
|
||||
@@ -293,7 +305,29 @@ void MarlinUI::init_lcd() {
|
||||
TERN_(LCD_SCREEN_ROT_180, u8g.setRot180());
|
||||
TERN_(LCD_SCREEN_ROT_270, u8g.setRot270());
|
||||
|
||||
uxg_SetUtf8Fonts(g_fontinfo, COUNT(g_fontinfo));
|
||||
update_language_font();
|
||||
}
|
||||
|
||||
void MarlinUI::update_language_font() {
|
||||
#if HAS_MULTI_LANGUAGE
|
||||
switch (language) {
|
||||
default: uxg_SetUtf8Fonts(LANG_FONT_INFO(LCD_LANGUAGE), COUNT(LANG_FONT_INFO(LCD_LANGUAGE))); break;
|
||||
#ifdef LCD_LANGUAGE_2
|
||||
case 1: uxg_SetUtf8Fonts(LANG_FONT_INFO(LCD_LANGUAGE_2), COUNT(LANG_FONT_INFO(LCD_LANGUAGE_2))); break;
|
||||
#endif
|
||||
#ifdef LCD_LANGUAGE_3
|
||||
case 2: uxg_SetUtf8Fonts(LANG_FONT_INFO(LCD_LANGUAGE_3), COUNT(LANG_FONT_INFO(LCD_LANGUAGE_3))); break;
|
||||
#endif
|
||||
#ifdef LCD_LANGUAGE_4
|
||||
case 3: uxg_SetUtf8Fonts(LANG_FONT_INFO(LCD_LANGUAGE_4), COUNT(LANG_FONT_INFO(LCD_LANGUAGE_4))); break;
|
||||
#endif
|
||||
#ifdef LCD_LANGUAGE_5
|
||||
case 4: uxg_SetUtf8Fonts(LANG_FONT_INFO(LCD_LANGUAGE_5), COUNT(LANG_FONT_INFO(LCD_LANGUAGE_5))); break;
|
||||
#endif
|
||||
}
|
||||
#else
|
||||
uxg_SetUtf8Fonts(LANG_FONT_INFO(LCD_LANGUAGE), COUNT(LANG_FONT_INFO(LCD_LANGUAGE)));
|
||||
#endif
|
||||
}
|
||||
|
||||
// The kill screen is displayed for unrecoverable conditions
|
||||
|
||||
@@ -57,6 +57,10 @@
|
||||
#include "../../feature/cooler.h"
|
||||
#endif
|
||||
|
||||
#if ENABLED(I2C_AMMETER)
|
||||
#include "../../feature/ammeter.h"
|
||||
#endif
|
||||
|
||||
#if HAS_POWER_MONITOR
|
||||
#include "../../feature/power_monitor.h"
|
||||
#endif
|
||||
|
||||
@@ -35,3 +35,6 @@ int uxg_GetUtf8StrPixelWidth(u8g_t *pu8g, const char *utf8_msg);
|
||||
int uxg_GetUtf8StrPixelWidthP(u8g_t *pu8g, PGM_P utf8_msg);
|
||||
|
||||
#define uxg_GetFont(puxg) ((puxg)->font)
|
||||
|
||||
#define _LANG_FONT_INFO(L) g_fontinfo_##L
|
||||
#define LANG_FONT_INFO(L) _LANG_FONT_INFO(L)
|
||||
|
||||
@@ -87,7 +87,7 @@ void AdvancedSettingsMenu::onRedraw(draw_mode_t what) {
|
||||
.tag(13) .button(BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXT_F(MSG_INTERFACE))
|
||||
.tag(14) .button(BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_RESTORE_DEFAULTS))
|
||||
.colors(action_btn)
|
||||
.tag(1). button( BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK));
|
||||
.tag(1). button( BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXT_F(MSG_BUTTON_DONE));
|
||||
#undef GRID_COLS
|
||||
#undef GRID_ROWS
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ void MainMenu::onRedraw(draw_mode_t what) {
|
||||
.tag(8).button(BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_ADVANCED_SETTINGS))
|
||||
.tag(9).button(BTN_POS(1,9), BTN_SIZE(2,1), GET_TEXT_F(MSG_INFO_MENU))
|
||||
.colors(action_btn)
|
||||
.tag(1).button(BTN_POS(1,10), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK));
|
||||
.tag(1).button(BTN_POS(1,10), BTN_SIZE(2,1), GET_TEXT_F(MSG_BUTTON_DONE));
|
||||
}
|
||||
|
||||
#undef GRID_COLS
|
||||
|
||||
@@ -54,7 +54,7 @@ void TuneMenu::onRedraw(draw_mode_t what) {
|
||||
.enabled(!isPrinting()).tag(5).button(BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(MSG_MOVE_TO_HOME))
|
||||
.enabled(!isPrinting()).tag(6).button(BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_RAISE_PLUNGER))
|
||||
.enabled(!isPrinting()).tag(7).button(BTN_POS(1,7), BTN_SIZE(2,1), GET_TEXT_F(MSG_RELEASE_XY_AXIS))
|
||||
.colors(action_btn) .tag(1).button(BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK));
|
||||
.colors(action_btn) .tag(1).button(BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_BUTTON_DONE));
|
||||
}
|
||||
#undef GRID_COLS
|
||||
#undef GRID_ROWS
|
||||
|
||||
@@ -67,7 +67,7 @@ void AdvancedSettingsMenu::onRedraw(draw_mode_t what) {
|
||||
.tag(10).button(DISPLAY_POS, GET_TEXT_F(MSG_DISPLAY_MENU))
|
||||
.tag(11).button(RESTORE_DEFAULTS_POS, GET_TEXT_F(MSG_RESTORE_DEFAULTS))
|
||||
.colors(action_btn)
|
||||
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BACK));
|
||||
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BUTTON_DONE));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@ void LevelingMenu::onRedraw(draw_mode_t what) {
|
||||
#undef GRID_COLS
|
||||
#define GRID_COLS 3
|
||||
.colors(action_btn)
|
||||
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BACK));
|
||||
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BUTTON_DONE));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -90,7 +90,7 @@ void LoadChocolateScreen::draw_buttons(draw_mode_t what) {
|
||||
cmd.tag(3).button(x, y, h, v, GET_TEXT_F(MSG_FULL_LOAD));
|
||||
|
||||
ui.bounds(POLY(load_screen_back_btn), x, y, h, v);
|
||||
cmd.tag(1).colors(action_btn).button(x, y, h, v, GET_TEXT_F(MSG_BACK));
|
||||
cmd.tag(1).colors(action_btn).button(x, y, h, v, GET_TEXT_F(MSG_BUTTON_DONE));
|
||||
}
|
||||
|
||||
void LoadChocolateScreen::draw_text(draw_mode_t what) {
|
||||
|
||||
@@ -68,7 +68,7 @@ void MainMenu::onRedraw(draw_mode_t what) {
|
||||
.tag(10).button(LEVELING_POS, GET_TEXT_F(MSG_LEVELING))
|
||||
.tag(11).button(ABOUT_PRINTER_POS, GET_TEXT_F(MSG_INFO_MENU))
|
||||
.colors(action_btn)
|
||||
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BACK));
|
||||
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BUTTON_DONE));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ void PreheatMenu::onRedraw(draw_mode_t what) {
|
||||
}
|
||||
#endif
|
||||
cmd.colors(action_btn)
|
||||
.tag(1) .button(BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK));
|
||||
.tag(1) .button(BTN_POS(1,5), BTN_SIZE(2,1), GET_TEXT_F(MSG_BUTTON_DONE));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@ void PreheatTimerScreen::draw_interaction_buttons(draw_mode_t what) {
|
||||
CommandProcessor cmd;
|
||||
cmd.colors(normal_btn)
|
||||
.font(font_medium)
|
||||
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BACK));
|
||||
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BUTTON_DONE));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -94,7 +94,7 @@ void AboutScreen::onRedraw(draw_mode_t) {
|
||||
.tag(2).button(STATS_POS, GET_TEXT_F(MSG_INFO_STATS_MENU));
|
||||
#endif
|
||||
cmd.colors(action_btn)
|
||||
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BACK));
|
||||
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BUTTON_DONE));
|
||||
}
|
||||
|
||||
bool AboutScreen::onTouchEnd(uint8_t tag) {
|
||||
|
||||
@@ -111,7 +111,7 @@ void AdvancedSettingsMenu::onRedraw(draw_mode_t what) {
|
||||
.enabled(ENABLED(BACKLASH_GCODE))
|
||||
.tag(8).button(BACKLASH_POS, GET_TEXT_F(MSG_BACKLASH))
|
||||
.colors(action_btn)
|
||||
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BACK));
|
||||
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BUTTON_DONE));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ BaseNumericAdjustmentScreen::widgets_t::widgets_t(draw_mode_t what) : _what(what
|
||||
#else
|
||||
BTN_POS(15,7), BTN_SIZE(4,1),
|
||||
#endif
|
||||
GET_TEXT_F(MSG_BACK), true, true
|
||||
GET_TEXT_F(MSG_BUTTON_DONE), true, true
|
||||
);
|
||||
|
||||
_line = 1;
|
||||
|
||||
@@ -136,7 +136,7 @@ void BedMeshEditScreen::drawHighlightedPointValue() {
|
||||
if (mydata.highlight.x != NONE)
|
||||
draw_adjuster(cmd, Z_VALUE_POS, 3, getHighlightedValue(), GET_TEXT_F(MSG_UNITS_MM), 4, 3);
|
||||
cmd.colors(mydata.needSave ? normal_btn : action_btn)
|
||||
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BUTTON_BACK))
|
||||
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BUTTON_DONE))
|
||||
.colors(mydata.needSave ? action_btn : normal_btn)
|
||||
.enabled(mydata.needSave)
|
||||
.tag(2).button(SAVE_POS, GET_TEXT_F(MSG_TOUCHMI_SAVE));
|
||||
|
||||
@@ -224,7 +224,7 @@ void ChangeFilamentScreen::onRedraw(draw_mode_t what) {
|
||||
.tag(6) .enabled(t_ok).button (LOAD_MOMN_POS, GET_TEXT_F(MSG_MOMENTARY))
|
||||
.tag(7).TOG_STYLE(tog7).enabled(t_ok).button (UNLD_CONT_POS, GET_TEXT_F(MSG_CONTINUOUS))
|
||||
.tag(8).TOG_STYLE(tog8).enabled(t_ok).button (LOAD_CONT_POS, GET_TEXT_F(MSG_CONTINUOUS))
|
||||
.tag(1).colors(action_btn) .button (BACK_POS, GET_TEXT_F(MSG_BACK));
|
||||
.tag(1).colors(action_btn) .button (BACK_POS, GET_TEXT_F(MSG_BUTTON_DONE));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -135,7 +135,7 @@ void CustomUserMenus::onRedraw(draw_mode_t what) {
|
||||
_USER_ITEM(20)
|
||||
#endif
|
||||
.colors(action_btn)
|
||||
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BACK));
|
||||
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BUTTON_DONE));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -120,7 +120,7 @@ void EndstopStatesScreen::onRedraw(draw_mode_t) {
|
||||
|
||||
cmd.font(font_medium)
|
||||
.colors(action_btn)
|
||||
.tag(1).button(BTN_POS(1,7), BTN_SIZE(6,1), GET_TEXT_F(MSG_BACK));
|
||||
.tag(1).button(BTN_POS(1,7), BTN_SIZE(6,1), GET_TEXT_F(MSG_BUTTON_DONE));
|
||||
#undef GRID_COLS
|
||||
#undef GRID_ROWS
|
||||
}
|
||||
|
||||
@@ -63,7 +63,7 @@ void FilamentMenu::onRedraw(draw_mode_t what) {
|
||||
.enabled(ENABLED(LIN_ADVANCE))
|
||||
.tag(3).button(LIN_ADVANCE_POS, GET_TEXT_F(MSG_LINEAR_ADVANCE))
|
||||
.colors(action_btn)
|
||||
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BACK));
|
||||
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BUTTON_DONE));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -168,7 +168,7 @@ void FilesScreen::drawFooter() {
|
||||
cmd.colors(normal_btn)
|
||||
.font(font_medium)
|
||||
.colors(has_selection ? normal_btn : action_btn)
|
||||
.tag(back_tag).button(BTN_POS(4,y), BTN_SIZE(3,h), GET_TEXT_F(MSG_BACK))
|
||||
.tag(back_tag).button(BTN_POS(4,y), BTN_SIZE(3,h), GET_TEXT_F(MSG_BUTTON_DONE))
|
||||
.enabled(has_selection)
|
||||
.colors(has_selection ? action_btn : normal_btn);
|
||||
|
||||
|
||||
@@ -108,11 +108,11 @@ void InterfaceSettingsScreen::onRedraw(draw_mode_t what) {
|
||||
.colors(normal_btn)
|
||||
.tag(6).button (BTN_POS(1,6), BTN_SIZE(4,1), GET_TEXT_F(MSG_SOUNDS))
|
||||
.colors(action_btn)
|
||||
.tag(1).button (BTN_POS(1,7), BTN_SIZE(4,1), GET_TEXT_F(MSG_BACK));
|
||||
.tag(1).button (BTN_POS(1,7), BTN_SIZE(4,1), GET_TEXT_F(MSG_BUTTON_DONE));
|
||||
#else
|
||||
.tag(6).button (BTN_POS(1,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_SOUNDS))
|
||||
.colors(action_btn)
|
||||
.tag(1).button (BTN_POS(3,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_BACK));
|
||||
.tag(1).button (BTN_POS(3,6), BTN_SIZE(2,1), GET_TEXT_F(MSG_BUTTON_DONE));
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -102,7 +102,7 @@ void InterfaceSoundsScreen::onRedraw(draw_mode_t what) {
|
||||
.tag(5).button (BTN_POS(3,6), BTN_SIZE(2,1), getSoundSelection(PRINTING_FINISHED))
|
||||
.tag(6).button (BTN_POS(3,7), BTN_SIZE(2,1), getSoundSelection(PRINTING_FAILED))
|
||||
.colors(action_btn)
|
||||
.tag(1).button (BTN_POS(1,9), BTN_SIZE(4,1), GET_TEXT_F(MSG_BACK));
|
||||
.tag(1).button (BTN_POS(1,9), BTN_SIZE(4,1), GET_TEXT_F(MSG_BUTTON_DONE));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -96,7 +96,7 @@ void LevelingMenu::onRedraw(draw_mode_t what) {
|
||||
.tag(8).button(BLTOUCH_TEST_POS, GET_TEXT_F(MSG_BLTOUCH_SELFTEST))
|
||||
#endif
|
||||
.colors(action_btn)
|
||||
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BACK));
|
||||
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BUTTON_DONE));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -95,7 +95,7 @@ void MainMenu::onRedraw(draw_mode_t what) {
|
||||
.tag(11).button(CUSTOM_MENU_POS, GET_TEXT_F(MSG_CUSTOM_COMMANDS))
|
||||
#endif
|
||||
.colors(action_btn)
|
||||
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BACK));
|
||||
.tag(1).button(BACK_POS, GET_TEXT_F(MSG_BUTTON_DONE));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ void StatisticsScreen::onRedraw(draw_mode_t what) {
|
||||
if (what & FOREGROUND) {
|
||||
cmd.font(Theme::font_medium)
|
||||
.colors(action_btn)
|
||||
.tag(1).button(BTN_POS(1,7), BTN_SIZE(4,1), GET_TEXT_F(MSG_BACK));
|
||||
.tag(1).button(BTN_POS(1,7), BTN_SIZE(4,1), GET_TEXT_F(MSG_BUTTON_DONE));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -92,7 +92,7 @@ void TuneMenu::onRedraw(draw_mode_t what) {
|
||||
.tag(10).button(CASE_LIGHT_POS, GET_TEXT_F(MSG_CASE_LIGHT))
|
||||
.tag(11).button(ADVANCED_SETTINGS_POS, GET_TEXT_F(MSG_ADVANCED_SETTINGS))
|
||||
.tag(1).colors(action_btn)
|
||||
.button(BACK_POS, GET_TEXT_F(MSG_BACK));
|
||||
.button(BACK_POS, GET_TEXT_F(MSG_BUTTON_DONE));
|
||||
}
|
||||
#undef GRID_COLS
|
||||
#undef GRID_ROWS
|
||||
|
||||
@@ -25,15 +25,10 @@
|
||||
|
||||
#include "draw_ui.h"
|
||||
#include <lv_conf.h>
|
||||
|
||||
#include "tft_lvgl_configuration.h"
|
||||
|
||||
#include "SPI_TFT.h"
|
||||
#include "../../../inc/MarlinConfig.h"
|
||||
|
||||
#if ENABLED(MKS_TEST)
|
||||
#include "mks_hardware_test.h"
|
||||
#endif
|
||||
#include "mks_hardware.h"
|
||||
|
||||
static lv_obj_t *scr;
|
||||
|
||||
|
||||
@@ -39,10 +39,7 @@
|
||||
#include "draw_touch_calibration.h"
|
||||
#endif
|
||||
|
||||
#if ENABLED(MKS_TEST)
|
||||
#include "mks_hardware_test.h"
|
||||
#endif
|
||||
|
||||
#include "mks_hardware.h"
|
||||
#include <stdio.h>
|
||||
|
||||
#define ICON_POS_Y 38
|
||||
@@ -129,7 +126,7 @@ void lv_draw_ready_print() {
|
||||
ZERO(disp_state_stack._disp_state);
|
||||
scr = lv_screen_create(PRINT_READY_UI, "");
|
||||
|
||||
if (mks_test_flag == 0x1E) {
|
||||
if (TERN0(SDSUPPORT, mks_test_flag == 0x1E)) {
|
||||
// Create image buttons
|
||||
buttonTool = lv_imgbtn_create(scr, "F:/bmp_tool.bin", event_handler, ID_TOOL);
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
#endif
|
||||
|
||||
#if ENABLED(MKS_TEST)
|
||||
#include "mks_hardware_test.h"
|
||||
#include "mks_hardware.h"
|
||||
#endif
|
||||
|
||||
CFG_ITMES gCfgItems;
|
||||
@@ -1366,7 +1366,7 @@ void print_time_count() {
|
||||
void LV_TASK_HANDLER() {
|
||||
lv_task_handler();
|
||||
|
||||
#if ENABLED(MKS_TEST)
|
||||
#if BOTH(MKS_TEST, SDSUPPORT)
|
||||
if (mks_test_flag == 0x1E) mks_hardware_test();
|
||||
#endif
|
||||
|
||||
|
||||
+3
-4
@@ -37,7 +37,7 @@
|
||||
|
||||
#if ENABLED(MKS_TEST)
|
||||
|
||||
#include "mks_hardware_test.h"
|
||||
#include "mks_hardware.h"
|
||||
|
||||
bool pw_det_sta, pw_off_sta, mt_det_sta;
|
||||
#if PIN_EXISTS(MT_DET_2)
|
||||
@@ -613,10 +613,9 @@ void disp_assets_update_progress(const char *msg) {
|
||||
disp_string(100, 165, buf, 0xFFFF, 0x0000);
|
||||
}
|
||||
|
||||
uint8_t mks_test_flag = 0;
|
||||
const char *MKSTestPath = "MKS_TEST";
|
||||
|
||||
#if ENABLED(SDSUPPORT)
|
||||
uint8_t mks_test_flag = 0;
|
||||
const char *MKSTestPath = "MKS_TEST";
|
||||
void mks_test_get() {
|
||||
SdFile dir, root = card.getroot();
|
||||
if (dir.open(&root, MKSTestPath, O_RDONLY))
|
||||
+12
-5
@@ -21,15 +21,22 @@
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../../../inc/MarlinConfigPre.h"
|
||||
|
||||
#include <lvgl.h>
|
||||
|
||||
void mks_gpio_test();
|
||||
void mks_hardware_test();
|
||||
void mks_test_get();
|
||||
// Functions for MKS_TEST
|
||||
#if ENABLED(MKS_TEST)
|
||||
void mks_gpio_test();
|
||||
void mks_hardware_test();
|
||||
void mks_test_get();
|
||||
#endif
|
||||
|
||||
void disp_char_1624(uint16_t x, uint16_t y, uint8_t c, uint16_t charColor, uint16_t bkColor);
|
||||
// String display and assets
|
||||
void disp_string(uint16_t x, uint16_t y, const char * string, uint16_t charColor, uint16_t bkColor);
|
||||
void disp_assets_update();
|
||||
void disp_assets_update_progress(const char *msg);
|
||||
|
||||
extern uint8_t mks_test_flag;
|
||||
#if ENABLED(SDSUPPORT)
|
||||
extern uint8_t mks_test_flag;
|
||||
#endif
|
||||
@@ -27,14 +27,9 @@
|
||||
#include "draw_ui.h"
|
||||
#include "pic_manager.h"
|
||||
#include "draw_ready_print.h"
|
||||
|
||||
#if ENABLED(MKS_TEST)
|
||||
#include "mks_hardware_test.h"
|
||||
#endif
|
||||
|
||||
#include "mks_hardware.h"
|
||||
#include "SPIFlashStorage.h"
|
||||
#include "../../../libs/W25Qxx.h"
|
||||
|
||||
#include "../../../sd/cardreader.h"
|
||||
#include "../../../MarlinCore.h"
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
#include "draw_ready_print.h"
|
||||
|
||||
#include "pic_manager.h"
|
||||
#include "mks_hardware_test.h"
|
||||
#include "mks_hardware.h"
|
||||
#include "draw_ui.h"
|
||||
#include "SPIFlashStorage.h"
|
||||
#include <lvgl.h>
|
||||
@@ -231,7 +231,7 @@ void tft_lvgl_init() {
|
||||
|
||||
if (ready) lv_draw_ready_print();
|
||||
|
||||
#if ENABLED(MKS_TEST)
|
||||
#if BOTH(MKS_TEST, SDSUPPORT)
|
||||
if (mks_test_flag == 0x1E) mks_gpio_test();
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace Language_zh_CN {
|
||||
using namespace Language_en; // Inherit undefined strings from English
|
||||
|
||||
constexpr uint8_t CHARSIZE = 3;
|
||||
PROGMEM Language_Str LANGUAGE = _UxGT("简体中文");
|
||||
PROGMEM Language_Str LANGUAGE = _UxGT("Simplified Chinese");
|
||||
|
||||
PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT("已就绪."); //" ready."
|
||||
PROGMEM Language_Str MSG_MARLIN = _UxGT("马林");
|
||||
|
||||
@@ -88,6 +88,14 @@ constexpr uint8_t epps = ENCODER_PULSES_PER_STEP;
|
||||
|
||||
#if HAS_MULTI_LANGUAGE
|
||||
uint8_t MarlinUI::language; // Initialized by settings.load()
|
||||
void MarlinUI::set_language(const uint8_t lang) {
|
||||
if (lang < NUM_LANGUAGES) {
|
||||
language = lang;
|
||||
TERN_(HAS_MARLINUI_U8GLIB, update_language_font());
|
||||
return_to_status();
|
||||
refresh();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#if ENABLED(SOUND_MENU_ITEM)
|
||||
|
||||
@@ -200,13 +200,11 @@ public:
|
||||
|
||||
#if HAS_MULTI_LANGUAGE
|
||||
static uint8_t language;
|
||||
static inline void set_language(const uint8_t lang) {
|
||||
if (lang < NUM_LANGUAGES) {
|
||||
language = lang;
|
||||
return_to_status();
|
||||
refresh();
|
||||
}
|
||||
}
|
||||
static void set_language(const uint8_t lang);
|
||||
#endif
|
||||
|
||||
#if HAS_MARLINUI_U8GLIB
|
||||
static void update_language_font();
|
||||
#endif
|
||||
|
||||
#if ENABLED(SOUND_MENU_ITEM)
|
||||
|
||||
@@ -211,7 +211,7 @@ void menu_change_filament() {
|
||||
if (thermalManager.targetHotEnoughToExtrude(active_extruder))
|
||||
queue.inject_P(PSTR("M600B0"));
|
||||
else
|
||||
_menu_temp_filament_op(PAUSE_MODE_CHANGE_FILAMENT, 0);
|
||||
ui.goto_screen([]{ _menu_temp_filament_op(PAUSE_MODE_CHANGE_FILAMENT, 0); });
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -128,6 +128,8 @@
|
||||
#define THERMISTOR_NAME "Pt100 1K"
|
||||
#elif THERMISTOR_ID == 666
|
||||
#define THERMISTOR_NAME "Einstart S"
|
||||
#elif THERMISTOR_ID == 2000
|
||||
#define THERMISTOR_NAME "TDK NTCG104LH104JT1"
|
||||
|
||||
// High Temperature thermistors
|
||||
#elif THERMISTOR_ID == 61
|
||||
|
||||
@@ -107,6 +107,24 @@
|
||||
#if (TEMP_SENSOR_0_USES_SW_SPI || TEMP_SENSOR_1_USES_SW_SPI) && !HAS_MAXTC_LIBRARIES
|
||||
#include "../libs/private_spi.h"
|
||||
#define HAS_MAXTC_SW_SPI 1
|
||||
|
||||
// Define pins for SPI-based sensors
|
||||
#if TEMP_SENSOR_0_USES_SW_SPI
|
||||
#define SW_SPI_SCK_PIN TEMP_0_SCK_PIN
|
||||
#define SW_SPI_MISO_PIN TEMP_0_MISO_PIN
|
||||
#if PIN_EXISTS(TEMP_0_MOSI)
|
||||
#define SW_SPI_MOSI_PIN TEMP_0_MOSI_PIN
|
||||
#endif
|
||||
#else
|
||||
#define SW_SPI_SCK_PIN TEMP_1_SCK_PIN
|
||||
#define SW_SPI_MISO_PIN TEMP_1_MISO_PIN
|
||||
#if PIN_EXISTS(TEMP_1_MOSI)
|
||||
#define SW_SPI_MOSI_PIN TEMP_1_MOSI_PIN
|
||||
#endif
|
||||
#endif
|
||||
#ifndef SW_SPI_MOSI_PIN
|
||||
#define SW_SPI_MOSI_PIN SD_MOSI_PIN
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if ENABLED(PID_EXTRUSION_SCALING)
|
||||
@@ -198,7 +216,8 @@ const char str_t_thermal_runaway[] PROGMEM = STR_T_THERMAL_RUNAWAY,
|
||||
// Initialize SoftSPI for non-lib Software SPI; Libraries take care of it themselves.
|
||||
template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin>
|
||||
SoftSPI<MisoPin, MosiPin, SckPin> SPIclass<MisoPin, MosiPin, SckPin>::softSPI;
|
||||
SPIclass<TEMP_0_MISO_PIN, TEMP_0_MOSI_PIN, TEMP_0_SCK_PIN> max_tc_spi;
|
||||
SPIclass<SW_SPI_MISO_PIN, SW_SPI_MOSI_PIN, SW_SPI_SCK_PIN> max_tc_spi;
|
||||
|
||||
#endif
|
||||
|
||||
#define MAXTC_INIT(n, M) \
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
// R25 = 100 KOhm, beta25 = 4550 K, 4.7 kOhm pull-up, TDK NTCG104LH104KT1 https://product.tdk.com/en/search/sensor/ntc/chip-ntc-thermistor/info?part_no=NTCG104LH104KT1
|
||||
constexpr temp_entry_t temptable_2000[] PROGMEM = {
|
||||
{ OV(313), 125 },
|
||||
{ OV(347), 120 },
|
||||
{ OV(383), 115 },
|
||||
{ OV(422), 110 },
|
||||
{ OV(463), 105 },
|
||||
{ OV(506), 100 },
|
||||
{ OV(549), 95 },
|
||||
{ OV(594), 90 },
|
||||
{ OV(638), 85 },
|
||||
{ OV(681), 80 },
|
||||
{ OV(722), 75 },
|
||||
{ OV(762), 70 },
|
||||
{ OV(799), 65 },
|
||||
{ OV(833), 60 },
|
||||
{ OV(863), 55 },
|
||||
{ OV(890), 50 },
|
||||
{ OV(914), 45 },
|
||||
{ OV(934), 40 },
|
||||
{ OV(951), 35 },
|
||||
{ OV(966), 30 },
|
||||
{ OV(978), 25 },
|
||||
{ OV(988), 20 },
|
||||
{ OV(996), 15 },
|
||||
{ OV(1002), 10 },
|
||||
{ OV(1007), 5 },
|
||||
{ OV(1012), 0 },
|
||||
{ OV(1015), -5 },
|
||||
{ OV(1017), -10 },
|
||||
{ OV(1019), -15 },
|
||||
{ OV(1020), -20 },
|
||||
{ OV(1021), -25 },
|
||||
{ OV(1022), -30 },
|
||||
{ OV(1023), -35 },
|
||||
{ OV(1023), -40 }
|
||||
};
|
||||
@@ -201,6 +201,9 @@ typedef struct { int16_t value; celsius_t celsius; } temp_entry_t;
|
||||
#if ANY_THERMISTOR_IS(1047) // Pt1000 with 4k7 pullup
|
||||
#include "thermistor_1047.h"
|
||||
#endif
|
||||
#if ANY_THERMISTOR_IS(2000) // "Ultimachine Rambo TDK NTCG104LH104KT1 NTC100K motherboard Thermistor" https://product.tdk.com/en/search/sensor/ntc/chip-ntc-thermistor/info?part_no=NTCG104LH104KT1
|
||||
#include "thermistor_2000.h"
|
||||
#endif
|
||||
#if ANY_THERMISTOR_IS(998) // User-defined table 1
|
||||
#include "thermistor_998.h"
|
||||
#endif
|
||||
|
||||
+16
-16
@@ -486,17 +486,17 @@
|
||||
#elif MB(MKS_ROBIN)
|
||||
#include "stm32f1/pins_MKS_ROBIN.h" // STM32F1 env:mks_robin env:mks_robin_maple
|
||||
#elif MB(MKS_ROBIN_MINI)
|
||||
#include "stm32f1/pins_MKS_ROBIN_MINI.h" // STM32F1 env:mks_robin_mini
|
||||
#include "stm32f1/pins_MKS_ROBIN_MINI.h" // STM32F1 env:mks_robin_mini env:mks_robin_mini_maple
|
||||
#elif MB(MKS_ROBIN_NANO)
|
||||
#include "stm32f1/pins_MKS_ROBIN_NANO.h" // STM32F1 env:mks_robin_nano35 env:mks_robin_nano35_maple
|
||||
#elif MB(MKS_ROBIN_NANO_V2)
|
||||
#include "stm32f1/pins_MKS_ROBIN_NANO_V2.h" // STM32F1 env:mks_robin_nano35 env:mks_robin_nano35_maple
|
||||
#elif MB(MKS_ROBIN_LITE)
|
||||
#include "stm32f1/pins_MKS_ROBIN_LITE.h" // STM32F1 env:mks_robin_lite
|
||||
#include "stm32f1/pins_MKS_ROBIN_LITE.h" // STM32F1 env:mks_robin_lite env:mks_robin_lite_maple
|
||||
#elif MB(MKS_ROBIN_LITE3)
|
||||
#include "stm32f1/pins_MKS_ROBIN_LITE3.h" // STM32F1 env:mks_robin_lite3
|
||||
#include "stm32f1/pins_MKS_ROBIN_LITE3.h" // STM32F1 env:mks_robin_lite3 env:mks_robin_lite3_maple
|
||||
#elif MB(MKS_ROBIN_PRO)
|
||||
#include "stm32f1/pins_MKS_ROBIN_PRO.h" // STM32F1 env:mks_robin_pro
|
||||
#include "stm32f1/pins_MKS_ROBIN_PRO.h" // STM32F1 env:mks_robin_pro env:mks_robin_pro_maple
|
||||
#elif MB(MKS_ROBIN_E3)
|
||||
#include "stm32f1/pins_MKS_ROBIN_E3.h" // STM32F1 env:mks_robin_e3 env:mks_robin_e3_maple
|
||||
#elif MB(MKS_ROBIN_E3_V1_1)
|
||||
@@ -506,7 +506,7 @@
|
||||
#elif MB(MKS_ROBIN_E3D_V1_1)
|
||||
#include "stm32f1/pins_MKS_ROBIN_E3D_V1_1.h" // STM32F1 env:mks_robin_e3
|
||||
#elif MB(MKS_ROBIN_E3P)
|
||||
#include "stm32f1/pins_MKS_ROBIN_E3P.h" // STM32F1 env:mks_robin_e3p
|
||||
#include "stm32f1/pins_MKS_ROBIN_E3P.h" // STM32F1 env:mks_robin_e3p env:mks_robin_e3p_maple
|
||||
#elif MB(BTT_SKR_MINI_V1_1)
|
||||
#include "stm32f1/pins_BTT_SKR_MINI_V1_1.h" // STM32F1 env:STM32F103RC_btt env:STM32F103RC_btt_USB env:STM32F103RC_btt_maple env:STM32F103RC_btt_USB_maple
|
||||
#elif MB(BTT_SKR_MINI_E3_V1_0)
|
||||
@@ -522,21 +522,21 @@
|
||||
#elif MB(BTT_SKR_CR6)
|
||||
#include "stm32f1/pins_BTT_SKR_CR6.h" // STM32F1 env:STM32F103RE_btt env:STM32F103RE_btt_USB env:STM32F103RE_btt_maple env:STM32F103RE_btt_USB_maple
|
||||
#elif MB(JGAURORA_A5S_A1)
|
||||
#include "stm32f1/pins_JGAURORA_A5S_A1.h" // STM32F1 env:jgaurora_a5s_a1
|
||||
#include "stm32f1/pins_JGAURORA_A5S_A1.h" // STM32F1 env:jgaurora_a5s_a1 env:jgaurora_a5s_a1_maple
|
||||
#elif MB(FYSETC_AIO_II)
|
||||
#include "stm32f1/pins_FYSETC_AIO_II.h" // STM32F1 env:STM32F103RC_fysetc
|
||||
#include "stm32f1/pins_FYSETC_AIO_II.h" // STM32F1 env:STM32F103RC_fysetc env:STM32F103RC_fysetc_maple
|
||||
#elif MB(FYSETC_CHEETAH)
|
||||
#include "stm32f1/pins_FYSETC_CHEETAH.h" // STM32F1 env:STM32F103RC_fysetc
|
||||
#include "stm32f1/pins_FYSETC_CHEETAH.h" // STM32F1 env:STM32F103RC_fysetc env:STM32F103RC_fysetc_maple
|
||||
#elif MB(FYSETC_CHEETAH_V12)
|
||||
#include "stm32f1/pins_FYSETC_CHEETAH_V12.h" // STM32F1 env:STM32F103RC_fysetc
|
||||
#include "stm32f1/pins_FYSETC_CHEETAH_V12.h" // STM32F1 env:STM32F103RC_fysetc env:STM32F103RC_fysetc_maple
|
||||
#elif MB(LONGER3D_LK)
|
||||
#include "stm32f1/pins_LONGER3D_LK.h" // STM32F1 env:STM32F103VE_longer
|
||||
#include "stm32f1/pins_LONGER3D_LK.h" // STM32F1 env:STM32F103VE_longer env:STM32F103VE_longer_maple
|
||||
#elif MB(CCROBOT_MEEB_3DP)
|
||||
#include "stm32f1/pins_CCROBOT_MEEB_3DP.h" // STM32F1 env:STM32F103RC_meeb
|
||||
#elif MB(CHITU3D_V5)
|
||||
#include "stm32f1/pins_CHITU3D_V5.h" // STM32F1 env:chitu_f103 env:chitu_v5_gpio_init
|
||||
#include "stm32f1/pins_CHITU3D_V5.h" // STM32F1 env:chitu_f103 env:chitu_f103_maple env:chitu_v5_gpio_init env:chitu_v5_gpio_init_maple
|
||||
#elif MB(CHITU3D_V6)
|
||||
#include "stm32f1/pins_CHITU3D_V6.h" // STM32F1 env:chitu_f103
|
||||
#include "stm32f1/pins_CHITU3D_V6.h" // STM32F1 env:chitu_f103 env:chitu_f103_maple
|
||||
#elif MB(CREALITY_V4)
|
||||
#include "stm32f1/pins_CREALITY_V4.h" // STM32F1 env:STM32F103RET6_creality env:STM32F103RET6_creality_maple
|
||||
#elif MB(CREALITY_V4210)
|
||||
@@ -550,9 +550,9 @@
|
||||
#elif MB(CREALITY_V453)
|
||||
#include "stm32f1/pins_CREALITY_V453.h" // STM32F1 env:STM32F103RET6_creality env:STM32F103RET6_creality_maple
|
||||
#elif MB(TRIGORILLA_PRO)
|
||||
#include "stm32f1/pins_TRIGORILLA_PRO.h" // STM32F1 env:trigorilla_pro
|
||||
#include "stm32f1/pins_TRIGORILLA_PRO.h" // STM32F1 env:trigorilla_pro env:trigorilla_pro_maple
|
||||
#elif MB(FLY_MINI)
|
||||
#include "stm32f1/pins_FLY_MINI.h" // STM32F1 env:FLY_MINI
|
||||
#include "stm32f1/pins_FLY_MINI.h" // STM32F1 env:FLY_MINI env:FLY_MINI_maple
|
||||
#elif MB(FLSUN_HISPEED)
|
||||
#include "stm32f1/pins_FLSUN_HISPEED.h" // STM32F1 env:flsun_hispeedv1
|
||||
#elif MB(BEAST)
|
||||
@@ -594,9 +594,9 @@
|
||||
#elif MB(BTT_E3_RRF)
|
||||
#include "stm32f4/pins_BTT_E3_RRF.h" // STM32F4 env:BIGTREE_E3_RRF
|
||||
#elif MB(BTT_SKR_V2_0_REV_A)
|
||||
#include "stm32f4/pins_BTT_SKR_V2_0_REV_A.h" // STM32F4 env:BIGTREE_SKR_2
|
||||
#include "stm32f4/pins_BTT_SKR_V2_0_REV_A.h" // STM32F4 env:BIGTREE_SKR_2 env:BIGTREE_SKR_2_USB
|
||||
#elif MB(BTT_SKR_V2_0_REV_B)
|
||||
#include "stm32f4/pins_BTT_SKR_V2_0_REV_B.h" // STM32F4 env:BIGTREE_SKR_2
|
||||
#include "stm32f4/pins_BTT_SKR_V2_0_REV_B.h" // STM32F4 env:BIGTREE_SKR_2 env:BIGTREE_SKR_2_USB
|
||||
#elif MB(BTT_OCTOPUS_V1_0)
|
||||
#include "stm32f4/pins_BTT_OCTOPUS_V1_0.h" // STM32F4 env:BIGTREE_OCTOPUS_V1 env:BIGTREE_OCTOPUS_V1_USB
|
||||
#elif MB(BTT_OCTOPUS_V1_1)
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
//
|
||||
#define TEMP_0_PIN 0 // Analog Input, Header J2
|
||||
#define TEMP_1_PIN 1 // Analog Input, Header J3
|
||||
#define TEMP_BOARD_PIN TEMP_1_PIN // Analog Input, Header J3
|
||||
#define TEMP_BOARD_PIN 91 // Onboard thermistor, 100k TDK NTCG104LH104JT1
|
||||
#define TEMP_BED_PIN 2 // Analog Input, Header J6
|
||||
#define TEMP_PROBE_PIN 3 // Analog Input, Header J15
|
||||
|
||||
|
||||
@@ -117,13 +117,9 @@
|
||||
#define W25QXX_SCK_PIN PB13
|
||||
|
||||
//
|
||||
// TronXY TFT Support
|
||||
// TFT with FSMC interface
|
||||
//
|
||||
|
||||
#if HAS_FSMC_TFT
|
||||
|
||||
// Shared FSMC
|
||||
|
||||
#define TOUCH_CS_PIN PB7 // SPI1_NSS
|
||||
#define TOUCH_SCK_PIN PA5 // SPI1_SCK
|
||||
#define TOUCH_MISO_PIN PA6 // SPI1_MISO
|
||||
@@ -138,6 +134,8 @@
|
||||
#define FSMC_DMA_DEV DMA2
|
||||
#define FSMC_DMA_CHANNEL DMA_CH5
|
||||
|
||||
#define TFT_CS_PIN FSMC_CS_PIN
|
||||
#define TFT_RS_PIN FSMC_RS_PIN
|
||||
#endif
|
||||
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user