feat: 温度传感器接入并使用屏幕显示。
This commit is contained in:
parent
88655e73e8
commit
4b538832c9
5
.vscode/settings.json
vendored
5
.vscode/settings.json
vendored
@ -42,6 +42,9 @@
|
|||||||
"vector": "c",
|
"vector": "c",
|
||||||
"freertos.h": "c",
|
"freertos.h": "c",
|
||||||
"task.h": "c",
|
"task.h": "c",
|
||||||
"led_strip.h": "c"
|
"led_strip.h": "c",
|
||||||
|
"esp_event.h": "c",
|
||||||
|
"string.h": "c",
|
||||||
|
"i2c.h": "c"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
idf_component_register(SRCS "ui.c" "mqtt.c" "main.c" "wifi.c" "light.c" "mqtt.c"
|
idf_component_register(SRCS "temperature.c" "embedded_display.c" "ui.c" "mqtt.c" "main.c" "wifi.c" "light.c" "mqtt.c"
|
||||||
INCLUDE_DIRS ".")
|
INCLUDE_DIRS ".")
|
@ -64,7 +64,7 @@ menu "MQTT Configuration"
|
|||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
menu "GPIO Configuration"
|
menu "Encoder Configuration"
|
||||||
config ENCODER_0_CLK_PIN
|
config ENCODER_0_CLK_PIN
|
||||||
int "encoder 0 click GPIO"
|
int "encoder 0 click GPIO"
|
||||||
range 1 32
|
range 1 32
|
||||||
@ -104,3 +104,24 @@ menu "GPIO Configuration"
|
|||||||
Encoder 1 switch pin
|
Encoder 1 switch pin
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
menu "I2C Configuration"
|
||||||
|
config I2C_SCL
|
||||||
|
int "I2C SCL GPIO"
|
||||||
|
range 1 32
|
||||||
|
default 8
|
||||||
|
help
|
||||||
|
I2C SCL GPIO
|
||||||
|
config I2C_SDA
|
||||||
|
int "I2C SDA GPIO"
|
||||||
|
range 1 32
|
||||||
|
default 10
|
||||||
|
help
|
||||||
|
I2C SDA GPIO
|
||||||
|
config I2C_NUM
|
||||||
|
int "I2C NUM"
|
||||||
|
range 0 1
|
||||||
|
default 0
|
||||||
|
help
|
||||||
|
I2C NUM
|
||||||
|
endmenu
|
614
main/codetab.h
Normal file
614
main/codetab.h
Normal file
@ -0,0 +1,614 @@
|
|||||||
|
/************************************************************************************
|
||||||
|
* Copyright (c), 2013, HelTec Automatic Technology co.,LTD.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Http: www.heltec.cn
|
||||||
|
* Email: cn.heltec@gmail.com
|
||||||
|
* WebShop: shop105719768.taobao.com
|
||||||
|
*
|
||||||
|
* File name: codetab.h
|
||||||
|
* Project : OLED
|
||||||
|
* Processor: STC89C52
|
||||||
|
* Compiler : Keil C51 Compiler
|
||||||
|
*
|
||||||
|
* Author : 小林
|
||||||
|
* Version: 1.00
|
||||||
|
* Date : 2013.8.8
|
||||||
|
* Email : hello14blog@gmail.com
|
||||||
|
* Modification: none
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* 1. 128*64点整OLED模块功能演示程序的字表,仅适用heltec.taobao.com所售产品;
|
||||||
|
* 2. 字表由打包资料中的“取字软件”计算得出;
|
||||||
|
* 3. 取字方式 -- 共阴、列行式、逆向输出
|
||||||
|
*
|
||||||
|
* Others: none;
|
||||||
|
*
|
||||||
|
* Function List:
|
||||||
|
*
|
||||||
|
* 1. void delay(unsigned int z) -- 主函数中用于调整显示效果的延时函数,STC89C52
|
||||||
|
*12MHZ z=1时大约延时1ms,其他频率需要自己计算
|
||||||
|
* 2. void main(void) -- 主函数
|
||||||
|
*
|
||||||
|
* History: none;
|
||||||
|
*
|
||||||
|
*************************************************************************************/
|
||||||
|
|
||||||
|
// #include "reg52.h"
|
||||||
|
/***************************16*16的点阵字体取模方式:共阴——列行式——逆向输出*********/
|
||||||
|
uint8_t F16x16[] = {
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, /*" ",0*/
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, /*" ",0*/
|
||||||
|
|
||||||
|
0x00, 0x02, 0x02, 0xFA, 0xFA, 0xAA, 0xAA, 0xFF, 0xFF, 0xAA, 0xAA,
|
||||||
|
0xFA, 0xFA, 0x02, 0x02, 0x00, 0x00, 0x42, 0x72, 0x72, 0x3A, 0x7A,
|
||||||
|
0x42, 0x4B, 0x5B, 0x52, 0x62, 0x62, 0x13, 0x77, 0x66, 0x00, /*"惠",1*/
|
||||||
|
|
||||||
|
0x20, 0x3C, 0x1C, 0xFF, 0xFF, 0xB0, 0xB4, 0x24, 0x24, 0x3F, 0x3F,
|
||||||
|
0xE4, 0xE4, 0x24, 0x24, 0x20, 0x02, 0x02, 0x03, 0xFF, 0xFF, 0x00,
|
||||||
|
0x01, 0x05, 0x1D, 0x59, 0xC1, 0xFF, 0x7F, 0x01, 0x01, 0x01, /*"特",2*/
|
||||||
|
|
||||||
|
0x00, 0x00, 0x00, 0xF8, 0xF8, 0x48, 0x4C, 0x4F, 0x4B, 0x4A, 0x48,
|
||||||
|
0x48, 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x44,
|
||||||
|
0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0xFF, 0xFF, 0x00, 0x00, /*"自",3*/
|
||||||
|
|
||||||
|
0x20, 0x24, 0x24, 0xE4, 0xE4, 0x24, 0x24, 0x24, 0x30, 0x10, 0xFF,
|
||||||
|
0xFF, 0x10, 0xF0, 0xF0, 0x00, 0x08, 0x1C, 0x1F, 0x0B, 0x0C, 0x0D,
|
||||||
|
0x4F, 0x6E, 0x34, 0x1C, 0x0F, 0x23, 0x60, 0x7F, 0x3F, 0x00, /*"动",4*/
|
||||||
|
|
||||||
|
0x80, 0xC0, 0x60, 0xF8, 0xFF, 0x07, 0x02, 0x00, 0xFF, 0xFF, 0xE0,
|
||||||
|
0x70, 0x3C, 0x1C, 0x08, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x04,
|
||||||
|
0x06, 0x03, 0x3F, 0x7F, 0x40, 0x40, 0x40, 0x78, 0x78, 0x00, /*"化",5*/
|
||||||
|
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, /*" ",6*/
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, /*" ",6*/
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, /*" ",7*/
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, /*" ",7*/
|
||||||
|
|
||||||
|
0x10, 0x21, 0x86, 0x70, 0x00, 0x7E, 0x4A, 0x4A, 0x4A, 0x4A, 0x4A,
|
||||||
|
0x7E, 0x00, 0x00, 0x00, 0x00, 0x02, 0xFE, 0x01, 0x40, 0x7F, 0x41,
|
||||||
|
0x41, 0x7F, 0x41, 0x41, 0x7F, 0x41, 0x41, 0x7F, 0x40, 0x00, /*"温",8*/
|
||||||
|
0x00, 0x00, 0xFC, 0x04, 0x24, 0x24, 0xFC, 0xA5, 0xA6, 0xA4, 0xFC,
|
||||||
|
0x24, 0x24, 0x24, 0x04, 0x00, 0x80, 0x60, 0x1F, 0x80, 0x80, 0x42,
|
||||||
|
0x46, 0x2A, 0x12, 0x12, 0x2A, 0x26, 0x42, 0xC0, 0x40, 0x00, /*"度",9*/
|
||||||
|
0x08, 0x08, 0x08, 0xFF, 0x88, 0x48, 0x00, 0x98, 0x48, 0x28, 0x0A,
|
||||||
|
0x2C, 0x48, 0xD8, 0x08, 0x00, 0x02, 0x42, 0x81, 0x7F, 0x00, 0x00,
|
||||||
|
0x40, 0x42, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x40, 0x00, /*"控",10*/
|
||||||
|
0x00, 0x50, 0x4F, 0x4A, 0x48, 0xFF, 0x48, 0x48, 0x48, 0x00, 0xFC,
|
||||||
|
0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x01, 0x01, 0xFF,
|
||||||
|
0x21, 0x61, 0x3F, 0x00, 0x0F, 0x40, 0x80, 0x7F, 0x00, 0x00, /*"制",11*/
|
||||||
|
0x00, 0x90, 0x8C, 0xA4, 0xA4, 0xA4, 0xA5, 0xA6, 0xA4, 0xA4, 0xA4,
|
||||||
|
0xA4, 0x94, 0x8C, 0x04, 0x00, 0x00, 0x80, 0x40, 0x20, 0x18, 0x07,
|
||||||
|
0x00, 0x00, 0x00, 0x3F, 0x40, 0x40, 0x40, 0x70, 0x00, 0x00, /*"完",12*/
|
||||||
|
0x00, 0x04, 0x74, 0xD4, 0xFF, 0xD4, 0x74, 0x04, 0x10, 0x0C, 0xB7,
|
||||||
|
0x44, 0xB4, 0x0C, 0x04, 0x00, 0x00, 0x42, 0x43, 0x7A, 0x43, 0x42,
|
||||||
|
0x43, 0x7E, 0x4B, 0x4B, 0x4A, 0x4A, 0x42, 0x43, 0x01, 0x00, /*"整",13*/
|
||||||
|
0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xF9, 0x4A, 0x4C, 0x48, 0x48,
|
||||||
|
0xC8, 0x08, 0x08, 0x08, 0x00, 0x40, 0x40, 0x20, 0x10, 0x0C, 0x03,
|
||||||
|
0x00, 0x00, 0x20, 0x40, 0x40, 0x3F, 0x00, 0x00, 0x00, 0x00, /*"方",14*/
|
||||||
|
0x00, 0x20, 0x2C, 0x24, 0x64, 0x74, 0xAD, 0xA6, 0xE4, 0x34, 0x24,
|
||||||
|
0x24, 0x2C, 0x24, 0x00, 0x00, 0x00, 0x24, 0x24, 0x25, 0x15, 0x15,
|
||||||
|
0x0D, 0xFE, 0x04, 0x0D, 0x17, 0x14, 0x24, 0x64, 0x24, 0x00, /*"案",15*/
|
||||||
|
|
||||||
|
0x00, 0x00, 0x00, 0xF8, 0x48, 0x48, 0x4C, 0x4B, 0x4A, 0x48, 0x48,
|
||||||
|
0x48, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x44, 0x44,
|
||||||
|
0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0xFF, 0x00, 0x00, 0x00, /*"自",16*/
|
||||||
|
0x20, 0x24, 0x24, 0xE4, 0x24, 0x24, 0x24, 0x20, 0x10, 0x10, 0xFF,
|
||||||
|
0x10, 0x10, 0xF0, 0x00, 0x00, 0x08, 0x1C, 0x0B, 0x08, 0x0C, 0x05,
|
||||||
|
0x4E, 0x24, 0x10, 0x0C, 0x03, 0x20, 0x40, 0x3F, 0x00, 0x00, /*"动",17*/
|
||||||
|
0x08, 0x08, 0x08, 0xFF, 0x88, 0x48, 0x00, 0x98, 0x48, 0x28, 0x0A,
|
||||||
|
0x2C, 0x48, 0xD8, 0x08, 0x00, 0x02, 0x42, 0x81, 0x7F, 0x00, 0x00,
|
||||||
|
0x40, 0x42, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x40, 0x00, /*"控",18*/
|
||||||
|
0x00, 0x50, 0x4F, 0x4A, 0x48, 0xFF, 0x48, 0x48, 0x48, 0x00, 0xFC,
|
||||||
|
0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x01, 0x01, 0xFF,
|
||||||
|
0x21, 0x61, 0x3F, 0x00, 0x0F, 0x40, 0x80, 0x7F, 0x00, 0x00, /*"制",19*/
|
||||||
|
0x08, 0x07, 0xFA, 0xAA, 0xAE, 0xAA, 0xAA, 0xA8, 0xAC, 0xAB, 0xAA,
|
||||||
|
0xFE, 0x0A, 0x02, 0x02, 0x00, 0x08, 0x08, 0x8B, 0x6A, 0x1E, 0x0A,
|
||||||
|
0x0A, 0x0A, 0x0A, 0xFE, 0x0A, 0x0B, 0x08, 0x08, 0x08, 0x00, /*"算",20*/
|
||||||
|
0x10, 0x60, 0x01, 0xC6, 0x30, 0x00, 0x10, 0x10, 0x10, 0xFF, 0x10,
|
||||||
|
0x10, 0x10, 0x10, 0x00, 0x00, 0x04, 0x04, 0xFE, 0x01, 0x00, 0x41,
|
||||||
|
0x61, 0x51, 0x4D, 0x43, 0x41, 0x41, 0x51, 0xE1, 0x01, 0x00, /*"法",21*/
|
||||||
|
0x40, 0x41, 0xCE, 0x04, 0x00, 0x80, 0x40, 0xBE, 0x82, 0x82, 0x82,
|
||||||
|
0xBE, 0xC0, 0x40, 0x40, 0x00, 0x00, 0x00, 0x7F, 0x20, 0x90, 0x80,
|
||||||
|
0x40, 0x43, 0x2C, 0x10, 0x10, 0x2C, 0x43, 0xC0, 0x40, 0x00, /*"设",22*/
|
||||||
|
0x20, 0x21, 0x2E, 0xE4, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, 0xFF,
|
||||||
|
0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x20, 0x10,
|
||||||
|
0x08, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, /*"计",23*/
|
||||||
|
|
||||||
|
0x00, 0x00, 0xF8, 0x48, 0x48, 0x48, 0x48, 0xFF, 0x48, 0x48, 0x48,
|
||||||
|
0x48, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x04, 0x04, 0x04,
|
||||||
|
0x04, 0x3F, 0x44, 0x44, 0x44, 0x44, 0x4F, 0x40, 0x70, 0x00, /*"电",24*/
|
||||||
|
0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0xE2, 0x12, 0x0A, 0x06,
|
||||||
|
0x02, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x41,
|
||||||
|
0x81, 0x7F, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, /*"子",25*/
|
||||||
|
0x00, 0x20, 0x20, 0x22, 0x22, 0xE2, 0x22, 0x22, 0x22, 0xE2, 0x22,
|
||||||
|
0x22, 0x22, 0x20, 0x20, 0x00, 0x00, 0x40, 0x20, 0x10, 0x0C, 0x03,
|
||||||
|
0x00, 0x00, 0x00, 0x3F, 0x40, 0x40, 0x40, 0x40, 0x70, 0x00, /*"元",26*/
|
||||||
|
0x40, 0x20, 0xF8, 0x0F, 0x82, 0x60, 0x1E, 0x14, 0x10, 0xFF, 0x10,
|
||||||
|
0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x01, 0x01,
|
||||||
|
0x01, 0x01, 0x01, 0xFF, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, /*"件",27*/
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x7E, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
|
||||||
|
0x48, 0x48, 0xCC, 0x08, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04,
|
||||||
|
0x04, 0x04, 0x04, 0x24, 0x46, 0x44, 0x20, 0x1F, 0x00, 0x00, /*"与",28*/
|
||||||
|
0x84, 0x94, 0x94, 0xFF, 0x94, 0x94, 0x80, 0x24, 0x24, 0x24, 0xFC,
|
||||||
|
0x12, 0x13, 0x12, 0x00, 0x00, 0x20, 0x18, 0x06, 0xFF, 0x02, 0x1C,
|
||||||
|
0x0A, 0x02, 0x02, 0x02, 0x3F, 0x41, 0x41, 0x41, 0x71, 0x00, /*"耗",29*/
|
||||||
|
0x10, 0x10, 0xD0, 0xFE, 0x50, 0x90, 0x00, 0x10, 0x10, 0x10, 0xD0,
|
||||||
|
0xFE, 0x10, 0x10, 0x10, 0x00, 0x08, 0x06, 0x01, 0xFF, 0x00, 0x01,
|
||||||
|
0x10, 0x08, 0x04, 0x43, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00, /*"材",30*/
|
||||||
|
0x90, 0x88, 0xA7, 0xA2, 0xA6, 0xBA, 0xA2, 0xF8, 0xA7, 0xA2, 0xA6,
|
||||||
|
0xBA, 0xA2, 0x82, 0x80, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x0C,
|
||||||
|
0x34, 0x04, 0x44, 0x84, 0x7F, 0x04, 0x04, 0x04, 0x00, 0x00, /*"等",31*/
|
||||||
|
};
|
||||||
|
|
||||||
|
/************************************6*8的点阵************************************/
|
||||||
|
const uint8_t F6x8[] = {
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // sp
|
||||||
|
0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, // !
|
||||||
|
0x00, 0x00, 0x07, 0x00, 0x07, 0x00, // "
|
||||||
|
0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14, // #
|
||||||
|
0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12, // $
|
||||||
|
0x00, 0x62, 0x64, 0x08, 0x13, 0x23, // %
|
||||||
|
0x00, 0x36, 0x49, 0x55, 0x22, 0x50, // &
|
||||||
|
0x00, 0x00, 0x05, 0x03, 0x00, 0x00, // '
|
||||||
|
0x00, 0x00, 0x1c, 0x22, 0x41, 0x00, // (
|
||||||
|
0x00, 0x00, 0x41, 0x22, 0x1c, 0x00, // )
|
||||||
|
0x00, 0x14, 0x08, 0x3E, 0x08, 0x14, // *
|
||||||
|
0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, // +
|
||||||
|
0x00, 0x00, 0x00, 0xA0, 0x60, 0x00, // ,
|
||||||
|
0x00, 0x08, 0x08, 0x08, 0x08, 0x08, // -
|
||||||
|
0x00, 0x00, 0x60, 0x60, 0x00, 0x00, // .
|
||||||
|
0x00, 0x20, 0x10, 0x08, 0x04, 0x02, // /
|
||||||
|
0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E, // 0
|
||||||
|
0x00, 0x00, 0x42, 0x7F, 0x40, 0x00, // 1
|
||||||
|
0x00, 0x42, 0x61, 0x51, 0x49, 0x46, // 2
|
||||||
|
0x00, 0x21, 0x41, 0x45, 0x4B, 0x31, // 3
|
||||||
|
0x00, 0x18, 0x14, 0x12, 0x7F, 0x10, // 4
|
||||||
|
0x00, 0x27, 0x45, 0x45, 0x45, 0x39, // 5
|
||||||
|
0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30, // 6
|
||||||
|
0x00, 0x01, 0x71, 0x09, 0x05, 0x03, // 7
|
||||||
|
0x00, 0x36, 0x49, 0x49, 0x49, 0x36, // 8
|
||||||
|
0x00, 0x06, 0x49, 0x49, 0x29, 0x1E, // 9
|
||||||
|
0x00, 0x00, 0x36, 0x36, 0x00, 0x00, // :
|
||||||
|
0x00, 0x00, 0x56, 0x36, 0x00, 0x00, // ;
|
||||||
|
0x00, 0x08, 0x14, 0x22, 0x41, 0x00, // <
|
||||||
|
0x00, 0x14, 0x14, 0x14, 0x14, 0x14, // =
|
||||||
|
0x00, 0x00, 0x41, 0x22, 0x14, 0x08, // >
|
||||||
|
0x00, 0x02, 0x01, 0x51, 0x09, 0x06, // ?
|
||||||
|
0x00, 0x32, 0x49, 0x59, 0x51, 0x3E, // @
|
||||||
|
0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C, // A
|
||||||
|
0x00, 0x7F, 0x49, 0x49, 0x49, 0x36, // B
|
||||||
|
0x00, 0x3E, 0x41, 0x41, 0x41, 0x22, // C
|
||||||
|
0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C, // D
|
||||||
|
0x00, 0x7F, 0x49, 0x49, 0x49, 0x41, // E
|
||||||
|
0x00, 0x7F, 0x09, 0x09, 0x09, 0x01, // F
|
||||||
|
0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A, // G
|
||||||
|
0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F, // H
|
||||||
|
0x00, 0x00, 0x41, 0x7F, 0x41, 0x00, // I
|
||||||
|
0x00, 0x20, 0x40, 0x41, 0x3F, 0x01, // J
|
||||||
|
0x00, 0x7F, 0x08, 0x14, 0x22, 0x41, // K
|
||||||
|
0x00, 0x7F, 0x40, 0x40, 0x40, 0x40, // L
|
||||||
|
0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F, // M
|
||||||
|
0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F, // N
|
||||||
|
0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E, // O
|
||||||
|
0x00, 0x7F, 0x09, 0x09, 0x09, 0x06, // P
|
||||||
|
0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E, // Q
|
||||||
|
0x00, 0x7F, 0x09, 0x19, 0x29, 0x46, // R
|
||||||
|
0x00, 0x46, 0x49, 0x49, 0x49, 0x31, // S
|
||||||
|
0x00, 0x01, 0x01, 0x7F, 0x01, 0x01, // T
|
||||||
|
0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F, // U
|
||||||
|
0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F, // V
|
||||||
|
0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F, // W
|
||||||
|
0x00, 0x63, 0x14, 0x08, 0x14, 0x63, // X
|
||||||
|
0x00, 0x07, 0x08, 0x70, 0x08, 0x07, // Y
|
||||||
|
0x00, 0x61, 0x51, 0x49, 0x45, 0x43, // Z
|
||||||
|
0x00, 0x00, 0x7F, 0x41, 0x41, 0x00, // [
|
||||||
|
0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55, // 55
|
||||||
|
0x00, 0x00, 0x41, 0x41, 0x7F, 0x00, // ]
|
||||||
|
0x00, 0x04, 0x02, 0x01, 0x02, 0x04, // ^
|
||||||
|
0x00, 0x40, 0x40, 0x40, 0x40, 0x40, // _
|
||||||
|
0x00, 0x00, 0x01, 0x02, 0x04, 0x00, // '
|
||||||
|
0x00, 0x20, 0x54, 0x54, 0x54, 0x78, // a
|
||||||
|
0x00, 0x7F, 0x48, 0x44, 0x44, 0x38, // b
|
||||||
|
0x00, 0x38, 0x44, 0x44, 0x44, 0x20, // c
|
||||||
|
0x00, 0x38, 0x44, 0x44, 0x48, 0x7F, // d
|
||||||
|
0x00, 0x38, 0x54, 0x54, 0x54, 0x18, // e
|
||||||
|
0x00, 0x08, 0x7E, 0x09, 0x01, 0x02, // f
|
||||||
|
0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C, // g
|
||||||
|
0x00, 0x7F, 0x08, 0x04, 0x04, 0x78, // h
|
||||||
|
0x00, 0x00, 0x44, 0x7D, 0x40, 0x00, // i
|
||||||
|
0x00, 0x40, 0x80, 0x84, 0x7D, 0x00, // j
|
||||||
|
0x00, 0x7F, 0x10, 0x28, 0x44, 0x00, // k
|
||||||
|
0x00, 0x00, 0x41, 0x7F, 0x40, 0x00, // l
|
||||||
|
0x00, 0x7C, 0x04, 0x18, 0x04, 0x78, // m
|
||||||
|
0x00, 0x7C, 0x08, 0x04, 0x04, 0x78, // n
|
||||||
|
0x00, 0x38, 0x44, 0x44, 0x44, 0x38, // o
|
||||||
|
0x00, 0xFC, 0x24, 0x24, 0x24, 0x18, // p
|
||||||
|
0x00, 0x18, 0x24, 0x24, 0x18, 0xFC, // q
|
||||||
|
0x00, 0x7C, 0x08, 0x04, 0x04, 0x08, // r
|
||||||
|
0x00, 0x48, 0x54, 0x54, 0x54, 0x20, // s
|
||||||
|
0x00, 0x04, 0x3F, 0x44, 0x40, 0x20, // t
|
||||||
|
0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C, // u
|
||||||
|
0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C, // v
|
||||||
|
0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C, // w
|
||||||
|
0x00, 0x44, 0x28, 0x10, 0x28, 0x44, // x
|
||||||
|
0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C, // y
|
||||||
|
0x00, 0x44, 0x64, 0x54, 0x4C, 0x44, // z
|
||||||
|
0x14, 0x14, 0x14, 0x14, 0x14, 0x14, // horiz lines
|
||||||
|
};
|
||||||
|
/****************************************8*16的点阵************************************/
|
||||||
|
const uint8_t F8X16[] = {
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0
|
||||||
|
0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x33, 0x30, 0x00, 0x00, 0x00, //! 1
|
||||||
|
0x00, 0x10, 0x0C, 0x06, 0x10, 0x0C, 0x06, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //" 2
|
||||||
|
0x40, 0xC0, 0x78, 0x40, 0xC0, 0x78, 0x40, 0x00,
|
||||||
|
0x04, 0x3F, 0x04, 0x04, 0x3F, 0x04, 0x04, 0x00, // # 3
|
||||||
|
0x00, 0x70, 0x88, 0xFC, 0x08, 0x30, 0x00, 0x00,
|
||||||
|
0x00, 0x18, 0x20, 0xFF, 0x21, 0x1E, 0x00, 0x00, //$ 4
|
||||||
|
0xF0, 0x08, 0xF0, 0x00, 0xE0, 0x18, 0x00, 0x00,
|
||||||
|
0x00, 0x21, 0x1C, 0x03, 0x1E, 0x21, 0x1E, 0x00, //% 5
|
||||||
|
0x00, 0xF0, 0x08, 0x88, 0x70, 0x00, 0x00, 0x00,
|
||||||
|
0x1E, 0x21, 0x23, 0x24, 0x19, 0x27, 0x21, 0x10, //& 6
|
||||||
|
0x10, 0x16, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //' 7
|
||||||
|
0x00, 0x00, 0x00, 0xE0, 0x18, 0x04, 0x02, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x40, 0x00, //( 8
|
||||||
|
0x00, 0x02, 0x04, 0x18, 0xE0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x40, 0x20, 0x18, 0x07, 0x00, 0x00, 0x00, //) 9
|
||||||
|
0x40, 0x40, 0x80, 0xF0, 0x80, 0x40, 0x40, 0x00,
|
||||||
|
0x02, 0x02, 0x01, 0x0F, 0x01, 0x02, 0x02, 0x00, //* 10
|
||||||
|
0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x01, 0x01, 0x01, 0x1F, 0x01, 0x01, 0x01, 0x00, //+ 11
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x80, 0xB0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, //, 12
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //- 13
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, //. 14
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x18, 0x04,
|
||||||
|
0x00, 0x60, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, /// 15
|
||||||
|
0x00, 0xE0, 0x10, 0x08, 0x08, 0x10, 0xE0, 0x00,
|
||||||
|
0x00, 0x0F, 0x10, 0x20, 0x20, 0x10, 0x0F, 0x00, // 0 16
|
||||||
|
0x00, 0x10, 0x10, 0xF8, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x00, 0x00, // 1 17
|
||||||
|
0x00, 0x70, 0x08, 0x08, 0x08, 0x88, 0x70, 0x00,
|
||||||
|
0x00, 0x30, 0x28, 0x24, 0x22, 0x21, 0x30, 0x00, // 2 18
|
||||||
|
0x00, 0x30, 0x08, 0x88, 0x88, 0x48, 0x30, 0x00,
|
||||||
|
0x00, 0x18, 0x20, 0x20, 0x20, 0x11, 0x0E, 0x00, // 3 19
|
||||||
|
0x00, 0x00, 0xC0, 0x20, 0x10, 0xF8, 0x00, 0x00,
|
||||||
|
0x00, 0x07, 0x04, 0x24, 0x24, 0x3F, 0x24, 0x00, // 4 20
|
||||||
|
0x00, 0xF8, 0x08, 0x88, 0x88, 0x08, 0x08, 0x00,
|
||||||
|
0x00, 0x19, 0x21, 0x20, 0x20, 0x11, 0x0E, 0x00, // 5 21
|
||||||
|
0x00, 0xE0, 0x10, 0x88, 0x88, 0x18, 0x00, 0x00,
|
||||||
|
0x00, 0x0F, 0x11, 0x20, 0x20, 0x11, 0x0E, 0x00, // 6 22
|
||||||
|
0x00, 0x38, 0x08, 0x08, 0xC8, 0x38, 0x08, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, // 7 23
|
||||||
|
0x00, 0x70, 0x88, 0x08, 0x08, 0x88, 0x70, 0x00,
|
||||||
|
0x00, 0x1C, 0x22, 0x21, 0x21, 0x22, 0x1C, 0x00, // 8 24
|
||||||
|
0x00, 0xE0, 0x10, 0x08, 0x08, 0x10, 0xE0, 0x00,
|
||||||
|
0x00, 0x00, 0x31, 0x22, 0x22, 0x11, 0x0F, 0x00, // 9 25
|
||||||
|
0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, //: 26
|
||||||
|
0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x00, //; 27
|
||||||
|
0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x00,
|
||||||
|
0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, //< 28
|
||||||
|
0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
|
||||||
|
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00, //= 29
|
||||||
|
0x00, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, //> 30
|
||||||
|
0x00, 0x70, 0x48, 0x08, 0x08, 0x08, 0xF0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x30, 0x36, 0x01, 0x00, 0x00, //? 31
|
||||||
|
0xC0, 0x30, 0xC8, 0x28, 0xE8, 0x10, 0xE0, 0x00,
|
||||||
|
0x07, 0x18, 0x27, 0x24, 0x23, 0x14, 0x0B, 0x00, //@ 32
|
||||||
|
0x00, 0x00, 0xC0, 0x38, 0xE0, 0x00, 0x00, 0x00,
|
||||||
|
0x20, 0x3C, 0x23, 0x02, 0x02, 0x27, 0x38, 0x20, // A 33
|
||||||
|
0x08, 0xF8, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00,
|
||||||
|
0x20, 0x3F, 0x20, 0x20, 0x20, 0x11, 0x0E, 0x00, // B 34
|
||||||
|
0xC0, 0x30, 0x08, 0x08, 0x08, 0x08, 0x38, 0x00,
|
||||||
|
0x07, 0x18, 0x20, 0x20, 0x20, 0x10, 0x08, 0x00, // C 35
|
||||||
|
0x08, 0xF8, 0x08, 0x08, 0x08, 0x10, 0xE0, 0x00,
|
||||||
|
0x20, 0x3F, 0x20, 0x20, 0x20, 0x10, 0x0F, 0x00, // D 36
|
||||||
|
0x08, 0xF8, 0x88, 0x88, 0xE8, 0x08, 0x10, 0x00,
|
||||||
|
0x20, 0x3F, 0x20, 0x20, 0x23, 0x20, 0x18, 0x00, // E 37
|
||||||
|
0x08, 0xF8, 0x88, 0x88, 0xE8, 0x08, 0x10, 0x00,
|
||||||
|
0x20, 0x3F, 0x20, 0x00, 0x03, 0x00, 0x00, 0x00, // F 38
|
||||||
|
0xC0, 0x30, 0x08, 0x08, 0x08, 0x38, 0x00, 0x00,
|
||||||
|
0x07, 0x18, 0x20, 0x20, 0x22, 0x1E, 0x02, 0x00, // G 39
|
||||||
|
0x08, 0xF8, 0x08, 0x00, 0x00, 0x08, 0xF8, 0x08,
|
||||||
|
0x20, 0x3F, 0x21, 0x01, 0x01, 0x21, 0x3F, 0x20, // H 40
|
||||||
|
0x00, 0x08, 0x08, 0xF8, 0x08, 0x08, 0x00, 0x00,
|
||||||
|
0x00, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x00, 0x00, // I 41
|
||||||
|
0x00, 0x00, 0x08, 0x08, 0xF8, 0x08, 0x08, 0x00,
|
||||||
|
0xC0, 0x80, 0x80, 0x80, 0x7F, 0x00, 0x00, 0x00, // J 42
|
||||||
|
0x08, 0xF8, 0x88, 0xC0, 0x28, 0x18, 0x08, 0x00,
|
||||||
|
0x20, 0x3F, 0x20, 0x01, 0x26, 0x38, 0x20, 0x00, // K 43
|
||||||
|
0x08, 0xF8, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x20, 0x3F, 0x20, 0x20, 0x20, 0x20, 0x30, 0x00, // L 44
|
||||||
|
0x08, 0xF8, 0xF8, 0x00, 0xF8, 0xF8, 0x08, 0x00,
|
||||||
|
0x20, 0x3F, 0x00, 0x3F, 0x00, 0x3F, 0x20, 0x00, // M 45
|
||||||
|
0x08, 0xF8, 0x30, 0xC0, 0x00, 0x08, 0xF8, 0x08,
|
||||||
|
0x20, 0x3F, 0x20, 0x00, 0x07, 0x18, 0x3F, 0x00, // N 46
|
||||||
|
0xE0, 0x10, 0x08, 0x08, 0x08, 0x10, 0xE0, 0x00,
|
||||||
|
0x0F, 0x10, 0x20, 0x20, 0x20, 0x10, 0x0F, 0x00, // O 47
|
||||||
|
0x08, 0xF8, 0x08, 0x08, 0x08, 0x08, 0xF0, 0x00,
|
||||||
|
0x20, 0x3F, 0x21, 0x01, 0x01, 0x01, 0x00, 0x00, // P 48
|
||||||
|
0xE0, 0x10, 0x08, 0x08, 0x08, 0x10, 0xE0, 0x00,
|
||||||
|
0x0F, 0x18, 0x24, 0x24, 0x38, 0x50, 0x4F, 0x00, // Q 49
|
||||||
|
0x08, 0xF8, 0x88, 0x88, 0x88, 0x88, 0x70, 0x00,
|
||||||
|
0x20, 0x3F, 0x20, 0x00, 0x03, 0x0C, 0x30, 0x20, // R 50
|
||||||
|
0x00, 0x70, 0x88, 0x08, 0x08, 0x08, 0x38, 0x00,
|
||||||
|
0x00, 0x38, 0x20, 0x21, 0x21, 0x22, 0x1C, 0x00, // S 51
|
||||||
|
0x18, 0x08, 0x08, 0xF8, 0x08, 0x08, 0x18, 0x00,
|
||||||
|
0x00, 0x00, 0x20, 0x3F, 0x20, 0x00, 0x00, 0x00, // T 52
|
||||||
|
0x08, 0xF8, 0x08, 0x00, 0x00, 0x08, 0xF8, 0x08,
|
||||||
|
0x00, 0x1F, 0x20, 0x20, 0x20, 0x20, 0x1F, 0x00, // U 53
|
||||||
|
0x08, 0x78, 0x88, 0x00, 0x00, 0xC8, 0x38, 0x08,
|
||||||
|
0x00, 0x00, 0x07, 0x38, 0x0E, 0x01, 0x00, 0x00, // V 54
|
||||||
|
0xF8, 0x08, 0x00, 0xF8, 0x00, 0x08, 0xF8, 0x00,
|
||||||
|
0x03, 0x3C, 0x07, 0x00, 0x07, 0x3C, 0x03, 0x00, // W 55
|
||||||
|
0x08, 0x18, 0x68, 0x80, 0x80, 0x68, 0x18, 0x08,
|
||||||
|
0x20, 0x30, 0x2C, 0x03, 0x03, 0x2C, 0x30, 0x20, // X 56
|
||||||
|
0x08, 0x38, 0xC8, 0x00, 0xC8, 0x38, 0x08, 0x00,
|
||||||
|
0x00, 0x00, 0x20, 0x3F, 0x20, 0x00, 0x00, 0x00, // Y 57
|
||||||
|
0x10, 0x08, 0x08, 0x08, 0xC8, 0x38, 0x08, 0x00,
|
||||||
|
0x20, 0x38, 0x26, 0x21, 0x20, 0x20, 0x18, 0x00, // Z 58
|
||||||
|
0x00, 0x00, 0x00, 0xFE, 0x02, 0x02, 0x02, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x7F, 0x40, 0x40, 0x40, 0x00, //[ 59
|
||||||
|
0x00, 0x0C, 0x30, 0xC0, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x01, 0x06, 0x38, 0xC0, 0x00, //\ 60
|
||||||
|
0x00, 0x02, 0x02, 0x02, 0xFE, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x40, 0x40, 0x40, 0x7F, 0x00, 0x00, 0x00, //] 61
|
||||||
|
0x00, 0x00, 0x04, 0x02, 0x02, 0x02, 0x04, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //^ 62
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, //_ 63
|
||||||
|
0x00, 0x02, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //` 64
|
||||||
|
0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x19, 0x24, 0x22, 0x22, 0x22, 0x3F, 0x20, // a 65
|
||||||
|
0x08, 0xF8, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x3F, 0x11, 0x20, 0x20, 0x11, 0x0E, 0x00, // b 66
|
||||||
|
0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x0E, 0x11, 0x20, 0x20, 0x20, 0x11, 0x00, // c 67
|
||||||
|
0x00, 0x00, 0x00, 0x80, 0x80, 0x88, 0xF8, 0x00,
|
||||||
|
0x00, 0x0E, 0x11, 0x20, 0x20, 0x10, 0x3F, 0x20, // d 68
|
||||||
|
0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x1F, 0x22, 0x22, 0x22, 0x22, 0x13, 0x00, // e 69
|
||||||
|
0x00, 0x80, 0x80, 0xF0, 0x88, 0x88, 0x88, 0x18,
|
||||||
|
0x00, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x00, 0x00, // f 70
|
||||||
|
0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00,
|
||||||
|
0x00, 0x6B, 0x94, 0x94, 0x94, 0x93, 0x60, 0x00, // g 71
|
||||||
|
0x08, 0xF8, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00,
|
||||||
|
0x20, 0x3F, 0x21, 0x00, 0x00, 0x20, 0x3F, 0x20, // h 72
|
||||||
|
0x00, 0x80, 0x98, 0x98, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x00, 0x00, // i 73
|
||||||
|
0x00, 0x00, 0x00, 0x80, 0x98, 0x98, 0x00, 0x00,
|
||||||
|
0x00, 0xC0, 0x80, 0x80, 0x80, 0x7F, 0x00, 0x00, // j 74
|
||||||
|
0x08, 0xF8, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00,
|
||||||
|
0x20, 0x3F, 0x24, 0x02, 0x2D, 0x30, 0x20, 0x00, // k 75
|
||||||
|
0x00, 0x08, 0x08, 0xF8, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x00, 0x00, // l 76
|
||||||
|
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00,
|
||||||
|
0x20, 0x3F, 0x20, 0x00, 0x3F, 0x20, 0x00, 0x3F, // m 77
|
||||||
|
0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00,
|
||||||
|
0x20, 0x3F, 0x21, 0x00, 0x00, 0x20, 0x3F, 0x20, // n 78
|
||||||
|
0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x1F, 0x20, 0x20, 0x20, 0x20, 0x1F, 0x00, // o 79
|
||||||
|
0x80, 0x80, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00,
|
||||||
|
0x80, 0xFF, 0xA1, 0x20, 0x20, 0x11, 0x0E, 0x00, // p 80
|
||||||
|
0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00,
|
||||||
|
0x00, 0x0E, 0x11, 0x20, 0x20, 0xA0, 0xFF, 0x80, // q 81
|
||||||
|
0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x00,
|
||||||
|
0x20, 0x20, 0x3F, 0x21, 0x20, 0x00, 0x01, 0x00, // r 82
|
||||||
|
0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00,
|
||||||
|
0x00, 0x33, 0x24, 0x24, 0x24, 0x24, 0x19, 0x00, // s 83
|
||||||
|
0x00, 0x80, 0x80, 0xE0, 0x80, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x1F, 0x20, 0x20, 0x00, 0x00, // t 84
|
||||||
|
0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00,
|
||||||
|
0x00, 0x1F, 0x20, 0x20, 0x20, 0x10, 0x3F, 0x20, // u 85
|
||||||
|
0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x80,
|
||||||
|
0x00, 0x01, 0x0E, 0x30, 0x08, 0x06, 0x01, 0x00, // v 86
|
||||||
|
0x80, 0x80, 0x00, 0x80, 0x00, 0x80, 0x80, 0x80,
|
||||||
|
0x0F, 0x30, 0x0C, 0x03, 0x0C, 0x30, 0x0F, 0x00, // w 87
|
||||||
|
0x00, 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x00,
|
||||||
|
0x00, 0x20, 0x31, 0x2E, 0x0E, 0x31, 0x20, 0x00, // x 88
|
||||||
|
0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x80,
|
||||||
|
0x80, 0x81, 0x8E, 0x70, 0x18, 0x06, 0x01, 0x00, // y 89
|
||||||
|
0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00,
|
||||||
|
0x00, 0x21, 0x30, 0x2C, 0x22, 0x21, 0x30, 0x00, // z 90
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x80, 0x7C, 0x02, 0x02,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x40, 0x40, //{ 91
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, //| 92
|
||||||
|
0x00, 0x02, 0x02, 0x7C, 0x80, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x40, 0x40, 0x3F, 0x00, 0x00, 0x00, 0x00, //} 93
|
||||||
|
0x00, 0x06, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //~ 94
|
||||||
|
};
|
||||||
|
|
||||||
|
uint8_t BMP1[] = {
|
||||||
|
0x00, 0x03, 0x05, 0x09, 0x11, 0xFF, 0x11, 0x89, 0x05, 0xC3, 0x00, 0xE0,
|
||||||
|
0x00, 0xF0, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44,
|
||||||
|
0x28, 0xFF, 0x11, 0xAA, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x01, 0x38, 0x44, 0x82, 0x92,
|
||||||
|
0x92, 0x74, 0x01, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C,
|
||||||
|
0x44, 0xC7, 0x01, 0x7D, 0x7D, 0x7D, 0x7D, 0x01, 0x7D, 0x7D, 0x7D, 0x7D,
|
||||||
|
0x01, 0x7D, 0x7D, 0x7D, 0x7D, 0x01, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,
|
||||||
|
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||||
|
0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x6D, 0x6D, 0x6D, 0x6D,
|
||||||
|
0x6D, 0x00, 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00, 0x40, 0x40,
|
||||||
|
0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDB, 0xDB, 0xDB,
|
||||||
|
0xDB, 0xDB, 0x00, 0x00, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0x00, 0x00, 0xDB,
|
||||||
|
0xDB, 0xDB, 0xDB, 0xDB, 0x00, 0x00, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0x00,
|
||||||
|
0x00, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0x00, 0x00, 0xD8, 0xD8, 0xD8, 0xD8,
|
||||||
|
0xD8, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0xC0, 0xC0,
|
||||||
|
0xC0, 0xC0, 0xC0, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00,
|
||||||
|
0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00,
|
||||||
|
0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06,
|
||||||
|
0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x06, 0x06, 0x06,
|
||||||
|
0xE6, 0x66, 0x20, 0x00, 0x06, 0x06, 0x86, 0x06, 0x06, 0x00, 0x00, 0x06,
|
||||||
|
0x06, 0x06, 0x06, 0x86, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00,
|
||||||
|
0x00, 0x86, 0x86, 0x86, 0x86, 0x86, 0x80, 0x80, 0x86, 0x86, 0x06, 0x86,
|
||||||
|
0x86, 0xC0, 0xC0, 0x86, 0x86, 0x86, 0x06, 0x06, 0xD0, 0x30, 0x76, 0x06,
|
||||||
|
0x06, 0x06, 0x06, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00,
|
||||||
|
0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06,
|
||||||
|
0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x1C,
|
||||||
|
0x00, 0xFE, 0x00, 0x01, 0x02, 0x00, 0xC4, 0x18, 0x20, 0x02, 0x9E, 0x63,
|
||||||
|
0xB2, 0x0E, 0x00, 0xFF, 0x81, 0x81, 0xFF, 0x00, 0x00, 0x80, 0x40, 0x30,
|
||||||
|
0x0F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x23, 0xEA, 0xAA, 0xBF, 0xAA,
|
||||||
|
0xEA, 0x03, 0x3F, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
||||||
|
0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x0E, 0x0C, 0x08, 0x00, 0x00, 0x01, 0x01, 0x01,
|
||||||
|
0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x81,
|
||||||
|
0x80, 0x80, 0x81, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x01, 0x01, 0x01,
|
||||||
|
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01,
|
||||||
|
0x09, 0x0C, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0,
|
||||||
|
0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0,
|
||||||
|
0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x1E, 0x21, 0x40,
|
||||||
|
0x40, 0x50, 0x21, 0x5E, 0x00, 0x1E, 0x21, 0x40, 0x40, 0x50, 0x21, 0x5E,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC1, 0xC1, 0xFF,
|
||||||
|
0xFF, 0xC1, 0xC1, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x80, 0xFC, 0xF3, 0xEF, 0xF3, 0xFC,
|
||||||
|
0x80, 0xFF, 0x80, 0xEE, 0xEE, 0xEE, 0xF5, 0xFB, 0xFF, 0x9C, 0xBE, 0xB6,
|
||||||
|
0xB6, 0x88, 0xFF, 0x00,
|
||||||
|
};
|
||||||
|
|
||||||
|
uint8_t BMP2[] = {
|
||||||
|
0x00, 0x03, 0x05, 0x09, 0x11, 0xFF, 0x11, 0x89, 0x05, 0xC3, 0x00, 0xE0,
|
||||||
|
0x00, 0xF0, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44,
|
||||||
|
0x28, 0xFF, 0x11, 0xAA, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x01, 0x38, 0x44, 0x82, 0x92,
|
||||||
|
0x92, 0x74, 0x01, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C,
|
||||||
|
0x44, 0xFF, 0x01, 0x7D, 0x7D, 0x7D, 0x7D, 0x01, 0x7D, 0x7D, 0x7D, 0x7D,
|
||||||
|
0x01, 0x7D, 0x7D, 0x7D, 0x7D, 0x01, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,
|
||||||
|
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||||
|
0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8,
|
||||||
|
0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0xF8, 0x18, 0x60, 0x80,
|
||||||
|
0x00, 0x00, 0x00, 0x80, 0x60, 0x18, 0xF8, 0x00, 0x00, 0x00, 0x20, 0x20,
|
||||||
|
0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x10, 0x08, 0x08, 0x08,
|
||||||
|
0x08, 0x10, 0xE0, 0x00, 0x00, 0x00, 0x20, 0x20, 0xF8, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08,
|
||||||
|
0x08, 0x08, 0x88, 0x68, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x01, 0x01, 0x01, 0x01,
|
||||||
|
0x01, 0x01, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x01, 0x06, 0x18, 0x06, 0x01,
|
||||||
|
0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x40, 0x40, 0x7F, 0x40, 0x40, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x1F, 0x20, 0x40, 0x40, 0x40, 0x40, 0x20, 0x1F, 0x00,
|
||||||
|
0x00, 0x00, 0x40, 0x40, 0x7F, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x18, 0x06, 0x01, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x20, 0x20,
|
||||||
|
0x20, 0xC0, 0x00, 0x00, 0xE0, 0x20, 0x20, 0x20, 0xE0, 0x00, 0x00, 0x00,
|
||||||
|
0x40, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x60, 0x20, 0x20, 0x20, 0xE0, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xE0, 0x20, 0x20, 0x20, 0xE0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x40, 0x20, 0x20, 0x20, 0xC0, 0x00, 0x00, 0x40, 0x20, 0x20,
|
||||||
|
0x20, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0A, 0x0A, 0x09, 0x0C, 0x00, 0x00,
|
||||||
|
0x0F, 0x08, 0x08, 0x08, 0x0F, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x08, 0x00,
|
||||||
|
0x00, 0x00, 0x0C, 0x08, 0x09, 0x09, 0x0E, 0x00, 0x00, 0x0C, 0x00, 0x00,
|
||||||
|
0x0F, 0x09, 0x09, 0x09, 0x0F, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x0A,
|
||||||
|
0x0A, 0x09, 0x0C, 0x00, 0x00, 0x0C, 0x0A, 0x0A, 0x09, 0x0C, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x03, 0x0C,
|
||||||
|
0x30, 0x0C, 0x03, 0x7F, 0x00, 0x00, 0x38, 0x54, 0x54, 0x58, 0x00, 0x00,
|
||||||
|
0x7C, 0x04, 0x04, 0x78, 0x00, 0x00, 0x3C, 0x40, 0x40, 0x7C, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xAA, 0xAA, 0xAA,
|
||||||
|
0x28, 0x08, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x03, 0x0C, 0x30, 0x0C, 0x03, 0x7F,
|
||||||
|
0x00, 0x00, 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, 0x00, 0x7F, 0x02, 0x04,
|
||||||
|
0x08, 0x10, 0x7F, 0x00};
|
93
main/embedded_display.c
Normal file
93
main/embedded_display.c
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
#pragma once
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#include "codetab.h"
|
||||||
|
#include "driver/i2c.h"
|
||||||
|
#include "esp_log.h"
|
||||||
|
|
||||||
|
#define Brightness 0xCF
|
||||||
|
#define X_WIDTH 128
|
||||||
|
#define Y_WIDTH 64
|
||||||
|
|
||||||
|
#define I2C_ADDRESS 0x78
|
||||||
|
#define I2C_MASTER_NUM CONFIG_I2C_NUM
|
||||||
|
|
||||||
|
void i2cWriteByte(uint8_t reg, uint8_t data) {
|
||||||
|
i2c_cmd_handle_t cmd = i2c_cmd_link_create();
|
||||||
|
i2c_master_start(cmd);
|
||||||
|
i2c_master_write_byte(cmd, I2C_ADDRESS | I2C_MASTER_WRITE, true);
|
||||||
|
i2c_master_write_byte(cmd, reg, true);
|
||||||
|
i2c_master_write_byte(cmd, data, true);
|
||||||
|
i2c_master_stop(cmd);
|
||||||
|
i2c_master_cmd_begin(I2C_MASTER_NUM, cmd, 1000 / portTICK_PERIOD_MS);
|
||||||
|
i2c_cmd_link_delete(cmd);
|
||||||
|
}
|
||||||
|
|
||||||
|
void i2cWriteCommand(uint8_t data) { i2cWriteByte(0x00, data); }
|
||||||
|
|
||||||
|
void i2cWriteData(uint8_t data) { i2cWriteByte(0x40, data); }
|
||||||
|
|
||||||
|
void display_fill(uint8_t bmpData) {
|
||||||
|
for (int y = 0; y < 8; y++) {
|
||||||
|
i2cWriteCommand(0xB0 + y);
|
||||||
|
i2cWriteCommand(0x01);
|
||||||
|
i2cWriteCommand(0x10);
|
||||||
|
for (int x = 0; x < X_WIDTH; x++) {
|
||||||
|
i2cWriteData(bmpData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void display_set_pos(uint8_t x, uint8_t y) {
|
||||||
|
i2cWriteCommand(0xB0 + y);
|
||||||
|
i2cWriteCommand(((x & 0xF0) >> 4) | 0x10);
|
||||||
|
i2cWriteCommand((x & 0x0F) | 0x01);
|
||||||
|
}
|
||||||
|
|
||||||
|
void display_print8_str(uint8_t x, uint8_t y, char str[]) {
|
||||||
|
uint8_t c;
|
||||||
|
for (uint8_t ch, ci = 0; ch = str[ci], ch != '\0'; ci++, x += 8) {
|
||||||
|
c = ch - 0x20;
|
||||||
|
display_set_pos(x, y);
|
||||||
|
for (uint8_t cx = 0; cx < 8; cx++) {
|
||||||
|
i2cWriteData(F8X16[c * 16 + cx]);
|
||||||
|
}
|
||||||
|
display_set_pos(x, y + 1);
|
||||||
|
for (uint8_t cx = 0; cx < 8; cx++) {
|
||||||
|
i2cWriteData(F8X16[c * 16 + cx + 8]);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void init_display() {
|
||||||
|
i2cWriteCommand(0xAE); // display off
|
||||||
|
i2cWriteCommand(0x00); // set lower column address
|
||||||
|
i2cWriteCommand(0x10); // set higher column address
|
||||||
|
i2cWriteCommand(0x40); // set start line address
|
||||||
|
i2cWriteCommand(0x81); // set contrast control register
|
||||||
|
i2cWriteCommand(0xCF); // set contrast
|
||||||
|
i2cWriteCommand(0xA1); // set segment re-map
|
||||||
|
i2cWriteCommand(0xC8); // set COM output scan direction
|
||||||
|
i2cWriteCommand(0xA6); // set normal display
|
||||||
|
i2cWriteCommand(0xA8); // set multiplex ratio(1 to 64)
|
||||||
|
i2cWriteCommand(0x3F); // 1/64 duty
|
||||||
|
i2cWriteCommand(0xD3); // set display offset
|
||||||
|
i2cWriteCommand(0x00); // not offset
|
||||||
|
i2cWriteCommand(0xD5); // set display clock divide ratio/oscillator frequency
|
||||||
|
i2cWriteCommand(0x80); // set divide ratio
|
||||||
|
i2cWriteCommand(0xD9); // set pre-charge period
|
||||||
|
i2cWriteCommand(0xF1); // set pre-charge voltage
|
||||||
|
i2cWriteCommand(0xDA); // set com pins hardware configuration
|
||||||
|
i2cWriteCommand(0x12);
|
||||||
|
i2cWriteCommand(0xDB); // set vcomh
|
||||||
|
i2cWriteCommand(0x40); // 0.77*vcc
|
||||||
|
i2cWriteCommand(0x20); // set memory addressing mode
|
||||||
|
i2cWriteCommand(0x02); // set page addressing mode
|
||||||
|
i2cWriteCommand(0x8D); // set charge pump enable/disable
|
||||||
|
i2cWriteCommand(0x14); // set(0x10) disable
|
||||||
|
i2cWriteCommand(0xAF); // display on
|
||||||
|
|
||||||
|
display_fill(0x00);
|
||||||
|
display_set_pos(0, 0);
|
||||||
|
}
|
36
main/main.c
36
main/main.c
@ -1,3 +1,4 @@
|
|||||||
|
#include "driver/i2c.h"
|
||||||
#include "esp_log.h"
|
#include "esp_log.h"
|
||||||
#include "freertos/FreeRTOS.h"
|
#include "freertos/FreeRTOS.h"
|
||||||
#include "freertos/task.h"
|
#include "freertos/task.h"
|
||||||
@ -6,10 +7,45 @@
|
|||||||
#include "sdkconfig.h"
|
#include "sdkconfig.h"
|
||||||
#include "wifi.c"
|
#include "wifi.c"
|
||||||
|
|
||||||
|
#define I2C_MASTER_TX_BUF_DISABLE 0 /*!< I2C master doesn't need buffer */
|
||||||
|
#define I2C_MASTER_RX_BUF_DISABLE 0 /*!< I2C master doesn't need buffer */
|
||||||
|
#define I2C_MASTER_SDA_IO CONFIG_I2C_SDA
|
||||||
|
#define I2C_MASTER_SCL_IO CONFIG_I2C_SCL
|
||||||
|
|
||||||
|
#define I2C_MASTER_FREQ_HZ 400000 /*!< I2C master clock frequency */
|
||||||
|
#define I2C_MASTER_NUM CONFIG_I2C_NUM
|
||||||
|
|
||||||
|
#include "embedded_display.c"
|
||||||
|
#include "temperature.c"
|
||||||
|
|
||||||
|
void init_i2c() {
|
||||||
|
int i2c_master_port = I2C_MASTER_NUM;
|
||||||
|
|
||||||
|
i2c_config_t conf = {
|
||||||
|
.mode = I2C_MODE_MASTER,
|
||||||
|
.sda_io_num = I2C_MASTER_SDA_IO,
|
||||||
|
.scl_io_num = I2C_MASTER_SCL_IO,
|
||||||
|
.sda_pullup_en = GPIO_PULLUP_ENABLE,
|
||||||
|
.scl_pullup_en = GPIO_PULLUP_ENABLE,
|
||||||
|
.master.clk_speed = I2C_MASTER_FREQ_HZ,
|
||||||
|
};
|
||||||
|
i2c_param_config(i2c_master_port, &conf);
|
||||||
|
ESP_LOGI("I2C", "Enabling I2C");
|
||||||
|
ESP_ERROR_CHECK(i2c_driver_install(i2c_master_port, conf.mode,
|
||||||
|
I2C_MASTER_RX_BUF_DISABLE,
|
||||||
|
I2C_MASTER_TX_BUF_DISABLE, 0));
|
||||||
|
|
||||||
|
ESP_LOGI("SCR", "I2C initialized successfully");
|
||||||
|
}
|
||||||
|
|
||||||
static const char *TAG = "DisplayAmbientLight";
|
static const char *TAG = "DisplayAmbientLight";
|
||||||
|
|
||||||
void app_main(void) {
|
void app_main(void) {
|
||||||
light_init_strip();
|
light_init_strip();
|
||||||
|
init_i2c();
|
||||||
|
init_display();
|
||||||
|
auto_fetch_temperature();
|
||||||
|
display_print8_str(0, 0, "Ambient Light");
|
||||||
init_ui();
|
init_ui();
|
||||||
xTaskCreate(publish_ui_input, "ui_input_event", 2048, NULL, 10, NULL);
|
xTaskCreate(publish_ui_input, "ui_input_event", 2048, NULL, 10, NULL);
|
||||||
vTaskDelay(pdMS_TO_TICKS(10));
|
vTaskDelay(pdMS_TO_TICKS(10));
|
||||||
|
73
main/temperature.c
Normal file
73
main/temperature.c
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#include "driver/i2c.h"
|
||||||
|
#include "embedded_display.c"
|
||||||
|
#include "esp_log.h"
|
||||||
|
|
||||||
|
#define ACK_CHECK_EN 0x1 /*!< I2C master will check ack from slave*/
|
||||||
|
#define ACK_CHECK_DIS 0x0 /*!< I2C master will not check ack from slave */
|
||||||
|
#define ACK_VAL 0x0 /*!< I2C ack value */
|
||||||
|
#define NACK_VAL 0x1 /*!< I2C nack value */
|
||||||
|
|
||||||
|
#define I2C_MASTER_NUM CONFIG_I2C_NUM
|
||||||
|
|
||||||
|
#define GX21M15_ADDRESS 0x90
|
||||||
|
#define GX21M15_TEMP_POINTER_VALUE 0b00 // 温度寄存器
|
||||||
|
#define GX21M15_CONF_POINTER_VALUE 0b01 // 配置寄存器
|
||||||
|
#define GX21M15_THYST_POINTER_VALUE 0b10 // 回滞寄存器
|
||||||
|
#define GX21M15_TOS_POINTER_VALUE 0b11 // 过温关断寄存器
|
||||||
|
|
||||||
|
#define DEFAULT_TEMPERATURE -999 // 过温关断寄存器
|
||||||
|
|
||||||
|
#define TEMPERATURE_TAG "temperature"
|
||||||
|
void fetch_temperature(void* arg) {
|
||||||
|
esp_err_t error;
|
||||||
|
float temperature = DEFAULT_TEMPERATURE;
|
||||||
|
char temperature_str[10];
|
||||||
|
uint8_t temperature_buffer[] = {0, 0};
|
||||||
|
for (;;) {
|
||||||
|
i2c_cmd_handle_t cmd = i2c_cmd_link_create();
|
||||||
|
i2c_master_start(cmd);
|
||||||
|
i2c_master_write_byte(cmd, GX21M15_ADDRESS | I2C_MASTER_WRITE,
|
||||||
|
ACK_CHECK_EN);
|
||||||
|
i2c_master_write_byte(cmd, 0, ACK_CHECK_EN);
|
||||||
|
i2c_master_start(cmd);
|
||||||
|
i2c_master_write_byte(cmd, GX21M15_ADDRESS | I2C_MASTER_READ, ACK_VAL);
|
||||||
|
i2c_master_read_byte(cmd, &(temperature_buffer[0]), ACK_VAL);
|
||||||
|
i2c_master_read_byte(cmd, &(temperature_buffer[1]), NACK_VAL);
|
||||||
|
i2c_master_stop(cmd);
|
||||||
|
error =
|
||||||
|
i2c_master_cmd_begin(I2C_MASTER_NUM, cmd, 1000 / portTICK_PERIOD_MS);
|
||||||
|
i2c_cmd_link_delete(cmd);
|
||||||
|
if (error != ESP_OK) {
|
||||||
|
ESP_LOGW(TEMPERATURE_TAG, "read failed. %x", error);
|
||||||
|
} else {
|
||||||
|
if (temperature_buffer[0] == 0xff) {
|
||||||
|
if (temperature == DEFAULT_TEMPERATURE) {
|
||||||
|
sprintf(temperature_str, "Temp: Loading");
|
||||||
|
} else {
|
||||||
|
sprintf(temperature_str, "Temp: %.3f.", temperature);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (temperature_buffer[0] >> 7) {
|
||||||
|
temperature = -(((((~temperature_buffer[0]) & 0x7f) << 3) |
|
||||||
|
((~temperature_buffer[1] >> 5) & 0x07)) +
|
||||||
|
1) *
|
||||||
|
0.125;
|
||||||
|
} else {
|
||||||
|
temperature =
|
||||||
|
(temperature_buffer[0] << 3 | temperature_buffer[1] >> 5) * 0.125;
|
||||||
|
}
|
||||||
|
sprintf(temperature_str, "Temp: %.3f ", temperature);
|
||||||
|
}
|
||||||
|
|
||||||
|
display_print8_str(8, 2, temperature_str);
|
||||||
|
}
|
||||||
|
vTaskDelay(pdMS_TO_TICKS(1000));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void auto_fetch_temperature() {
|
||||||
|
xTaskCreate(fetch_temperature, "ui_input_event", 2048, NULL, 10, NULL);
|
||||||
|
}
|
146
main/ui.c
146
main/ui.c
@ -33,93 +33,83 @@ typedef struct s_ui_input {
|
|||||||
uint16_t value;
|
uint16_t value;
|
||||||
} s_ui_input_t;
|
} s_ui_input_t;
|
||||||
|
|
||||||
static xQueueHandle encoder_event_queue = NULL;
|
|
||||||
static xQueueHandle ui_input_event = NULL;
|
static xQueueHandle ui_input_event = NULL;
|
||||||
|
|
||||||
static void IRAM_ATTR gpio_isr_handler(void* arg) {
|
|
||||||
uint8_t input_key = (uint8_t)arg;
|
|
||||||
xQueueSendFromISR(encoder_event_queue, &input_key, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int8_t rising_edge_rotation_direction = NOT_ROTATING;
|
static int8_t rising_edge_rotation_direction = NOT_ROTATING;
|
||||||
static int8_t falling_edge_rotation_direction = NOT_ROTATING;
|
static int8_t falling_edge_rotation_direction = NOT_ROTATING;
|
||||||
static int8_t display_0_brightness = 20;
|
static uint8_t display_0_brightness = 20;
|
||||||
static int8_t display_1_brightness = 20;
|
static uint8_t display_1_brightness = 20;
|
||||||
|
|
||||||
static s_ui_input_t current_ui_input = {};
|
static s_ui_input_t current_ui_input = {};
|
||||||
|
|
||||||
static void encoder_value_change(void* arg) {
|
uint8_t input_key;
|
||||||
uint8_t input_key;
|
uint8_t clk_pin = ENCODER_0_CLK_PIN;
|
||||||
uint8_t clk_pin = ENCODER_0_CLK_PIN;
|
uint8_t dt_level;
|
||||||
uint8_t dt_pin = ENCODER_0_DT_PIN;
|
uint8_t dt_pin = ENCODER_0_DT_PIN;
|
||||||
uint8_t* value = &display_0_brightness;
|
uint8_t* value = &display_0_brightness;
|
||||||
for (;;) {
|
|
||||||
if (xQueueReceive(encoder_event_queue, &input_key, portMAX_DELAY)) {
|
|
||||||
switch (input_key) {
|
|
||||||
case UI_INPUT_DISPLAY_0_BRIGHTNESS:
|
|
||||||
clk_pin = ENCODER_0_CLK_PIN;
|
|
||||||
dt_pin = ENCODER_0_DT_PIN;
|
|
||||||
value = &display_0_brightness;
|
|
||||||
break;
|
|
||||||
case UI_INPUT_DISPLAY_1_BRIGHTNESS:
|
|
||||||
clk_pin = ENCODER_1_CLK_PIN;
|
|
||||||
dt_pin = ENCODER_1_DT_PIN;
|
|
||||||
value = &display_1_brightness;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (gpio_get_level(clk_pin)) {
|
|
||||||
rising_edge_rotation_direction = gpio_get_level(dt_pin) == 0;
|
|
||||||
// printf("R %d\t", rising_edge_rotation_direction);
|
|
||||||
if (falling_edge_rotation_direction == rising_edge_rotation_direction) {
|
|
||||||
if (rising_edge_rotation_direction) {
|
|
||||||
gpio_set_level(GPIO_OUTPUT_IO_0, 1);
|
|
||||||
gpio_set_level(GPIO_OUTPUT_IO_1, 0);
|
|
||||||
*value += 1;
|
|
||||||
printf("CW\tvalue: %d\n", *value);
|
|
||||||
} else {
|
|
||||||
gpio_set_level(GPIO_OUTPUT_IO_0, 0);
|
|
||||||
gpio_set_level(GPIO_OUTPUT_IO_1, 1);
|
|
||||||
*value -= 1;
|
|
||||||
printf("CCW\tvalue: %d\n", *value);
|
|
||||||
}
|
|
||||||
falling_edge_rotation_direction = NOT_ROTATING;
|
|
||||||
|
|
||||||
current_ui_input.key = input_key;
|
static void IRAM_ATTR gpio_isr_handler(void* arg) {
|
||||||
current_ui_input.value = *value;
|
uint8_t input_key = (uint8_t)arg;
|
||||||
xQueueSend(ui_input_event, ¤t_ui_input, NULL);
|
|
||||||
} else {
|
switch (input_key) {
|
||||||
if (falling_edge_rotation_direction != NOT_ROTATING) {
|
case UI_INPUT_DISPLAY_0_BRIGHTNESS:
|
||||||
rising_edge_rotation_direction = NOT_ROTATING;
|
clk_pin = ENCODER_0_CLK_PIN;
|
||||||
}
|
dt_pin = ENCODER_0_DT_PIN;
|
||||||
}
|
value = &display_0_brightness;
|
||||||
|
break;
|
||||||
|
case UI_INPUT_DISPLAY_1_BRIGHTNESS:
|
||||||
|
clk_pin = ENCODER_1_CLK_PIN;
|
||||||
|
dt_pin = ENCODER_1_DT_PIN;
|
||||||
|
value = &display_1_brightness;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
dt_level = gpio_get_level(dt_pin);
|
||||||
|
if (gpio_get_level(clk_pin)) {
|
||||||
|
rising_edge_rotation_direction = dt_level == 0;
|
||||||
|
if (falling_edge_rotation_direction == rising_edge_rotation_direction) {
|
||||||
|
if (rising_edge_rotation_direction) {
|
||||||
|
gpio_set_level(GPIO_OUTPUT_IO_0, 1);
|
||||||
|
gpio_set_level(GPIO_OUTPUT_IO_1, 0);
|
||||||
|
*value += 1;
|
||||||
} else {
|
} else {
|
||||||
falling_edge_rotation_direction = gpio_get_level(dt_pin);
|
gpio_set_level(GPIO_OUTPUT_IO_0, 0);
|
||||||
// printf("F %d\t", falling_edge_rotation_direction);
|
gpio_set_level(GPIO_OUTPUT_IO_1, 1);
|
||||||
if (rising_edge_rotation_direction == falling_edge_rotation_direction) {
|
*value -= 1;
|
||||||
if (falling_edge_rotation_direction) {
|
}
|
||||||
gpio_set_level(GPIO_OUTPUT_IO_0, 1);
|
falling_edge_rotation_direction = NOT_ROTATING;
|
||||||
gpio_set_level(GPIO_OUTPUT_IO_1, 0);
|
|
||||||
*value += 1;
|
|
||||||
printf("CW\tvalue: %d\n", *value);
|
|
||||||
} else {
|
|
||||||
gpio_set_level(GPIO_OUTPUT_IO_0, 0);
|
|
||||||
gpio_set_level(GPIO_OUTPUT_IO_1, 1);
|
|
||||||
*value -= 1;
|
|
||||||
printf("CCW\tvalue: %d\n", *value);
|
|
||||||
}
|
|
||||||
rising_edge_rotation_direction = NOT_ROTATING;
|
|
||||||
|
|
||||||
current_ui_input.key = input_key;
|
current_ui_input.key = input_key;
|
||||||
current_ui_input.value = *value;
|
current_ui_input.value = *value;
|
||||||
xQueueSend(ui_input_event, ¤t_ui_input, NULL);
|
xQueueSendFromISR(ui_input_event, ¤t_ui_input, NULL);
|
||||||
|
} else {
|
||||||
|
if (falling_edge_rotation_direction != NOT_ROTATING) {
|
||||||
|
rising_edge_rotation_direction = NOT_ROTATING;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
falling_edge_rotation_direction = dt_level;
|
||||||
|
// printf("F %d\t", falling_edge_rotation_direction);
|
||||||
|
if (rising_edge_rotation_direction == falling_edge_rotation_direction) {
|
||||||
|
if (falling_edge_rotation_direction) {
|
||||||
|
gpio_set_level(GPIO_OUTPUT_IO_0, 1);
|
||||||
|
gpio_set_level(GPIO_OUTPUT_IO_1, 0);
|
||||||
|
*value += 1;
|
||||||
|
} else {
|
||||||
|
gpio_set_level(GPIO_OUTPUT_IO_0, 0);
|
||||||
|
gpio_set_level(GPIO_OUTPUT_IO_1, 1);
|
||||||
|
*value -= 1;
|
||||||
|
}
|
||||||
|
rising_edge_rotation_direction = NOT_ROTATING;
|
||||||
|
|
||||||
} else {
|
current_ui_input.key = input_key;
|
||||||
if (rising_edge_rotation_direction != NOT_ROTATING) {
|
current_ui_input.value = *value;
|
||||||
falling_edge_rotation_direction = NOT_ROTATING;
|
xQueueSendFromISR(ui_input_event, ¤t_ui_input, NULL);
|
||||||
}
|
|
||||||
}
|
} else {
|
||||||
|
if (rising_edge_rotation_direction != NOT_ROTATING) {
|
||||||
|
falling_edge_rotation_direction = NOT_ROTATING;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -152,11 +142,7 @@ void init_ui(void) {
|
|||||||
io_conf.pin_bit_mask = ENCODER_0_DT_PIN_MASK | ENCODER_1_DT_PIN_MASK;
|
io_conf.pin_bit_mask = ENCODER_0_DT_PIN_MASK | ENCODER_1_DT_PIN_MASK;
|
||||||
gpio_config(&io_conf);
|
gpio_config(&io_conf);
|
||||||
|
|
||||||
// create a queue to handle gpio event from isr
|
|
||||||
encoder_event_queue = xQueueCreate(10, sizeof(uint8_t));
|
|
||||||
// start encoder task
|
// start encoder task
|
||||||
xTaskCreate(encoder_value_change, "encoder_value_change", 2048, NULL, 10,
|
|
||||||
NULL);
|
|
||||||
ui_input_event = xQueueCreate(10, sizeof(s_ui_input_t));
|
ui_input_event = xQueueCreate(10, sizeof(s_ui_input_t));
|
||||||
|
|
||||||
// install gpio isr service
|
// install gpio isr service
|
||||||
|
Loading…
Reference in New Issue
Block a user