test
Dependencies: mbed-STM32F103C8T6 mbed-rtos mbed-dev
Revision 10:ef9fa7e34eff, committed 2020-05-05
- Comitter:
- bbw
- Date:
- Tue May 05 11:15:56 2020 +0000
- Parent:
- 8:a32b83084287
- Child:
- 11:9dc8bbb8dda3
- Commit message:
- change back the OS to Mbed OS2 because OS5 consume a lot of RAM space.
Changed in this revision
--- a/eeprom.h Wed Apr 29 03:14:26 2020 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -#ifndef EEPROM_H -#define EEPROM_H - -#define MCP24AA02_ADDR (0xA0) // 24AA02 2K EEPROM using i2c Address -#define WRITE (0x00) // 24AA02 2K EEPROM using i2c Write bit -#define READ (0x01) // 24AA02 2K EEPROM using i2c Read bit -#define MCP24AA02_MID (0xFA) // Manufacturer ID Address (Read Only 0x29==Microchip) -#define MCP24AA02_DID (0xFB) // Device ID Adress (Read Only 0x41==4 is i2c family and 1 is 2K device) - -void readID(int addy); - -void readEE(int addy); - -void writeEE(int addy,int data); - -void eraseEE(void); - -#endif \ No newline at end of file
--- a/main.cpp Wed Apr 29 03:14:26 2020 +0000
+++ b/main.cpp Tue May 05 11:15:56 2020 +0000
@@ -1,72 +1,16 @@
#include "mbed.h"
#include "stm32f103c8t6.h"
-#include "string.h"
-#include "main.h"
+#include <string>
#include "stdio.h"
#include "stdlib.h"
-
-DigitalOut MOTOA1(PB_4);
-DigitalOut MOTOB1(PB_5);
-
-DigitalOut MOTOA2(PB_8);
-DigitalOut MOTOB2(PB_9);
-
-AnalogIn SensorCurrent(PA_0);
-
-void motor1_move(uint8_t dir);
-void motor2_move(uint8_t dir);
-
-void system_init();
+#include "rtos.h"
-uint8_t sensor_cnt,cal_cnt, cal_cnt2, cur_cnt, tar_cnt, pre_sensor_cnt;
-//uint8_t dir;
-float sense_value;
-uint8_t ov_flag, init_flag, motor1_ready_flag, motor2_ready_flag, sensor_flag, ready_flag;
-uint8_t open_flag,close_flag;
-float m_val = 0;
-
-#define MAX_LENGTH_STEPS 55
-#define MIN_LENGTH_STEPS 10
-#define MOVING_UP 1
-#define MOVING_DOWN 2
-#define MOVING_FORWARD 1
-#define MOVING_BACKWARD 2
-#define STOP 0
-
-//---------------------------------------------------
DigitalOut led1(PC_13);
-//Serial pc(PB_10,PB_11);
-
-UARTSerial *_serial;
-
-UARTSerial debug_uart(PB_10, PB_11, 115200);
-UARTSerial wifi_uart(PA_2, PA_3, 115200);
-
-InterruptIn DebugKey(PA_12);
-volatile bool button1_pressed = false; // Used in the main loop
-volatile bool button1_enabled = true; // Used for debouncing
-Timeout button1_timeout; // Used for debouncing
+RawSerial debug_uart(PB_10, PB_11, 115200);
+RawSerial wifi_uart(PA_2, PA_3, 115200);
-// Enables button when bouncing is over
-void button1_enabled_cb(void)
-{
- button1_enabled = true;
-}
-
-// ISR handling button pressed event
-void button1_onpressed_cb(void)
-{
- if (button1_enabled) { // Disabled while the button is bouncing
- button1_enabled = false;
- button1_pressed = true; // To be read by the main loop
- button1_timeout.attach(callback(button1_enabled_cb), 0.3); // Debounce time 300 ms
- }
-}
-
-
-//Serial wifi_uart(PA_2, PA_3, 115200);
-//Serial debug_uart(PB_10, PB_11, 115200);
+Timer timer;
char rxBuf[32];
char wifi_rxBuf[32]; //receive msg from xiaomi cloud
@@ -77,488 +21,197 @@
int i = 0;
//---------------------------------------------------
-ATCmdParser *_parser;
-void sensor_capture_cb(void){
- sensor_cnt++;
- if(open_flag){
- cur_cnt++;
- }
- if(close_flag){
- if(cur_cnt>0){
- cur_cnt--;
- }
- }
-}
+string a("");
+string b("");
+
+int flag = 0;
-void Power_thread(){/*detect current*/
- char len[50];
- char i = 0;
- while(true){
- Thread::wait(200); /*unit millisec*/
- sense_value = SensorCurrent.read();
- if((sense_value>0.5)&&sensor_flag){
- sprintf(len, "Power_thread: sense_value = %0.4f > 0.5 \r\n", sense_value);
- debug_uart.write(len, sizeof(len));
- i++;
- if(i>1){
- ov_flag = 1;
- }
- }else{
- i = 0;
+#if 0
+void led1_thread(void const *argument) {
+
+ while (true)
+ {
+ wifi_uart.printf("get_down\r\n");
+ while(1){
+ if(wifi_uart.readable())
+ {
+ char ch2 = wifi_uart.getc();
+ //f((ch2=='\n')||(ch2=='\r'))
+ if(ch2=='\r')
+ {
+ debug_uart.printf("got string from wifi uart: '%s' \r\n", b.c_str());
+ if(!strncmp(b.c_str(),"down none",9))
+ {
+ //debug_uart.printf("--- none\r\n");
+ }
+ if(!(strncmp(b.c_str(),"down set_properties",19)))
+ {
+ debug_uart.printf("--- set_properties\r\n");
+ wifi_uart.printf("result 2 7 0\r\n");
+ }
+ if(!(strncmp(b.c_str(),"down get_properties",19)))
+ {
+ debug_uart.printf("--- get_properties\r\n");
+ //wifi_uart.printf("result 2 7 0\r\n");
+ }
+ if(!strncmp(b.c_str(),"down MIIO_net_change",20))
+ {
+ if((!strncmp(b.c_str()+21, "offline", 7)))
+ {
+ debug_uart.printf("offline\r\n");
+ }
+ if((!strncmp(b.c_str()+21, "local", 5)))
+ {
+ debug_uart.printf("local\r\n");
+ }
+ if((!strncmp(b.c_str()+21, "cloud", 5)))
+ {
+ debug_uart.printf("cloud\r\n");
+ }
+ }
+ b.clear();
+ break;
+ }else{
+ b += ch2;
+ }
+ }
+ }
+ //wait_ms(400);
}
-
- }
}
-void Motor1_thread(){
- char len[50];
- while(true){
- Thread::wait(300); /*unit millisec*/
- if(!init_flag){
- while(1){
- if(motor2_ready_flag){break;}else{
- wait(1);
- debug_uart.write("Motor1_thread: -------------------------------\r\n",48);
+#endif
+
+#if 0
+void led0_thread(void const *argument) {
+ while (1) {
+ if(debug_uart.readable()){
+ char ch1 = debug_uart.getc();
+ if(ch1=='\n'){
+ debug_uart.printf("sent string to wifi uart: '%s' \r\n", a.c_str());
+ wifi_uart.printf("%s\r\n",a.c_str());
+ a.clear();
+ }else{
+ a += ch1;
+ }
}
- }
- motor2_ready_flag = 0;
- sensor_cnt = 0;
- motor1_move(MOVING_FORWARD);
- wait(1);
- sensor_flag = 1; /*enable current monitoring*/
- while(!ov_flag){
- debug_uart.write("Motor1_thread: waiting for ov_flag = 1 \r\n",41);
- wait(1);
- }
- motor1_move(STOP);
- ov_flag = 0;
- motor2_ready_flag = 0;
- cal_cnt = sensor_cnt;
- sprintf(len, "Motor1_thread: primary calibrated cnt is %d \r\n", cal_cnt);
- debug_uart.write(len, sizeof(len));
- wait(1);
- motor1_ready_flag = 1;
- while(1){
- if(motor2_ready_flag){break;}else{
- wait(1);
- debug_uart.write("Motor1_thread: -------------------------------\r\n",48);
+ if(wifi_uart.readable())
+ {
+ char ch2 = wifi_uart.getc();
+ if((ch2=='\n')||(ch2=='\r')){
+ debug_uart.printf("got string from wifi uart: '%s' \r\n", b.c_str());
+ b.clear();
+ }else{
+ b += ch2;
+ }
}
- }
- motor2_ready_flag = 0;
- sensor_cnt = 0;
- motor1_move(MOVING_BACKWARD);
- while(!ov_flag){
- debug_uart.write("Motor1_thread: waiting for ov_flag = 1 \r\n",41);
- wait(1);
- }
- motor1_move(STOP);
- cal_cnt2 = sensor_cnt;
- sensor_cnt = 0;
- cal_cnt = (cal_cnt2+cal_cnt)/2;
- sprintf(len, "Motor1_thread: final calibrated cnt is %d \r\n", cal_cnt);
- debug_uart.write(len, sizeof(len));
- wait(1);
- motor1_ready_flag = 1;
- while(!init_flag){debug_uart.write("Motor1_thread: -------------------------------\r\n",48);wait(1);}
- }else{
- debug_uart.write("Motor1_thread: calibration done, wait for motor2 action.\r\n", 58);
- while(1){
- if(motor2_ready_flag){break;}else{
- wait(1);
- debug_uart.write("Motor1_thread: -------------------------------\r\n",48);
- }
- }
- motor2_ready_flag = 0;
- if(open_flag){
- motor1_move(MOVING_FORWARD);
- while(1){
- sprintf(len, "Motor1_thread: cur_cnt is %d \r\n", cur_cnt);
- debug_uart.write(len, sizeof(len));
- sprintf(len, "Motor1_thread: tar_cnt is %d \r\n", tar_cnt);
- debug_uart.write(len, sizeof(len));
- debug_uart.write("Motor1_thread: **************************** \r\n", 46);
- wait(1);
- if(cur_cnt>=tar_cnt){
- break;
- }
- if(ov_flag){
- break;
- }
- }
- }
- if(close_flag){
- motor1_move(MOVING_BACKWARD);
- while(1){
- sprintf(len, "Motor1_thread: cur_cnt is %d \r\n", cur_cnt);
- debug_uart.write(len, sizeof(len));
- sprintf(len, "Motor1_thread: tar_cnt is %d \r\n", tar_cnt);
- debug_uart.write(len, sizeof(len));
- debug_uart.write("Motor1_thread: **************************** \r\n", 46);
- wait(1);
- if(cur_cnt<=tar_cnt){
- break;
- }
- if(ov_flag){
- break;
- }
- }
- }
- motor1_move(STOP);
- if(!ov_flag){
- cur_cnt = tar_cnt;
- }else{
- if(open_flag){cur_cnt = 90;}
- if(close_flag){cur_cnt = 0;}
- }
- ov_flag = 0;
- motor1_ready_flag = 1;
- }
- }
+ //wait(0.5);
+ }
+}
+#endif
+
+void led0_thread(void const *argument) {
+ int err;
+ char rxBuf[32];
+ char wifi_rxBuf[32];
+ char i;
+ int position;
+ char dat[2];
+
+ while (1) {
+ wifi_uart.printf("get_down\r");
+ timer.reset();
+ b.clear();
+ while(timer.read_ms()<5000){
+ if(wifi_uart.readable()){
+ char ch = wifi_uart.getc();
+ if(ch!=0x0d){
+ b += ch;
+ }else{
+ debug_uart.printf("get string: %s \r\n", b.c_str());
+ #if 1
+ if(!strncmp(b.c_str(),"down none",9))
+ {
+ //debug_uart.printf("--- none\r\n");
+ }
+ if(!(strncmp(b.c_str(),"down set_properties",19)))
+ {
+ debug_uart.printf("--- set_properties\r\n");
+ b.erase(0,b.length()-3);
+ position = atoi(b.c_str());
+ debug_uart.printf("position = %d\r\n",position);
+ wifi_uart.printf("result 2 7 0\r\n");
+ b.clear();
+ continue;
+ }
+ if(!(strncmp(b.c_str(),"down get_properties",19)))
+ {
+ debug_uart.printf("--- get_properties\r\n");
+ wifi_uart.printf("result 2 4 0 10 2 6 0 %d 2 7 30\r\n", position);
+ b.clear();
+ continue;
+ }
+ if(!strncmp(b.c_str(),"down MIIO_net_change",20))
+ {
+ if((!strncmp(b.c_str()+21, "offline", 7)))
+ {
+ debug_uart.printf("offline\r\n");
+ }
+ if((!strncmp(b.c_str()+21, "local", 5)))
+ {
+ debug_uart.printf("local\r\n");
+ }
+ if((!strncmp(b.c_str()+21, "cloud", 5)))
+ {
+ debug_uart.printf("cloud\r\n");
+ }
+ }
+ #endif
+ break;
+ }
+ }
+ }
+ while(wifi_uart.readable()){wifi_uart.getc();}
+ wait_ms(400);
+ }
}
-void Motor2_thread(){
- uint8_t sta1,sta2;
- uint8_t i;
- DigitalIn Stopper1(PA_13);
- DigitalIn Stopper2(PA_15);
- char len[50];
- while(true){
- Thread::wait(300); /*unit millisec*/
- if(!init_flag){
- wait(1);
- debug_uart.write("Motor2_thread: motor2 move up\r\n", 31);
- motor2_move(MOVING_UP);
- while(Stopper1){;}
- motor2_move(STOP);
- debug_uart.write("Motor2_thread: Up stopper triggered \r\n",38);
- motor2_ready_flag = 1;
- wait(1);
- while(1){
- if(motor1_ready_flag){break;}else{
- wait(1);debug_uart.write("Motor2_thread: --------------------------------- \r\n",51);
- }
- }
- motor1_ready_flag = 0;
- motor2_move(MOVING_DOWN);
- while(Stopper2){;}
- motor2_move(STOP);
- debug_uart.write("Motor2_thread: Down stopper triggered \r\n", 40);
- motor2_ready_flag = 1;
- while(1){
- if(motor1_ready_flag){break;}else{
- wait(1);debug_uart.write("Motor2_thread: --------------------------------- \r\n",51);
- }
- }
- motor1_ready_flag = 0;
- debug_uart.write("Motor2_thread: motor2 move to center\r\n",38);
- ov_flag = 0;
- ready_flag = 1;
- motor2_move(MOVING_UP);
- wait(1.6);
- motor2_move(STOP);
- ready_flag = 0;
- debug_uart.write("Motor2_thread: motor2 thread done\r\n",35);
- sprintf(len, "Main_thread: mean current is =%2.4f \r\n", m_val);
- debug_uart.write(len, sizeof(len));
- cur_cnt = 0;
- init_flag = 1;
- }else{
- debug_uart.write("Motor2_thread: calibration done.wait for open/close flag\r\n", 58);
- while(1){
- if(open_flag){break;}
- if(close_flag){break;}
- wait(1);
- debug_uart.write("Motor2_thread: ------------command?------------- \r\n", 51);
- }
- if(open_flag){
- debug_uart.write("Motor2_thread: --------------open--------------- \r\n", 51);
- motor2_move(MOVING_UP);
- while(Stopper1){;}
- motor2_move(STOP);
- motor2_ready_flag = 1;
- }
- if(close_flag){
- debug_uart.write("Motor2_thread: -------------close-------------- \r\n", 50);
- motor2_move(MOVING_DOWN);
- while(1){
- if(!Stopper2){i++;};
- if(i>20){break;}
- }
- i = 0;
- motor2_move(STOP);
- motor2_ready_flag = 1;
- }
- while(1){
- if(motor1_ready_flag){break;}else{
- wait(1);
- debug_uart.write("Motor2_thread: --------------------------------- \r\n", 51);
- }
- }
- motor1_ready_flag = 0;
- debug_uart.write("Motor2_thread: motor2 move to center\r\n", 38);
- wait(1);
- ready_flag = 1;
- if(open_flag){
- motor2_move(MOVING_DOWN);
- }
- if(close_flag){
- motor2_move(MOVING_UP);
- }
- wait(1.6);
- motor2_move(STOP);
- ready_flag = 0;
- debug_uart.write("Motor2_thread: motor2 thread done\r\n", 35);
- pre_sensor_cnt = sensor_cnt;
- open_flag = 0;
- close_flag = 0;
+void wifi_debug(void const *argument){
+ while(1){
+ if(wifi_uart.readable()){
+ debug_uart.putc(wifi_uart.getc());
+ }
+ if(debug_uart.readable()){
+ wifi_uart.putc(debug_uart.getc());
}
}
}
-
-
-void led1_thread() {
- int length;
- char len[20];
- char l;
- int position = 0;
- int error = 0;
-
- while (true)
- {
- wifi_uart.write("get_down\r\n", 10);
- if(wifi_uart.readable())
- {
- length = wifi_uart.read(wifi_rxBuf, sizeof(wifi_rxBuf));
- if(!(strncmp(wifi_rxBuf,"down none",9)))
- {
- //if return "down none"
- //debug_uart.write("--- none\r\n",10);
- }
- else if(!(strncmp(wifi_rxBuf,"down set_properties ",20)))
- {
- //if return "down set_properties"
- //debug_uart.write("--- set:\r\n", 10);
- //debug_uart.write(wifi_rxBuf, length);
-
- //set properties
- if(wifi_rxBuf[22] == '7')
- {
- //set target-position
- position = atoi(&wifi_rxBuf[24]);
- sprintf(len, "position:%d\r\n", position);
- debug_uart.write(len, sizeof(len));
- /*add by bob*/
- if(position<=10){//0
- tar_cnt = 0;
- }else if(position<=30){//25%
- tar_cnt = 30;
- }else if(position<=60){//50%
- tar_cnt = 50;
- }else if(position<=85){//75%
- tar_cnt = 70;
- }else{//100%
- tar_cnt = 90;
- }
- if(tar_cnt>cur_cnt){
- open_flag = 1;
- debug_uart.write("open flag = 1\r\n", 15);
- }
- if(tar_cnt<cur_cnt){
- close_flag = 1;
- debug_uart.write("close flag = 1\r\n", 16);
- }
- }
- //report result to cloud
- wifi_uart.write("result 2 7 0\r\n", 14);
- if(wifi_uart.readable())
- {
- //length = wifi_uart.read(wifi_rxBuf, sizeof(wifi_rxBuf));
- //debug_uart.write(wifi_rxBuf, length);
- }
- }
- else if(!(strncmp(wifi_rxBuf,"down get_properties ",20)))
- {
- //if return "down get_properties"
- //debug_uart.write("--- get:\r\n", 10);
- //debug_uart.write(wifi_rxBuf, length);
-
- //report result to cloud
- }
- else if(!(strncmp(wifi_rxBuf,"down MIIO_net_change ",21)))
- {
- //if return "down MIIO_net_change"
- //debug_uart.write(wifi_rxBuf, length);
- //debug_uart.write("--- net:\r\n",10);
- if((!strncmp(&wifi_rxBuf[21], "offline", 7)))
- {
- //连接中
- debug_uart.write("offline\r\n", 9);
- }
- else if((!strncmp(&wifi_rxBuf[21], "local", 5)))
- {
- //连上路由器但未连上服务器
- debug_uart.write("local\r\n", 7);
- }
- else if((!strncmp(&wifi_rxBuf[21], "cloud", 5)))
- {
- //连上小米云服务器
- debug_uart.write("cloud\r\n", 7);
- g_isCloud = 1;
- }
- }
- else
- {
- debug_uart.write(wifi_rxBuf, length);
- }
-
- }
- thread_sleep_for(400);
- }
-}
-
+int main() {
-void led0_thread() {
- int length;
- while (1) {
- if(debug_uart.readable())
- {
- length = debug_uart.read(rxBuf, sizeof(rxBuf));
- debug_uart.write(rxBuf, length);
- wifi_uart.write(rxBuf, length);
- debug_uart.write("111\r",4);
- }
- if(wifi_uart.readable())
- {
- length = wifi_uart.read(rxBuf, sizeof(rxBuf));
- debug_uart.write(rxBuf, length);
- debug_uart.write("222\r",4);
-
- }
- wait(0.5);
- }
-}
-
-
-void motor1_move(uint8_t dir){/*main motor*/
- if(dir==1){/*forward*/
- MOTOA1 = 0;
- MOTOB1 = 1;
- }else if(dir==2){/*backward*/
- MOTOA1 = 1;
- MOTOB1 = 0;
- }else{ /*stop*/
- MOTOA1 = 0;
- MOTOB1 = 0;
- }
-}
-
-void motor2_move(uint8_t dir){/*assistant motor*/
- if(dir==1){/*up*/
- MOTOA2 = 0;
- MOTOB2 = 1;
- }else if(dir==2){/*down*/
- MOTOA2 = 1;
- MOTOB2 = 0;
- }else{ /*stop*/
- MOTOA2 = 0;
- MOTOB2 = 0;
- }
-}
-
-void system_init()
-{
+ debug_uart.printf("hello world\r\n");
+ led1 = 1;
+ flag = 0;
+
+ wait(3);
- MOTOA1 = 0;
- MOTOB1 = 0;
- MOTOA2 = 0;
- MOTOB2 = 0;
- init_flag = 1;
- cur_cnt = 0;
- cal_cnt = 68;
- motor1_ready_flag = 0;
- motor2_ready_flag = 0;
- sense_value = 0;
- sensor_flag = 1;
- ready_flag = 0;
- debug_uart.write("*******************************\r\n",33);
- debug_uart.write("**********LAIWU TECH***********\r\n",33);
- debug_uart.write("*******************************\r\n",33);
- debug_uart.write("system init done, wait 3 seconds to start\r\n",43);
- wait(3);
-}
-
-int main() {
- int length;
- led1 = 1;
- char len[50];
+ Thread thread1(led0_thread, NULL, osPriorityHigh, DEFAULT_STACK_SIZE); /*check the real-time current*/
- debug_uart.write("hello world",11);
- WIFI_PWREN = 1;
- wait(3);
- system_init();
- InterruptIn Hall1(PA_14);
- //InterruptIn Hall2(PB_3);
- Hall1.fall(callback(sensor_capture_cb)); // Attach ISR to handle button press event
- DebugKey.fall(callback(button1_onpressed_cb)); // Attach ISR to handle button press event
- //Hall2.fall(callback(sensor_capture_cb)); // Attach ISR to handle button press event
- debug_uart.write("Hall sensor init done\r\n", 23);
-
-
- //Thread thread0(osPriorityNormal, 512, nullptr, nullptr);
- Thread thread1(osPriorityNormal, 512, nullptr, nullptr);
- //Thread thread2(osPriorityNormal, 512, nullptr, nullptr);
-
- Thread thread2(osPriorityNormal, 512, nullptr, nullptr); /*check the real-time current*/
- //debug_uart.printf("thread1~~~~~~~~~~~~~~~~\r\n");
- Thread thread3(osPriorityNormal, 512, nullptr, nullptr); /*check the real-time current*/
- //debug_uart.printf("thread2~~~~~~~~~~~~~~~~\r\n");
- Thread thread4(osPriorityNormal, 512, nullptr, nullptr); /*check the real-time current*/
- //debug_uart.printf("thread3~~~~~~~~~~~~~~~~\r\n");
-
- //thread0.start(led0_thread);
- thread1.start(led1_thread);
- thread2.start(Power_thread);
- thread3.start(Motor1_thread);
- thread4.start(Motor2_thread);
-
- debug_uart.write("four threads created\r\n",22);
-
+
+ timer.start();
+
while(1)
{
- if(g_isCloud)
- {
- debug_uart.write("connected\r\n",11);
- }
- if(ready_flag){
- m_val += sense_value;
- if(sense_value>0.5){
- motor2_move(STOP);
+ wait(1);
+#if 0
+ if(flag){
+ debug_uart.printf("get string: '%s'\r\n", b.c_str());
+ b.clear();
+ while(wifi_uart.readable()){wifi_uart.getc();}
+ flag = 0;
+ debug_uart.printf("sent get_down to module\r\n");
+ wifi_uart.printf("get_down\r\n");
}
- }
- if (button1_pressed) { // Set when button is pressed
- button1_pressed = false;
- debug_uart.write("restore wifi module\r\n",21);
- wifi_uart.write("restore\r\n", 9);
- }
- if(!open_flag&&!close_flag){
- if(sensor_cnt>(pre_sensor_cnt+5)){
- if(cur_cnt<5){open_flag = 1;tar_cnt = 90;}else{
- close_flag = 1;
- tar_cnt = 0;
- }
- }
- sprintf(len, "main_thread: sensor_cnt = %d. \r\n", sensor_cnt);
- debug_uart.write(len, sizeof(len));
- sprintf(len, "main_thread: pre_sensor_cnt = %d. \r\n", pre_sensor_cnt);
- debug_uart.write(len, sizeof(len));
- pre_sensor_cnt = sensor_cnt;
- }
- wait(3);
-
- //sprintf(len, "main_thread: current sense value is %.4f. \r\n", sense_value);
- //debug_uart.write(len, sizeof(len));
-
-
+#endif
}
}
\ No newline at end of file
--- a/main.h Wed Apr 29 03:14:26 2020 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,64 +0,0 @@ -#ifndef MAIN_H -#define MAIN_H - -#include "mbed.h" -//#include "FastIO.h" -#include "st7789v.h" -#include "stm32f103c8t6.h" -//#include "SHT21_ncleee.h" -#include "eeprom.h" - -static BusOut lcdBus(PB_13,PB_12,PB_2,PB_1,PB_0,PA_7,PA_6,PA_5); //Laiwu board configuration BusOut(LSB------MSB) - -#if 0 -/**/ -static DigitalOut TFTRD(PB_1); -static DigitalOut TFTWR(PB_10); -static DigitalOut TFTDC(PB_7); -static DigitalOut TFTRST(PB_11); -static DigitalOut TFTCS(PB_6); -#endif - -#if 0 -static FastOut<PB_14> TFTRD; -static FastOut<PB_15> TFTWR; -static FastOut<PA_8> TFTDC; -static FastOut<PA_11> TFTCS; -#endif - -#if 1 -static DigitalOut TFTRD(PB_14); -static DigitalOut TFTWR(PB_15); -static DigitalOut TFTDC(PA_8); -static DigitalOut TFTCS(PA_11); -#endif - -static I2C i2c(PB_7,PB_6); - -//static SHT21 sht(&i2c); - -//static DigitalIn Stopper1(PA_13); -//static DigitalIn Stopper2(PA_15); - -//static DigitalOut MOTOA1(PB_4); -//static DigitalOut MOTOB1(PB_5); - -//static DigitalOut MOTOA2(PB_8); -//static DigitalOut MOTOB2(PB_9); - -//static DigitalIn Hall1(PA_14); -static DigitalIn Hall2(PB_3); - -static Serial bt_uart(PA_9, PA_10); -//static Serial wifi_uart(PA_2, PA_3); -//static Serial debug_uart(PB_10, PB_11); - -static InterruptIn FrontKey(PA_4); -//static InterruptIn DebugKey(PA_12); - -static DigitalOut WIFI_PWREN(PC_13); - -//static AnalogIn SensorCurrent(PA_0); -static AnalogIn BatteryVoltage(PA_1); - -#endif \ No newline at end of file
--- a/main_ori.cpp Wed Apr 29 03:14:26 2020 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-#include "mbed.h"
-#include "stm32f103c8t6.h"
-#include "string.h"
-#include "main.h"
-
-#if 0
-DigitalOut led1(PC_13);
-
-//Serial pc(PB_10,PB_11);
-
-UARTSerial *_serial;
-
-UARTSerial debug_uart(PB_10, PB_11, 115200);
-UARTSerial wifi_uart(PA_2, PA_3, 115200);
-
-char rxBuf[32];
-char wifi_rxBuf[32];
-int i = 0;
-
-ATCmdParser *_parser;
-
-void led1_thread() {
- int length;
- while (true) {
- wifi_uart.write("get_down\r", 9);
- if(wifi_uart.readable())
- {
- length = wifi_uart.read(wifi_rxBuf, sizeof(wifi_rxBuf));
- debug_uart.write(wifi_rxBuf, length);
- }
- thread_sleep_for(400);
- }
-}
-
-
-void led0_thread() {
- int length;
- while (1) {
- if(debug_uart.readable())
- {
- length = debug_uart.read(rxBuf, sizeof(rxBuf));
- debug_uart.write(rxBuf, length);
- wifi_uart.write(rxBuf, length);
- debug_uart.write("111\r",4);
- }
- if(wifi_uart.readable())
- {
- length = wifi_uart.read(rxBuf, sizeof(rxBuf));
- debug_uart.write(rxBuf, length);
- debug_uart.write("222\r",4);
-
- }
- wait(0.5);
- }
-}
-
-
-int main() {
- int length;
- led1 = 1;
-
- wait(2);
-
- //debug_uart.printf("hello world\r\n");
- debug_uart.write("hello world",11);
-
- WIFI_PWREN = 1;
-#if 0
- while(1){
- if(debug_uart.readable())
- {
- length = debug_uart.read(rxBuf, sizeof(rxBuf));
- debug_uart.write(rxBuf, length);
- debug_uart.write("test",4);
- }
- wait(0.5);
- }
- //wifi_debug();
-
-
- _serial = new UARTSerial(PA_2, PA_3, 115200);
- _parser = new ATCmdParser(_serial);
- _parser->debug_on( 1 );
- _parser->set_delimiter("\r\n");
-
- debug_uart.printf("\nATCmdParser: Retrieving model");
- _parser->send("model\\r");
-
- _parser->recv("%s", model);
- debug_uart.printf("model:%s", model);
- #endif
-
- Thread thread0(osPriorityNormal, 512, nullptr, nullptr);
- Thread thread1(osPriorityNormal, 512, nullptr, nullptr);
- //Thread thread2(osPriorityNormal, 512, nullptr, nullptr);
-
- thread0.start(led0_thread);
- thread1.start(led1_thread);
-
- //wifi_serial.printf("model\r\n");
- //thread1.start(led1_thread);
- //thread2.start(led2_thread);
- while(1)
- {
- debug_uart.write("--main--\r\n",10);
- wait(3);
- }
-
-}
-
-#endif
\ No newline at end of file
--- a/mbed-STM32F103C8T6.lib Wed Apr 29 03:14:26 2020 +0000 +++ b/mbed-STM32F103C8T6.lib Tue May 05 11:15:56 2020 +0000 @@ -1,1 +1,1 @@ -https://os.mbed.com/users/hankzhang/code/mbed-STM32F103C8T6_new/#c5c21a60441d +http://mbed.org/users/hudakz/code/mbed-STM32F103C8T6/#fe3c80e86183
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-dev.lib Tue May 05 11:15:56 2020 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed-dev/#9a67f0b066fc
--- a/mbed-os.lib Wed Apr 29 03:14:26 2020 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://github.com/ARMmbed/mbed-os/#565ab149819481224ab43f878c3921b14b11d180
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-rtos.lib Tue May 05 11:15:56 2020 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed-rtos/#58563e6cba1e
--- a/st7789v.cpp Wed Apr 29 03:14:26 2020 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,390 +0,0 @@
-#include "main.h"
-
-void ST7789V_CTRL_Write(unsigned char data)
-{
- lcdBus.write(data);
-}
-
-void ST7789V_writeCommand(unsigned char command)
-{
- TFTCS=0;
- TFTDC = 0;
- ST7789V_CTRL_Write(command);
- TFTWR = 0;
- TFTWR = 1;
- TFTCS=1;
-}
-
-void ST7789V_writeData(unsigned char data)
-{
- TFTCS=0;
- TFTDC = 1;
- ST7789V_CTRL_Write(data);
- TFTWR = 0;
- TFTWR = 1;
- TFTCS=1;
-}
-
-void ST7789V_writeOneDot(unsigned int color)
-{
- TFTCS=0;
- TFTRD=1;
- TFTDC=1;
-
- ST7789V_CTRL_Write(color>>8);
- TFTWR=0;
- TFTWR=1;
-
- ST7789V_CTRL_Write(color);
- TFTWR=0;
- TFTWR=1;
-
- TFTCS=1;
-}
-
-void ST7789V_Init(void)
-{
- TFTDC = 0;
- TFTRD = 1;
- TFTWR = 0;
-
-#if 0
- TFTRST = 0; // reset the chip[]
- wait_us(100);
- TFTRST = 1; // take it out of reset
-#endif
-
- wait_us(100);
- ST7789V_writeCommand(0x11); /* exit SLEEP mode*/
- wait_us(300);
- ST7789V_writeCommand(0x36);
- ST7789V_writeData(0x00); /* MADCTL: memory data access control*/
- ST7789V_writeCommand(0x3A);
- ST7789V_writeData(0x05); /* COLMOD: Interface Pixel format*/
- ST7789V_writeCommand(0xB2);
- ST7789V_writeData(0x0C);
- ST7789V_writeData(0x0C);
- ST7789V_writeData(0x00);
- ST7789V_writeData(0x33);
- ST7789V_writeData(0x33); /*PORCTRK: Porch setting*/
- ST7789V_writeCommand(0xB7);
- ST7789V_writeData(0x75); /*GCTRL: Gate Control*/
- ST7789V_writeCommand(0xBB);
- ST7789V_writeData(0x3d); /*VCOMS: VCOM setting*/
- //ST7789V_writeCommand(0xC0);
- //ST7789V_writeData(0x2C); /*LCMCTRL: LCM Control*/
- ST7789V_writeCommand(0xC2);
- ST7789V_writeData(0x01);
- //ST7789V_writeData(0xFF); /*VDVVRHEN: VDV and VRH Command Enable*/
- ST7789V_writeCommand(0xC3);
- ST7789V_writeData(0x19); /*VRHS: VRH Set*/
- ST7789V_writeCommand(0xC4);
- ST7789V_writeData(0x20); /*VDVS: VDV Set*/
- ST7789V_writeCommand(0xC6);
- ST7789V_writeData(0x0F); /*FRCTRL2: Frame Rate control in normal mode*/
- ST7789V_writeCommand(0xD0);
- ST7789V_writeData(0xA4);
- ST7789V_writeData(0xA1); /*PWCTRL1: Power Control 1*/
- ST7789V_writeCommand(0xD6);
- ST7789V_writeData(0xA1);
- ST7789V_writeCommand(0xE0);
- ST7789V_writeData(0x70);
- ST7789V_writeData(0x04);
- ST7789V_writeData(0x08);
- ST7789V_writeData(0x09);
- ST7789V_writeData(0x09);
- ST7789V_writeData(0x05);
- ST7789V_writeData(0x2A);
- ST7789V_writeData(0x33);
- ST7789V_writeData(0x41);
- ST7789V_writeData(0x07);
- ST7789V_writeData(0x13);
- ST7789V_writeData(0x13);
- ST7789V_writeData(0x29);
- ST7789V_writeData(0x0F); /*PVGAMCTRL: Positive Voltage Gamma control*/
- ST7789V_writeCommand(0xE1);
- ST7789V_writeData(0x70);
- ST7789V_writeData(0x03);
- ST7789V_writeData(0x09);
- ST7789V_writeData(0x0A);
- ST7789V_writeData(0x09);
- ST7789V_writeData(0x06);
- ST7789V_writeData(0x2B);
- ST7789V_writeData(0x34);
- ST7789V_writeData(0x41);
- ST7789V_writeData(0x07);
- ST7789V_writeData(0x12);
- ST7789V_writeData(0x14);
- ST7789V_writeData(0x28);
- ST7789V_writeData(0x2E); /*NVGAMCTRL: Negative Voltage Gamma control*/
- ST7789V_writeCommand(0x21);
- ST7789V_writeCommand(0x29);
- ST7789V_writeCommand(0x2A);
- ST7789V_writeData(0x00);
- ST7789V_writeData(0x00);
- ST7789V_writeData(0x00);
- ST7789V_writeData(0xEF); /*X address set*/
- ST7789V_writeCommand(0x2B);
- ST7789V_writeData(0x00);
- ST7789V_writeData(0x00);
- ST7789V_writeData(0x00);
- ST7789V_writeData(0xEF); /*Y address set*/
- ST7789V_writeCommand(0x2C);
- //wait_us(10);
- //ST7789V_writeCommand(0x29); /*Enable Display*/
-}
-
-void BlockWrite(unsigned int Xstart,unsigned int Xend,unsigned int Ystart,unsigned int Yend)
-{
- ST7789V_writeCommand(0x2a);
- ST7789V_writeData((Xstart)>>8);
- ST7789V_writeData((Xstart)&0xff);
-
- ST7789V_writeData((Xend)>>8);
- ST7789V_writeData((Xend)&0xff);
-
- ST7789V_writeCommand(0x2b);
- ST7789V_writeData((Ystart+40)>>8);
-
- ST7789V_writeData((Ystart+40)&0xff);
- ST7789V_writeData((Yend+40)>>8);
-
- ST7789V_writeData((Yend+40)&0xff);
- ST7789V_writeCommand(0x2c);
-}
-
-unsigned char ToOrd(unsigned char ch)
-{
- if(ch<32)
- {
- ch=95;
- }
- else if((ch>=32)&&(ch<=47)) //(32~47)空格~/
- {
- ch=(ch-32)+10+62;
- }
- else if((ch>=48)&&(ch<=57))//(48~57)0~9
- {
- ch=ch-48;
- }
- else if((ch>=58)&&(ch<=64))//(58~64):~@
- {
- ch=(ch-58)+10+62+16;
- }
- else if((ch>=65)&&(ch<=126))//(65~126)A~~
- {
- ch=(ch-65)+10;
- }
- else if(ch>126)
- {
- ch=95;
- }
-
- return ch;
-}
-
-void WriteOneDot(unsigned int color)
-{
- ST7789V_writeOneDot(color);
-}
-
-void DispOneChar(unsigned char ord,unsigned int Xstart,unsigned int Ystart,unsigned int TextColor,unsigned int BackColor) // ord:0~95
-{
- unsigned char i,j;
- unsigned char *p;
- unsigned char dat;
- unsigned int index;
-
- BlockWrite(Xstart,Xstart+(FONT_W-1),Ystart,Ystart+(FONT_H-1));
-
- index = ord;
-
- if(index>95) //95:ASCII CHAR NUM
- index=95;
-
- index = index*((FONT_W/8)*FONT_H);
-
- p = ascii;
- p = p+index;
-
- for(i=0;i<(FONT_W/8*FONT_H);i++)
- {
- dat=*p++;
- for(j=0;j<8;j++)
- {
- if((dat<<j)&0x80)
- {
- WriteOneDot(TextColor);
- }
- else
- {
- WriteOneDot(BackColor);
- }
- }
- }
-}
-
-void DispStr(unsigned char *str,unsigned int Xstart,unsigned int Ystart,unsigned int TextColor,unsigned int BackColor)
-{
-
- while(!(*str=='\0'))
- {
- DispOneChar(ToOrd(*str++),Xstart,Ystart,TextColor,BackColor);
-
- if(Xstart>((COL-1)-FONT_W))
- {
- Xstart=0;
- Ystart=Ystart+FONT_H;
- }
- else
- {
- Xstart=Xstart+FONT_W;
- }
-
- if(Ystart>((ROW-1)-FONT_H))
- {
- Ystart=0;
- }
- }
- BlockWrite(0,COL-1,0,ROW-1);
-}
-
-void DispInt(unsigned int i,unsigned int Xstart,unsigned int Ystart,unsigned int TextColor,unsigned int BackColor)
-{
- if(Xstart>((COL-1)-FONT_W*4))
- {
- Xstart=(COL-1)-FONT_W*4;
- }
- if(Ystart>((ROW-1)-FONT_H))
- {
- Ystart=(Ystart-1)-FONT_H;
- }
-
- DispOneChar((i>>12)%16,Xstart,Ystart,TextColor,BackColor); //ID value
- DispOneChar((i>>8)%16,Xstart+FONT_W,Ystart,TextColor,BackColor);
- DispOneChar((i>>4)%16,Xstart+FONT_W*2,Ystart,TextColor,BackColor);
- DispOneChar(i%16,Xstart+FONT_W*3,Ystart,TextColor,BackColor);
-
- BlockWrite(0,COL-1,0,ROW-1);
-}
-
-void DispColor(unsigned int color)
-{
- unsigned int i,j;
-
- BlockWrite(0,COL-1,0,ROW-1);
-
- TFTCS=0;
- TFTDC=1;
- TFTRD=1;
-
- for(i=0;i<ROW;i++)
- {
- for(j=0;j<COL;j++)
- {
- WriteOneDot(color);
- }
- }
-
- TFTCS=1;
-}
-
-void DispBand(void)
-{
- unsigned int i,j,k;
- //unsigned int color[8]={0x001f,0x07e0,0xf800,0x07ff,0xf81f,0xffe0,0x0000,0xffff};
- unsigned int color[8]={0xf800,0xf800,0x07e0,0x07e0,0x001f,0x001f,0xffff,0xffff};//0x94B2
- //unsigned int gray16[]={0x0000,0x1082,0x2104,0x3186,0x42,0x08,0x528a,0x630c,0x738e,0x7bcf,0x9492,0xa514,0xb596,0xc618,0xd69a,0xe71c,0xffff};
-
- BlockWrite(0,COL-1,0,ROW-1);
-
- TFTCS=0;
- TFTRD=1;
- TFTDC=1;
-
- for(i=0;i<8;i++)
- {
- for(j=0;j<ROW/8;j++)
- {
- for(k=0;k<COL;k++)
- {
- WriteOneDot(color[i]);
- }
- }
- }
- for(j=0;j<ROW%8;j++)
- {
- for(k=0;k<COL;k++)
- {
- WriteOneDot(color[7]);
- }
- }
-
- TFTCS=1;
-}
-
-void DispPic(unsigned int *picture)
-{
- unsigned int *p;
- unsigned int i,j; //i-row,j-col
- unsigned char n,k; //n-row repeat count,k-col repeat count
-
- BlockWrite(0,COL-1,0,ROW-1);
-
- TFTCS =0;
- TFTDC =1;
- TFTRD =1;
-
- for(n=0;n<ROW/PIC_HEIGHT;n++) //n-row repeat count
- {
- for(i=0;i<PIC_HEIGHT;i++)
- {
- p=picture;
- for(k=0;k<COL/PIC_WIDTH;k++) //k-col repeat count
- {
- for(j=0;j<PIC_WIDTH;j++)
- {
- WriteOneDot(*(p+i*PIC_HEIGHT+j));
- }
- }
-
- p=picture;
- for(j=0;j<COL%PIC_WIDTH;j++)
- {
- WriteOneDot(*(p+i*PIC_HEIGHT+j));
- }
- }
- }
-
- for(i=0;i<ROW%PIC_HEIGHT;i++)
- {
- p=picture;
- for(k=0;k<COL/PIC_WIDTH;k++) //k-col repeat count
- {
- for(j=0;j<PIC_WIDTH;j++)
- {
- WriteOneDot(*(p+i*PIC_HEIGHT+j));
- }
- }
-
- p=picture;
- for(j=0;j<COL%PIC_WIDTH;j++)
- {
- WriteOneDot(*(p+i*PIC_HEIGHT+j));
- }
- }
- TFTCS=1;
-}
-
-void LCD_block_test(){
- BlockWrite(0,COL-1,0,ROW-1);
- DispColor(GREEN);
- wait(2);
- DispColor(BLUE);
- wait(2);
- DispColor(RED);
- wait(2);
-}
-
-
-
--- a/st7789v.h Wed Apr 29 03:14:26 2020 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,525 +0,0 @@
-#ifndef ST7789V_H
-#define ST7789V_H
-
-#define ROW 240
-#define COL 240
-
-#define FONT_W 16
-#define FONT_H 21
-
-#define RED 0xF800
-#define GREEN 0x07E0
-#define BLUE 0x001F
-#define WHITE 0xFFFF
-#define BLACK 0x0000
-
-#define PIC_WIDTH 48 //预备向LCD显示区域填充的图片的大小
-#define PIC_HEIGHT 37
-
-void ST7789V_Init(void);
-void ST7789V_writeCommand(unsigned char command);
-void ST7789V_writeOneDot(unsigned int color);
-void ST7789V_writeData(unsigned char data);
-void ST7789V_writeDataStream(unsigned char * pData, int numBytes);
-unsigned char ST7789V_readData();
-void ST7789V_readDataStream(unsigned char *data,int numItems);
-
-unsigned char ToOrd(unsigned char ch);
-void WriteOneDot(unsigned int color);
-void DispOneChar(unsigned char ord,unsigned int Xstart,unsigned int Ystart,unsigned int TextColor,unsigned int BackColor); // ord:0~95
-void DispStr(unsigned char *str,unsigned int Xstart,unsigned int Ystart,unsigned int TextColor,unsigned int BackColor);
-void DispInt(unsigned int i,unsigned int Xstart,unsigned int Ystart,unsigned int TextColor,unsigned int BackColor);
-void BlockWrite(unsigned int Xstart,unsigned int Xend,unsigned int Ystart,unsigned int Yend);
-
-void DispColor(unsigned int color);
-void DispBand(void);
-void DispPic(unsigned int *picture);
-
-void LCD_block_test(void);
-
-static unsigned char ascii[]=
-{
-//宋体16,点阵为:宽x高=16x21
-/*-- 文字: 0 --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x31,0x80,0x31,0x80,0x60,0xC0,
-0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x31,0x80,
-0x31,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: 1 --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x1E,0x00,0x06,0x00,0x06,0x00,
-0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
-0x06,0x00,0x1F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: 2 --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x61,0x80,0x60,0xC0,0x60,0xC0,
-0x60,0xC0,0x01,0x80,0x01,0x80,0x03,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,0x30,0xC0,
-0x60,0xC0,0x7F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: 3 --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x63,0x00,0x61,0x80,0x61,0x80,
-0x01,0x80,0x03,0x00,0x0F,0x00,0x01,0x80,0x00,0xC0,0x00,0xC0,0x60,0xC0,0x60,0xC0,
-0x61,0x80,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: 4 --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x80,0x07,0x80,0x07,0x80,0x0F,0x80,
-0x1B,0x80,0x1B,0x80,0x33,0x80,0x63,0x80,0x63,0x80,0x3F,0xC0,0x03,0x80,0x03,0x80,
-0x03,0x80,0x0F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: 5 --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xC0,0x30,0x00,0x30,0x00,0x30,0x00,
-0x30,0x00,0x3F,0x00,0x39,0x80,0x30,0xC0,0x00,0xC0,0x00,0xC0,0x60,0xC0,0x60,0xC0,
-0x61,0x80,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: 6 --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x18,0xC0,0x30,0xC0,0x30,0x00,
-0x60,0x00,0x7F,0x00,0x71,0x80,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x30,0xC0,
-0x31,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: 7 --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xC0,0x61,0x80,0x63,0x00,0x03,0x00,
-0x06,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,
-0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: 8 --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x31,0x80,0x60,0xC0,0x60,0xC0,
-0x60,0xC0,0x31,0x80,0x1F,0x00,0x31,0x80,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,
-0x31,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: 9 --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x31,0x80,0x61,0x80,0x60,0xC0,
-0x60,0xC0,0x60,0xC0,0x60,0xC0,0x31,0xC0,0x1F,0xC0,0x00,0xC0,0x01,0x80,0x61,0x80,
-0x63,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: A --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x0E,0x00,0x0E,0x00,0x0F,0x00,
-0x1B,0x00,0x1B,0x00,0x1B,0x00,0x31,0x80,0x3F,0x80,0x31,0x80,0x31,0x80,0x60,0xC0,
-0x60,0xC0,0xF1,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: B --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x31,0x80,0x30,0xC0,0x30,0xC0,
-0x30,0xC0,0x31,0x80,0x3F,0x00,0x31,0xC0,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0x60,
-0x30,0xC0,0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: C --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xE0,0x18,0xE0,0x30,0x60,0x30,0x60,
-0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x60,0x30,0x60,
-0x38,0xC0,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: D --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x31,0x80,0x30,0xC0,0x30,0xC0,
-0x30,0x60,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0xC0,0x30,0xC0,
-0x31,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: E --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xC0,0x30,0xC0,0x30,0x60,0x30,0x00,
-0x31,0x80,0x31,0x80,0x3F,0x80,0x31,0x80,0x31,0x80,0x30,0x00,0x30,0x00,0x30,0x60,
-0x30,0xC0,0x7F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: F --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xC0,0x30,0xC0,0x30,0x60,0x30,0x00,
-0x31,0x80,0x31,0x80,0x3F,0x80,0x31,0x80,0x31,0x80,0x30,0x00,0x30,0x00,0x30,0x00,
-0x30,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: G --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xC0,0x19,0xC0,0x30,0xC0,0x30,0xC0,
-0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x61,0xE0,0x60,0xC0,0x30,0xC0,0x30,0xC0,
-0x18,0xC0,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: H --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x79,0xE0,0x30,0xC0,0x30,0xC0,0x30,0xC0,
-0x30,0xC0,0x30,0xC0,0x3F,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,
-0x30,0xC0,0x79,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: I --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xC0,0x06,0x00,0x06,0x00,0x06,0x00,
-0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
-0x06,0x00,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: J --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF0,0x01,0x80,0x01,0x80,0x01,0x80,
-0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,
-0x01,0x80,0x61,0x80,0x63,0x00,0x3E,0x00,0x00,0x00,
-
-/*-- 文字: K --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7B,0xE0,0x30,0xC0,0x31,0x80,0x33,0x00,
-0x36,0x00,0x3C,0x00,0x3E,0x00,0x36,0x00,0x33,0x00,0x33,0x00,0x31,0x80,0x31,0x80,
-0x30,0xC0,0x79,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: L --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x30,0x00,0x30,0x00,0x30,0x00,
-0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x60,
-0x30,0xC0,0x7F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: M --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x70,0xE0,0x70,0xE0,0x70,0xE0,
-0x79,0xE0,0x79,0xE0,0x79,0xE0,0x7B,0x60,0x6F,0x60,0x6F,0x60,0x6F,0x60,0x66,0x60,
-0x66,0x60,0xF6,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: N --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x79,0xE0,0x38,0xC0,0x3C,0xC0,0x3C,0xC0,
-0x3C,0xC0,0x36,0xC0,0x36,0xC0,0x36,0xC0,0x33,0xC0,0x33,0xC0,0x31,0xC0,0x31,0xC0,
-0x31,0xC0,0x78,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: O --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x19,0x80,0x30,0xC0,0x60,0x60,
-0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x30,0xC0,
-0x19,0x80,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: P --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x80,0x30,0xC0,0x30,0x60,0x30,0x60,
-0x30,0x60,0x30,0xC0,0x3F,0x80,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,
-0x30,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: Q --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x19,0x80,0x30,0xC0,0x60,0x60,
-0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x6E,0x60,0x3B,0xC0,
-0x3B,0xC0,0x0F,0x80,0x01,0xE0,0x01,0xC0,0x00,0x00,
-
-/*-- 文字: R --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x31,0x80,0x30,0xC0,0x30,0xC0,
-0x30,0xC0,0x31,0x80,0x3F,0x00,0x36,0x00,0x33,0x00,0x33,0x00,0x31,0x80,0x31,0x80,
-0x30,0xC0,0x78,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: S --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xC0,0x31,0xC0,0x60,0xC0,0x60,0xC0,
-0x60,0x00,0x30,0x00,0x1C,0x00,0x07,0x00,0x01,0x80,0x00,0xC0,0x60,0xC0,0x60,0xC0,
-0x71,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: T --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xC0,0x66,0x60,0x66,0x60,0x06,0x00,
-0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
-0x06,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: U --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x79,0xE0,0x30,0xC0,0x30,0xC0,0x30,0xC0,
-0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,
-0x19,0x80,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: V --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF1,0xF0,0x60,0x60,0x30,0xC0,0x30,0xC0,
-0x30,0xC0,0x19,0x80,0x19,0x80,0x19,0x80,0x19,0x80,0x0F,0x00,0x0F,0x00,0x0F,0x00,
-0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: W --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xF0,0x66,0x60,0x66,0x60,0x66,0x60,
-0x66,0xC0,0x37,0xC0,0x3F,0xC0,0x3F,0xC0,0x3F,0xC0,0x3F,0xC0,0x3F,0xC0,0x19,0x80,
-0x19,0x80,0x19,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: X --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x79,0xE0,0x30,0xC0,0x19,0x80,0x19,0x80,
-0x0F,0x00,0x0F,0x00,0x06,0x00,0x06,0x00,0x0F,0x00,0x0F,0x00,0x19,0x80,0x19,0x80,
-0x30,0xC0,0x79,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: Y --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x79,0xE0,0x30,0xC0,0x19,0x80,0x19,0x80,
-0x1B,0x00,0x0F,0x00,0x0F,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
-0x06,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: Z --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xE0,0x30,0xC0,0x60,0xC0,0x01,0x80,
-0x03,0x00,0x03,0x00,0x06,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x30,0x60,
-0x30,0xC0,0x7F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: [ --*/
-0x00,0x00,0x00,0x00,0x0F,0xC0,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,
-0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,
-0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0F,0xC0,0x00,0x00,
-
-/*-- 文字: \ --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x18,0x00,0x18,0x00,0x18,0x00,
-0x0C,0x00,0x0C,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x03,0x00,0x03,0x00,0x01,0x80,
-0x01,0x80,0x01,0x80,0x00,0xC0,0x00,0xC0,0x00,0x00,
-
-/*-- 文字: ] --*/
-0x00,0x00,0x00,0x00,0x7E,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
-0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
-0x06,0x00,0x06,0x00,0x06,0x00,0x7E,0x00,0x00,0x00,
-
-/*-- 文字: ^ --*/
-0x00,0x00,0x00,0x00,0x1E,0x00,0x1E,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: _ --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-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,0xE0,
-
-/*-- 文字: ` --*/
-0x00,0x00,0x00,0x00,0x1C,0x00,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,
-
-/*-- 文字: a --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x1F,0x00,0x31,0x80,0x31,0x80,0x0F,0x80,0x39,0x80,0x61,0x80,0x61,0x80,
-0x63,0xE0,0x3F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: b --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x30,0x00,0x30,0x00,0x30,0x00,
-0x30,0x00,0x3F,0x80,0x38,0xC0,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0x60,
-0x38,0xC0,0x3F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: c --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x1F,0x00,0x31,0x80,0x61,0x80,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0xC0,
-0x31,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: d --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,
-0x00,0xC0,0x1F,0xC0,0x31,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,
-0x31,0xE0,0x1F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: e --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x1F,0x00,0x31,0x80,0x60,0xC0,0x7F,0xC0,0x60,0x00,0x60,0x00,0x60,0xC0,
-0x31,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: f --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x06,0x60,0x0C,0x00,0x0C,0x00,
-0x0C,0x00,0x7F,0x80,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,
-0x0C,0x00,0x3F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: g --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x1F,0xF0,0x30,0xF0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x1F,0x80,0x30,0x00,
-0x3F,0x80,0x30,0xE0,0x60,0x60,0x70,0x60,0x3F,0xC0,
-
-/*-- 文字: h --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x30,0x00,0x30,0x00,0x30,0x00,
-0x30,0x00,0x3F,0x80,0x38,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,
-0x30,0xC0,0x79,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: i --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x1E,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
-0x06,0x00,0x1F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: j --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x03,0x80,0x00,0x00,0x00,0x00,
-0x00,0x00,0x07,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,
-0x01,0x80,0x01,0x80,0x01,0x80,0x33,0x00,0x3E,0x00,
-
-/*-- 文字: k --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x30,0x00,0x30,0x00,0x30,0x00,
-0x30,0x00,0x33,0xC0,0x33,0x00,0x36,0x00,0x3C,0x00,0x3E,0x00,0x33,0x00,0x31,0x80,
-0x30,0xC0,0x79,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: l --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
-0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
-0x06,0x00,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: m --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0xFF,0xE0,0x77,0x60,0x66,0x60,0x66,0x60,0x66,0x60,0x66,0x60,0x66,0x60,
-0x66,0x60,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: n --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x7F,0x80,0x38,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,
-0x30,0xC0,0x79,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: o --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x1F,0x00,0x31,0x80,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,
-0x31,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: p --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x7F,0x80,0x38,0xC0,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0x60,
-0x38,0xC0,0x3F,0x80,0x30,0x00,0x30,0x00,0x78,0x00,
-
-/*-- 文字: q --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x1F,0xC0,0x31,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,
-0x31,0xC0,0x1F,0xC0,0x00,0xC0,0x00,0xC0,0x01,0xE0,
-
-/*-- 文字: r --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x7B,0xE0,0x1E,0x60,0x1C,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,
-0x18,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: s --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x1F,0xC0,0x31,0xC0,0x30,0xC0,0x38,0x00,0x0F,0x00,0x01,0xC0,0x30,0xC0,
-0x38,0xC0,0x3F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: t --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x0C,0x00,
-0x0C,0x00,0x3F,0x80,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0xC0,
-0x0C,0xC0,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: u --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x71,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,
-0x31,0xE0,0x1F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: v --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x79,0xE0,0x30,0xC0,0x19,0x80,0x19,0x80,0x19,0x80,0x0F,0x00,0x0F,0x00,
-0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: w --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0xFF,0xF0,0x66,0x60,0x66,0xE0,0x3F,0xC0,0x3F,0xC0,0x3F,0xC0,0x3F,0xC0,
-0x19,0x80,0x19,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: x --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x79,0xE0,0x30,0xC0,0x19,0x80,0x0F,0x00,0x06,0x00,0x0F,0x00,0x19,0x80,
-0x30,0xC0,0x79,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: y --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x7B,0xE0,0x30,0xC0,0x19,0x80,0x19,0x80,0x0F,0x00,0x0F,0x00,0x06,0x00,
-0x06,0x00,0x06,0x00,0x0C,0x00,0x3C,0x00,0x38,0x00,
-
-/*-- 文字: z --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x7F,0x80,0x63,0x00,0x66,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,0x30,0xC0,
-0x61,0x80,0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: { --*/
-0x00,0x00,0x00,0x00,0x01,0xC0,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,
-0x03,0x00,0x07,0x00,0x0C,0x00,0x07,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,
-0x03,0x00,0x03,0x00,0x03,0x00,0x01,0xC0,0x00,0x00,
-
-/*-- 文字: | --*/
-0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
-0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
-0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
-
-/*-- 文字: } --*/
-0x00,0x00,0x00,0x00,0x38,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,
-0x0C,0x00,0x0E,0x00,0x03,0x00,0x0E,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,
-0x0C,0x00,0x0C,0x00,0x0C,0x00,0x38,0x00,0x00,0x00,
-
-/*-- 文字: ~ --*/
-0x3C,0x00,0x76,0x30,0x63,0x70,0x01,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,
-0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,
-0x0E,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: " --*/
-0x00,0x00,0x00,0x00,0x1F,0x80,0x1F,0x80,0x3F,0x00,0x36,0x00,0x6C,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: # --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0xC0,0x18,0xC0,0x18,0xC0,0x7F,0xE0,
-0x18,0xC0,0x18,0xC0,0x18,0xC0,0x31,0x80,0x31,0x80,0x7F,0xE0,0x31,0x80,0x31,0x80,
-0x31,0x80,0x31,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: $ --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x0F,0x80,0x1E,0xC0,0x36,0xC0,0x37,0xC0,
-0x36,0x00,0x1E,0x00,0x0E,0x00,0x07,0x00,0x07,0x80,0x06,0xC0,0x3E,0xC0,0x36,0xC0,
-0x37,0x80,0x1F,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
-
-/*-- 文字: % --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0xC0,0x6D,0x80,0x6D,0x80,0x6F,0x00,
-0x6F,0x00,0x6F,0x00,0x3E,0x00,0x07,0xC0,0x0F,0x60,0x0F,0x60,0x1B,0x60,0x1B,0x60,
-0x1B,0x60,0x31,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: & --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x33,0x00,0x33,0x00,0x33,0x00,
-0x36,0x00,0x3F,0xC0,0x39,0x80,0x79,0x80,0xCF,0x00,0xCF,0x00,0xC7,0x00,0xC6,0x00,
-0x67,0x60,0x3D,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: ' --*/
-0x00,0x00,0x00,0x00,0x78,0x00,0x78,0x00,0x18,0x00,0x30,0x00,0xE0,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0x00,0xC0,0x01,0x80,0x03,0x00,0x03,0x00,0x03,0x00,
-0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x03,0x00,0x03,0x00,
-0x03,0x00,0x01,0x80,0x00,0xC0,0x00,0x60,0x00,0x00,
-
-/*-- 文字: ) --*/
-0x00,0x00,0x00,0x00,0x60,0x00,0x30,0x00,0x18,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,
-0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,
-0x0C,0x00,0x18,0x00,0x30,0x00,0x60,0x00,0x00,0x00,
-
-/*-- 文字: * --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x66,0x60,
-0x7F,0xE0,0x1F,0x80,0x06,0x00,0x1F,0x80,0x7F,0xE0,0x66,0x60,0x06,0x00,0x06,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: + --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
-0x06,0x00,0x06,0x00,0x7F,0xE0,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,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,
-0x78,0x00,0x78,0x00,0x18,0x00,0x30,0x00,0xE0,0x00,
-
-/*-- 文字: - --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x7F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: . --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x70,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: / --*/
-0x00,0x00,0x00,0x00,0x00,0x60,0x00,0xC0,0x00,0xC0,0x01,0xC0,0x01,0x80,0x01,0x80,
-0x03,0x00,0x03,0x00,0x06,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,
-0x38,0x00,0x30,0x00,0x30,0x00,0x60,0x00,0x00,0x00,
-
-/*-- 文字: : --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x0E,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x0E,0x00,0x0E,0x00,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,
-
-/*-- 文字: < --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x01,0x80,0x03,0x00,0x06,0x00,0x0C,0x00,
-0x18,0x00,0x30,0x00,0x60,0x00,0x30,0x00,0x18,0x00,0x0C,0x00,0x06,0x00,0x03,0x00,
-0x01,0x80,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: = --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x7F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: > --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x30,0x00,0x18,0x00,0x0C,0x00,0x06,0x00,
-0x03,0x00,0x01,0x80,0x00,0xC0,0x01,0x80,0x03,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,
-0x30,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: ? --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x31,0x80,0x60,0xC0,0x70,0xC0,0x70,0xC0,
-0x00,0xC0,0x00,0xC0,0x01,0x80,0x03,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x00,0x00,
-0x0E,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-/*-- 文字: @ --*/
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x19,0xC0,0x30,0xC0,0x37,0xE0,
-0x6F,0xE0,0x6D,0xE0,0x79,0xE0,0x7B,0x60,0x7B,0x60,0x7B,0xC0,0x6F,0xC0,0x30,0x60,
-0x18,0xC0,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
-
-//ord:95
-0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
-0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
-0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
-
-};
-
-#endif