add new files
commit
fb170d9336
Plik binarny nie jest wyświetlany.
|
@ -0,0 +1,251 @@
|
|||
/*------------------------------------------------------------------
|
||||
|
||||
VFO System for ESP32-DevKitC Ver 1.00
|
||||
|
||||
by T.Uebo / JF3HZB
|
||||
|
||||
Feb. 10, 2019
|
||||
|
||||
--------------------------------------------------------------------*/
|
||||
|
||||
/*------Hard ware Configuration ---------------------
|
||||
<<ESP32-DevKitC>>
|
||||
pin No. Connection
|
||||
17 : Rotary Encoder A
|
||||
16 : Rotary Encoder B
|
||||
|
||||
22 : si5351A SCL
|
||||
21 : si5351A SDA
|
||||
|
||||
18 : SCK / ST7735,SEPS525(128x160 display)
|
||||
23 : MOSI / ST7735,SEPS525(128x160 display)
|
||||
5 : CS / ST7735,SEPS525(128x160 display)
|
||||
2 : DC(A0) / ST7735,SEPS525(128x160 display)
|
||||
15 : RESET / ST7735,SEPS525(128x160 display)
|
||||
|
||||
|
||||
<<si5351A>>
|
||||
CLK0 : Car Signal (I)
|
||||
CLK1 : Car Signal (Q)
|
||||
CLK2 : Lo Signal
|
||||
------------------------------------------------*/
|
||||
|
||||
/*-------------------------------------------------------
|
||||
Frequency settings
|
||||
--------------------------------------------------------*/
|
||||
#define init_freq 7100000 // Initial Frequncy[Hz]
|
||||
int32_t offset_frq = 8998500; // Offset Frequency[Hz]
|
||||
int32_t car_frq = 8998500; // Carrier Frequncy[Hz]
|
||||
unsigned char f_carON = 1; // ON/OFF Car signal
|
||||
|
||||
#define fmax 150000000 // Max frequency[Hz]
|
||||
#define fmin 100000 // Min frequency[Hz]
|
||||
#define freq_step 10 // step[Hz]
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------------
|
||||
Control flags
|
||||
-----------------------------------------------------------------------------------*/
|
||||
uint8_t f_fchange; // if frequency changed, set this flag to 1
|
||||
uint8_t f_cchange; // if Car frequency and/or "f_carON" changed, set this flag to 1
|
||||
uint8_t f_dchange; // if need to renew display, set this flag to 1
|
||||
|
||||
|
||||
|
||||
/*--------------------------------------------------------
|
||||
pin assign
|
||||
----------------------------------------------------------*/
|
||||
//#define LED_BUILTIN 13
|
||||
|
||||
#define PULSE_INPUT_PIN 16 // Rotaty Encoder A
|
||||
#define PULSE_CTRL_PIN 17 // Rotaty Encoder B
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
#define NAME "VFO System"
|
||||
#define VERSION "Ver. 1.00"
|
||||
#define ID "by JF3HZB"
|
||||
|
||||
|
||||
#include "driver/pcnt.h"
|
||||
#include "display.h"
|
||||
#include "graph.h"
|
||||
#include "dial.h"
|
||||
#include "si5351.h"
|
||||
|
||||
/*-----------------------------------------------------------------------------
|
||||
* Global
|
||||
-----------------------------------------------------------------------------*/
|
||||
float dacc=0.0;
|
||||
float Maxdacc=500.0;
|
||||
long frq=init_freq;
|
||||
int16_t RE_Count = 0;
|
||||
uint8_t f_redraw;
|
||||
extern char f_rev;
|
||||
extern uint32_t cl_BG;
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
Timer ISR
|
||||
---------------------------------------------------------------------------*/
|
||||
hw_timer_t * timer = NULL;
|
||||
void IRAM_ATTR onTimer(){}
|
||||
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------------------------
|
||||
void setup() {
|
||||
//-----------------------------------------------------------------------------------------------
|
||||
char str[64];
|
||||
//--------- create tasks on core0 --------------------------------
|
||||
xTaskCreatePinnedToCore(task0, "Task0", 4096, NULL, 1, NULL, 0);
|
||||
|
||||
//--------- Set up Interrupt Timer -------------------------------
|
||||
timer = timerBegin(0, 80, true); //use Timer0, div80 for 1us clock
|
||||
timerAttachInterrupt(timer, &onTimer, true);
|
||||
timerAlarmWrite(timer, 10000, true); // T=10000us
|
||||
timerAlarmEnable(timer); // Start Timer
|
||||
|
||||
//pinMode(LED_BUILTIN, OUTPUT); //LED
|
||||
|
||||
//--- Counter setup for Rotary Encoder ---------------------
|
||||
pcnt_config_t pcnt_config_A;// structure for A
|
||||
pcnt_config_t pcnt_config_B;// structure for B
|
||||
//
|
||||
pcnt_config_A.pulse_gpio_num = PULSE_INPUT_PIN;
|
||||
pcnt_config_A.ctrl_gpio_num = PULSE_CTRL_PIN;
|
||||
pcnt_config_A.lctrl_mode = PCNT_MODE_REVERSE;
|
||||
pcnt_config_A.hctrl_mode = PCNT_MODE_KEEP;
|
||||
pcnt_config_A.channel = PCNT_CHANNEL_0;
|
||||
pcnt_config_A.unit = PCNT_UNIT_0;
|
||||
pcnt_config_A.pos_mode = PCNT_COUNT_INC;
|
||||
pcnt_config_A.neg_mode = PCNT_COUNT_DEC;
|
||||
pcnt_config_A.counter_h_lim = 10000;
|
||||
pcnt_config_A.counter_l_lim = -10000;
|
||||
//
|
||||
pcnt_config_B.pulse_gpio_num = PULSE_CTRL_PIN;
|
||||
pcnt_config_B.ctrl_gpio_num = PULSE_INPUT_PIN;
|
||||
pcnt_config_B.lctrl_mode = PCNT_MODE_KEEP;
|
||||
pcnt_config_B.hctrl_mode = PCNT_MODE_REVERSE;
|
||||
pcnt_config_B.channel = PCNT_CHANNEL_1;
|
||||
pcnt_config_B.unit = PCNT_UNIT_0;
|
||||
pcnt_config_B.pos_mode = PCNT_COUNT_INC;
|
||||
pcnt_config_B.neg_mode = PCNT_COUNT_DEC;
|
||||
pcnt_config_B.counter_h_lim = 10000;
|
||||
pcnt_config_B.counter_l_lim = -10000;
|
||||
//
|
||||
pcnt_unit_config(&pcnt_config_A);//Initialize A
|
||||
pcnt_unit_config(&pcnt_config_B);//Initialize B
|
||||
pcnt_counter_pause(PCNT_UNIT_0);
|
||||
pcnt_counter_clear(PCNT_UNIT_0);
|
||||
pcnt_counter_resume(PCNT_UNIT_0); //Start
|
||||
|
||||
|
||||
display_init();
|
||||
GRAM_clr();
|
||||
sprintf(str, NAME ); disp_str16(str,20, 90, 0x00ffff);
|
||||
sprintf(str, VERSION); disp_str12(str,36, 50, 0x00ffff);
|
||||
sprintf(str, ID ); disp_str8(str,50, 20, 0x00ffff);
|
||||
trans65k();
|
||||
f_redraw=1;
|
||||
|
||||
|
||||
delay(1000);
|
||||
init_Dial();
|
||||
GRAM_clr();
|
||||
|
||||
si5351_init();
|
||||
|
||||
f_fchange = 1;
|
||||
f_cchange = 1;
|
||||
f_dchange = 1;
|
||||
f_redraw=0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------------------------
|
||||
void loop() { // (core1)
|
||||
//-----------------------------------------------------------------------------------------------
|
||||
char str[64];
|
||||
|
||||
if(f_dchange==1){
|
||||
f_dchange=0;
|
||||
//GRAM_clr();
|
||||
boxfill(0,0,Nx-1,Ny-1,cl_BG);
|
||||
//Display Dial
|
||||
Dial(frq);
|
||||
|
||||
box(7,100,153,126, 0xa0a0a0);
|
||||
box(6,99,154,127, 0xa0a0a0);
|
||||
|
||||
//-------- Display Digital Frquency ---------------------------------------
|
||||
sprintf(str, "%3d.%03d,%02d", frq/1000000, (frq/1000)%1000, (frq/10)%100 );
|
||||
disp_str16(str,17, 105, 0xffd080);
|
||||
sprintf(str, "MHz" );
|
||||
disp_str12(str,120, 106, 0xffd080);
|
||||
|
||||
if(f_redraw==0){
|
||||
trans65k();
|
||||
f_redraw=1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//digitalWrite(LED_BUILTIN, 1^digitalRead(LED_BUILTIN) ); // Toggle LED
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*-----------------------------------------------------------------------------------------------
|
||||
Alternative Loop (core0)
|
||||
------------------------------------------------------------------------------------------------*/
|
||||
void task0(void* arg)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
pcnt_get_counter_value(PCNT_UNIT_0, &RE_Count);
|
||||
int count=RE_Count;
|
||||
pcnt_counter_clear(PCNT_UNIT_0);
|
||||
|
||||
if(f_rev==1) count=-count;
|
||||
|
||||
if(count!=0){
|
||||
f_dchange=1;
|
||||
f_fchange=1;
|
||||
frq+= count * freq_step;
|
||||
if(frq>fmax) frq=fmax;
|
||||
if(frq<fmin) frq=fmin;
|
||||
}
|
||||
|
||||
//-------------------------------------
|
||||
if(f_fchange==1){
|
||||
f_fchange=0;
|
||||
// Output Lo freq
|
||||
set_freq( frq + offset_frq );
|
||||
}
|
||||
|
||||
//-------------------------------------
|
||||
if(f_cchange==1){
|
||||
f_cchange=0;
|
||||
// Output Car freq
|
||||
set_car_freq(car_frq, f_carON, 0);
|
||||
}
|
||||
|
||||
if(f_redraw==1){
|
||||
Transfer_Image();
|
||||
f_redraw=0;
|
||||
}
|
||||
|
||||
delay(1);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
VFOsysについて
|
||||
|
||||
T.UEBO / JF3HZB
|
||||
Feb. 14, 2019
|
||||
|
||||
1.
|
||||
|
||||
LCDとOLEDの切り替えは,display.h の中の
|
||||
|
||||
#define SEPS525 と, #define ST7735
|
||||
|
||||
のどちらかをコメントアウトして,コンパイルし直してください.
|
||||
|
||||
|
||||
|
||||
2.
|
||||
ダイアル表示は,dial_prm.h を編集すればカスタマイズできます.
|
||||
|
||||
|
||||
以上
|
Plik diff jest za duży
Load Diff
|
@ -0,0 +1,20 @@
|
|||
/*
|
||||
* File: dial.h
|
||||
* Author: JF3HZB / T.UEBO
|
||||
*
|
||||
* Created on 2019/02/10, 22:13
|
||||
*/
|
||||
|
||||
|
||||
#ifndef DIAL_H
|
||||
#define DIAL_H
|
||||
|
||||
void init_Dial(void);
|
||||
void Dial(long freq);
|
||||
void dot(float, float);
|
||||
|
||||
void Sel_font12(void);
|
||||
void Sel_font14(void);
|
||||
void Sel_font16(void);
|
||||
|
||||
#endif /* DIAL_H */
|
|
@ -0,0 +1,56 @@
|
|||
/*
|
||||
* File: dial_font.h
|
||||
* Author: JF3HZB / T.UEBO
|
||||
*
|
||||
* Created on 2019/02/10, 22:13
|
||||
*/
|
||||
|
||||
#ifndef _dial_font_
|
||||
#define _dial_font_
|
||||
|
||||
const int Dial_font16[10][13] =
|
||||
{
|
||||
{0x000007E0, 0x00001FF8, 0x0000381C, 0x00002004, 0x00002004, 0x0000381C, 0x00001FF8, 0x000007E0, 0,0,0,0,0},
|
||||
{0x00000000, 0x00001004, 0x00001004, 0x00003FFC, 0x00003FFC, 0x00000004, 0x00000004, 0x00000000, 0,0,0,0,0},
|
||||
{0x00000C1C, 0x00001C3C, 0x00003064, 0x000020C4, 0x00002184, 0x0000330C, 0x00001E3C, 0x00000C30, 0,0,0,0,0},
|
||||
{0x00000830, 0x00001838, 0x0000310C, 0x00002104, 0x00002104, 0x0000338C, 0x00001EF8, 0x00000C70, 0,0,0,0,0},
|
||||
{0x00000060, 0x000001E0, 0x000007A0, 0x00001E20, 0x00003824, 0x00003FFC, 0x00003FFC, 0x00000024, 0,0,0,0,0},
|
||||
{0x00000010, 0x00003F18, 0x00003F0C, 0x00002204, 0x00002204, 0x0000230C, 0x000021F8, 0x000020F0, 0,0,0,0,0},
|
||||
{0x00000FF0, 0x00001FF8, 0x0000330C, 0x00002204, 0x00002204, 0x0000330C, 0x000019F8, 0x000008F0, 0,0,0,0,0},
|
||||
{0x00000C00, 0x00003C00, 0x00003000, 0x0000203C, 0x000021FC, 0x000027C0, 0x00003E00, 0x00003800, 0,0,0,0,0},
|
||||
{0x00000C70, 0x00001EF8, 0x0000338C, 0x00002104, 0x00002104, 0x0000338C, 0x00001EF8, 0x00000C70, 0,0,0,0,0},
|
||||
{0x00000F10, 0x00001F98, 0x000030CC, 0x00002044, 0x00002044, 0x000030CC, 0x00001FF8, 0x00000FF0, 0,0,0,0,0}
|
||||
};
|
||||
|
||||
|
||||
const int Dial_font14[10][13]={
|
||||
{0x00000000, 0x00000FF8, 0x00001FFC, 0x00003006, 0x00003006, 0x00003006, 0x00001FFC, 0x00000FF8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0 },
|
||||
{0x00000000, 0x00000000, 0x00000800, 0x00001800, 0x00003FFE, 0x00003FFE, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0 },
|
||||
{0x00000000, 0x00001C1E, 0x0000383E, 0x00003076, 0x000030E6, 0x000031C6, 0x00003F86, 0x00001F06, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0 },
|
||||
{0x00000000, 0x00001C1C, 0x0000380E, 0x00003186, 0x00003186, 0x00003186, 0x00003FFE, 0x00001EFC, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0 },
|
||||
{0x00000000, 0x000000F0, 0x000003F0, 0x00000F30, 0x00001C30, 0x00003830, 0x00003FFE, 0x00003FFE, 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0 },
|
||||
{0x00000000, 0x00003F8C, 0x00003F8E, 0x00003186, 0x00003186, 0x00003186, 0x000031FE, 0x000000FC, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0 },
|
||||
{0x00000000, 0x00001FFC, 0x00003FFE, 0x00003186, 0x00003186, 0x00003186, 0x000039FE, 0x000018FC, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0 },
|
||||
{0x00000000, 0x00003800, 0x00003000, 0x0000301E, 0x000030FE, 0x000033F0, 0x00003F80, 0x00003E00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0 },
|
||||
{0x00000000, 0x00001EFC, 0x00003FFE, 0x00003186, 0x00003186, 0x00003186, 0x00003FFE, 0x00001EFC, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0 },
|
||||
{0x00000000, 0x00001F8C, 0x00003FCE, 0x000030C6, 0x000030C6, 0x000030C6, 0x00003FFE, 0x00001FFC, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0 }
|
||||
};
|
||||
|
||||
|
||||
const int Dial_font12[10][13] =
|
||||
{
|
||||
{0x00000000, 0x000007FC, 0x00000FFE, 0x00000C06, 0x00000C06, 0x00000FFE, 0x000007FC, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0 },
|
||||
{0x00000000, 0x00000000, 0x00000600, 0x00000FFE, 0x00000FFE, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0 },
|
||||
{0x00000000, 0x0000060E, 0x00000E1E, 0x00000C36, 0x00000C66, 0x00000FC6, 0x00000786, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0 },
|
||||
{0x00000000, 0x0000060C, 0x00000E0E, 0x00000CC6, 0x00000CC6, 0x00000FFE, 0x0000077C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0 },
|
||||
{0x00000000, 0x00000078, 0x000001F8, 0x00000798, 0x00000E18, 0x00000FFE, 0x00000FFE, 0x00000018, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0 },
|
||||
{0x00000000, 0x00000FCC, 0x00000FCE, 0x00000CC6, 0x00000CC6, 0x00000CFE, 0x00000C7C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0 },
|
||||
{0x00000000, 0x000007FC, 0x00000FFE, 0x00000CC6, 0x00000CC6, 0x00000CFE, 0x0000067C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0 },
|
||||
{0x00000000, 0x00000E00, 0x00000C00, 0x00000C3E, 0x00000DFE, 0x00000FE0, 0x00000F00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0 },
|
||||
{0x00000000, 0x0000077C, 0x00000FFE, 0x00000CC6, 0x00000CC6, 0x00000FFE, 0x0000077C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0 },
|
||||
{0x00000000, 0x000007CC, 0x00000FE6, 0x00000C66, 0x00000C66, 0x00000FFE, 0x000007FC, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0 }
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif
|
|
@ -0,0 +1,76 @@
|
|||
/*----------------------------------------------------------------------------------
|
||||
Dial parameter
|
||||
-----------------------------------------------------------------------------------*/
|
||||
char f_dispmode = 0; // 0:Normal / 1: Rotate 90 degrees
|
||||
char f_main_outside = 0; // 0:Main dial is inside / 1:Main dial is outside
|
||||
char f_FONT = 0; // Font 0, 1, or 2
|
||||
char f_rev = 0; // Increasing Direction of dial rotation 0: CW / 1: CCW
|
||||
|
||||
char f_maintick1 = 1; // Main Tick(1) display on/off
|
||||
char f_maintick5 = 1; // Main Tick(5) display on/off
|
||||
char f_maintick10 = 1; // Main Tick(10) display on/off
|
||||
char f_mainnum = 1; // Main Number display on/off
|
||||
|
||||
char f_subtick1 = 1; // Sub Tick(1) display on/off
|
||||
char f_subtick5 = 1; // Sub Tick(5) display on/off
|
||||
char f_subtick10 = 1; // Sub Tick(10) display on/off
|
||||
char f_subnum = 1; // Sub Number display on/off
|
||||
|
||||
|
||||
//メインダイアル1目盛あたりの周波数 ------------------------------------------------------------
|
||||
int freq_tick_main = 10000; // Frequency/tikcs of Main dial (if 10000: 10kHz / else: 100kHz)
|
||||
|
||||
//ダイアル表示エリア------------------------------------------------------------
|
||||
int D_height = 80; // Display position
|
||||
|
||||
//ダイアル半径------------------------------------------------------------------
|
||||
int D_R = 160; //Dial radius (if 45000, Linear scale)
|
||||
|
||||
//メイン,サブダイアルの間隔----------------------------------------------------
|
||||
int Dial_space = 40; // Space bitween Main and Sub Dial
|
||||
|
||||
//目盛り間隔--------------------------------------------------------------------
|
||||
int tick_pitch_main = 50; // Main Tick Pitch
|
||||
int tick_pitch = 60; // Sub Tick Pitch
|
||||
|
||||
//目盛りの太さ------------------------------------------------------------------
|
||||
int tick_width = 1; // Width of Tick( 0 or 1 )
|
||||
|
||||
//目盛りの長さ(main)------------------------------------------------------------
|
||||
int tick_main1 = 4; // Length of Main Tick(1)
|
||||
int tick_main5 = 9; // Length of Main Tick(5)
|
||||
int tick_main10 = 12; // Length of Main Tick(10)
|
||||
|
||||
//目盛りの長さ(sub)-------------------------------------------------------------
|
||||
int tick1 = 8; // Length of Sub Tick(1)
|
||||
int tick5 = 11; // Length of Sub Tick(5)
|
||||
int tick10 = 15; // Length of Sub Tick(10)
|
||||
|
||||
//目盛り・数字間のスペース------------------------------------------------------
|
||||
int TNCL_main = 13; // Space bitween Number and Tick (Main)
|
||||
int TNCL = 16; // Space bitween Number and Tick (Sub)
|
||||
|
||||
// 指針長さ,幅-----------------------------------------------------------------
|
||||
int DP_len = 90; // Length of Dial pointer
|
||||
int DP_width = 1; // Width of Dial pointer
|
||||
int DP_pos = 12; // Position of Dial pointer
|
||||
|
||||
|
||||
//Coloring 0xRRGGBB -----------------------------------------------------------
|
||||
// 背景
|
||||
unsigned long cl_BG = 0x000000; // Background
|
||||
// 指針色
|
||||
unsigned long cl_POINTER = 0xFF0000; // Dial pointer
|
||||
// main目盛
|
||||
unsigned long cl_TICK_main = 0x00FF00; // Main Tick
|
||||
// main数字
|
||||
unsigned long cl_NUM_main = 0xFFFFFF; //Main Number
|
||||
// sub目盛
|
||||
unsigned long cl_TICK = 0x00FFFF; // Sub Tick
|
||||
// sub数字
|
||||
unsigned long cl_NUM = 0xFFFFFF; // Sub Number
|
||||
// ダイアルベース
|
||||
unsigned long cl_DIAL_BG = 0x000000; // Dial base
|
||||
/*---------------------------------------------------------------------------------
|
||||
|
||||
---------------------------------------------------------------------------------*/
|
|
@ -0,0 +1,308 @@
|
|||
/*
|
||||
* File: display.cpp
|
||||
* Author: JF3HZB / T.UEBO
|
||||
*
|
||||
* Created on 2019/02/10, 22:13
|
||||
*
|
||||
* -------------------------------------------
|
||||
* Dedicated Display Interface for ESP32
|
||||
*--------------------------------------------
|
||||
*
|
||||
*/
|
||||
|
||||
#include <arduino.h>
|
||||
#include <SPI.h>
|
||||
#include "soc/spi_reg.h"
|
||||
#include "display.h"
|
||||
|
||||
#define VSPI 3
|
||||
#define HSPI 2
|
||||
|
||||
#define sel_SPI VSPI
|
||||
|
||||
#define SCLK 18 // SPI clock pin
|
||||
#define SDI -1 // MISO(master input slave output) not using
|
||||
#define SDO 23 // MOSI(master output slave input) pin
|
||||
#define CS 5 // Chip Select pin
|
||||
#define DC 2 // Data/Command pin
|
||||
#define RST 15 // Reset pin
|
||||
|
||||
|
||||
uint8_t R_GRAM[Nx][Ny];
|
||||
uint8_t G_GRAM[Nx][Ny];
|
||||
uint8_t B_GRAM[Nx][Ny];
|
||||
uint16_t GRAM65k[Nx][Ny];
|
||||
|
||||
|
||||
|
||||
//-------------------------------------------------------
|
||||
#ifdef ST7735
|
||||
//-------------------------------------------------------
|
||||
void Transfer_Image() {
|
||||
|
||||
#define block_size 512
|
||||
int kxy, pt=0, xp, yp;
|
||||
uint32_t col_data;
|
||||
|
||||
d_Command(0x2A);
|
||||
SPI.write(0); SPI.write(0);
|
||||
SPI.write((Xw-1)>>8); SPI.write(Xw-1);
|
||||
d_Command(0x2B);
|
||||
SPI.write(0); SPI.write(0);
|
||||
SPI.write((Yw-1)>>8); SPI.write(Yw-1);
|
||||
d_Command(0x2C);
|
||||
|
||||
|
||||
|
||||
SET_PERI_REG_BITS( SPI_MOSI_DLEN_REG(sel_SPI),
|
||||
SPI_USR_MOSI_DBITLEN,
|
||||
(block_size-1),
|
||||
SPI_USR_MOSI_DBITLEN_S
|
||||
);
|
||||
|
||||
for(kxy=0; kxy<(Nx*Ny*16/block_size); kxy++) {
|
||||
while (READ_PERI_REG(SPI_CMD_REG(sel_SPI)) & SPI_USR);
|
||||
|
||||
for (uint32_t i = 0; i < 16; i++){
|
||||
xp=pt/Ny; yp=pt%Ny;
|
||||
col_data=GRAM65k[xp][yp];
|
||||
pt++;
|
||||
xp=pt/Ny; yp=pt%Ny;
|
||||
col_data|=(GRAM65k[xp][yp]<<16);
|
||||
pt++;
|
||||
WRITE_PERI_REG((SPI_W0_REG(sel_SPI) + (i << 2)), col_data);
|
||||
}
|
||||
|
||||
SET_PERI_REG_MASK(SPI_CMD_REG(sel_SPI), SPI_USR);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*-----------------------------------------------------------------
|
||||
Initialize ST7735
|
||||
------------------------------------------------------------------ */
|
||||
void display_init(void){
|
||||
pinMode(RST, OUTPUT); //Set RESET pin
|
||||
pinMode(DC, OUTPUT); //Set Data/Command pin
|
||||
SPI.begin(SCLK, SDI, SDO, CS); //VSPI setting
|
||||
|
||||
SPI.setBitOrder(MSBFIRST);
|
||||
//SPI.setFrequency(10000000);
|
||||
//SPI.setFrequency(20000000);
|
||||
SPI.setFrequency(27000000);
|
||||
//SPI.setFrequency(40000000);
|
||||
SPI.setDataMode(SPI_MODE0);
|
||||
SPI.setHwCs(true); //Set Hardware CS pin
|
||||
|
||||
//Hardware Reset------------
|
||||
digitalWrite(RST, HIGH);
|
||||
delay(10);
|
||||
digitalWrite(RST, LOW);
|
||||
delay(10);
|
||||
digitalWrite(RST, HIGH);
|
||||
delay(100);
|
||||
|
||||
digitalWrite(DC, HIGH);
|
||||
|
||||
d_Command(0x01); // Software reset
|
||||
delay (150); //Delay 150ms
|
||||
d_Command(0x11); //Sleep out
|
||||
delay (300);
|
||||
|
||||
d_Command(0xB1); SPI.write(0x01); SPI.write(0x2C); SPI.write(0x2D);
|
||||
d_Command(0xB2); SPI.write(0x01); SPI.write(0x2C); SPI.write(0x2D);
|
||||
d_Command(0xB3); SPI.write(0x01); SPI.write(0x2C); SPI.write(0x2D);
|
||||
SPI.write(0x01); SPI.write(0x2C); SPI.write(0x2D);
|
||||
|
||||
d_Command(0xB4); SPI.write(0x07); //Column inversion
|
||||
|
||||
d_Command(0xC0); SPI.write(0xA2); SPI.write(0x02); SPI.write(0x84);
|
||||
d_Command(0xC1); SPI.write(0xC5);
|
||||
d_Command(0xC2); SPI.write(0x0A); SPI.write(0x00);
|
||||
d_Command(0xC3); SPI.write(0x8A); SPI.write(0x2A);
|
||||
d_Command(0xC4); SPI.write(0x8A); SPI.write(0xEE);
|
||||
d_Command(0xC5); SPI.write(0x0E); //VCOM
|
||||
|
||||
d_Command(0x20); // not invert display,
|
||||
d_Command(0x36); SPI.write(0xC8); //Mem access ctl (directions),
|
||||
|
||||
d_Command(0x3A); // set color mode
|
||||
SPI.write(0x05); //65k mode
|
||||
|
||||
d_Command(0x2A); // Column addr set x=0 to 127
|
||||
SPI.write(0x00); SPI.write(0x00); SPI.write(0x00); SPI.write(0x7F);
|
||||
d_Command(0x2B); // Raw addr set y=0 to 159
|
||||
SPI.write(0x00); SPI.write(0x00); SPI.write(0x00); SPI.write(0x9F);
|
||||
|
||||
d_Command(0xE0);
|
||||
SPI.write(0x02); SPI.write(0x1C); SPI.write(0x07); SPI.write(0x12);
|
||||
SPI.write(0x37); SPI.write(0x32); SPI.write(0x29); SPI.write(0x2D);
|
||||
SPI.write(0x29); SPI.write(0x25); SPI.write(0x2B); SPI.write(0x39);
|
||||
SPI.write(0x00); SPI.write(0x01); SPI.write(0x03); SPI.write(0x10);
|
||||
d_Command(0xE1);
|
||||
SPI.write(0x03); SPI.write(0x1D); SPI.write(0x07); SPI.write(0x06);
|
||||
SPI.write(0x2E); SPI.write(0x2C); SPI.write(0x29); SPI.write(0x2D);
|
||||
SPI.write(0x2E); SPI.write(0x2E); SPI.write(0x37); SPI.write(0x3F);
|
||||
SPI.write(0x00); SPI.write(0x00); SPI.write(0x02); SPI.write(0x10);
|
||||
|
||||
d_Command(0x13);
|
||||
delay(10);
|
||||
d_Command(0x29);
|
||||
delay(100);
|
||||
d_Command(0x36); SPI.write(0xC0);
|
||||
delay(10);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
#ifdef SEPS525
|
||||
//---------------------------------------------------------------------------------
|
||||
void Transfer_Image() {
|
||||
int pt=0, xp, yp;
|
||||
|
||||
d_Command(0x17);
|
||||
SPI.write(0);
|
||||
d_Command(0x18);
|
||||
SPI.write(0x9F);
|
||||
d_Command(0x19);
|
||||
SPI.write(0);
|
||||
d_Command(0x1A);
|
||||
SPI.write(0x7F);
|
||||
d_Command(0x22);
|
||||
|
||||
SET_PERI_REG_BITS( SPI_MOSI_DLEN_REG(sel_SPI),
|
||||
SPI_USR_MOSI_DBITLEN,
|
||||
15,
|
||||
SPI_USR_MOSI_DBITLEN_S
|
||||
);
|
||||
for(pt=0; pt<Nx*Ny; pt++) {
|
||||
while (READ_PERI_REG(SPI_CMD_REG(sel_SPI)) & SPI_USR);
|
||||
xp=pt%Nx; yp=pt/Nx;
|
||||
WRITE_PERI_REG( SPI_W0_REG(sel_SPI), GRAM65k[xp][yp]);
|
||||
SET_PERI_REG_MASK(SPI_CMD_REG(sel_SPI), SPI_USR);
|
||||
}
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------
|
||||
Initialize SEPS525
|
||||
------------------------------------------------------------------ */
|
||||
void display_init(void){
|
||||
pinMode(RST, OUTPUT); //Set RESET pin
|
||||
pinMode(DC, OUTPUT); //Set Data/Command pin
|
||||
SPI.begin(SCLK, SDI, SDO, CS); //VSPI setting
|
||||
|
||||
SPI.setBitOrder(MSBFIRST);
|
||||
//SPI.setFrequency(10000000);
|
||||
//SPI.setFrequency(20000000);
|
||||
SPI.setFrequency(27000000);
|
||||
//SPI.setFrequency(40000000);
|
||||
SPI.setDataMode(SPI_MODE3); //OLED;
|
||||
|
||||
SPI.setHwCs(true); //Set Hardware CS pin
|
||||
|
||||
//Hardware Reset------------
|
||||
digitalWrite(RST, HIGH);
|
||||
delay(100);
|
||||
digitalWrite(RST, LOW);
|
||||
delay(500);
|
||||
digitalWrite(RST, HIGH);
|
||||
delay(500);
|
||||
|
||||
digitalWrite(DC, HIGH);
|
||||
|
||||
d_Command(0x04);// Set Normal Driving Current
|
||||
SPI.write(0x03);// Disable Oscillator Power Down
|
||||
delay(10);
|
||||
d_Command(0x04); // Enable Power Save Mode
|
||||
SPI.write(0x00); // Set Normal Driving Current
|
||||
delay(10); // Disable Oscillator Power Down
|
||||
|
||||
|
||||
d_Command(0x3B);
|
||||
SPI.write(0x00);
|
||||
d_Command(0x02);
|
||||
SPI.write(0x01); // Set EXPORT1 Pin at Internal Clock
|
||||
// Oscillator operates with external resister.
|
||||
// Internal Oscillator On
|
||||
|
||||
d_Command(0x03);
|
||||
SPI.write(0x90); // Set Frame Rate as 120Hz
|
||||
//SPI.write(0x30); // default 40Hz
|
||||
|
||||
d_Command(0x80);
|
||||
SPI.write(0x01); // Set Reference Voltage Controlled by External Resister
|
||||
|
||||
d_Command(0x08);// Set Pre-Charge Time of Red
|
||||
SPI.write(0x08); //(0x04);
|
||||
d_Command(0x09);// Set Pre-Charge Time of Green
|
||||
SPI.write(0x0A); //(0x05);
|
||||
d_Command(0x0A);// Set Pre-Charge Time of Blue
|
||||
SPI.write(0x0A); //(0x05);
|
||||
|
||||
d_Command(0x0B);// Set Pre-Charge Current of Red
|
||||
SPI.write(0xC0); //(0x9D);
|
||||
d_Command(0x0C);// Set Pre-Charge Current of Green
|
||||
SPI.write(0xB0); //(0x8C);
|
||||
d_Command(0x0D);// Set Pre-Charge Current of Blue
|
||||
SPI.write(0x98); //(0x57);
|
||||
|
||||
d_Command(0x10);// Set Driving Current of Red
|
||||
SPI.write(0xA0); //(0x56);
|
||||
d_Command(0x11);// Set Driving Current of Green
|
||||
SPI.write(0x93); //(0x4D);
|
||||
d_Command(0x12);// Set Driving Current of Blue
|
||||
SPI.write(0x8C); //(0x46);
|
||||
|
||||
d_Command(0x13);
|
||||
SPI.write(0x20); // Set Color Sequence
|
||||
d_Command(0x14);
|
||||
SPI.write(0x11); // Set MCU Interface Mode, 65k
|
||||
d_Command(0x16);
|
||||
SPI.write(0x66);
|
||||
d_Command(0x20);
|
||||
SPI.write(0x00); // Shift Mapping RAM Counter
|
||||
d_Command(0x21);
|
||||
SPI.write(0x00); // Shift Mapping RAM Counter
|
||||
d_Command(0x28);
|
||||
SPI.write(0x7F); // 1/128 Duty (0x0F~0x7F)
|
||||
d_Command(0x29);
|
||||
SPI.write(0x00); // Set Mapping RAM Display Start Line (0x00~0x7F)
|
||||
d_Command(0x06);
|
||||
SPI.write(0x01); // Display On (0x00/0x01)
|
||||
d_Command(0x05); // Disable Power Save Mode
|
||||
SPI.write(0x00); // Set All Internal Register Value as Normal Mode
|
||||
d_Command(0x15);
|
||||
SPI.write(0x00); // Set RGB Interface Polarity as Active Low
|
||||
delay(10);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/*------------------------------------------
|
||||
Command write
|
||||
-------------------------------------------*/
|
||||
void d_Command(uint8_t d){
|
||||
digitalWrite(DC, LOW);
|
||||
SPI.write(d);
|
||||
digitalWrite(DC, HIGH);
|
||||
}
|
||||
|
||||
|
||||
/*------------------------------------------
|
||||
Convert 24bit image to 16bit image
|
||||
-------------------------------------------*/
|
||||
void trans65k(void){
|
||||
int xps, yps;
|
||||
uint16_t col16;
|
||||
for(xps=0; xps<Nx; xps++){
|
||||
for(yps=0; yps<Ny; yps++){
|
||||
col16=(0xf800&(R_GRAM[xps][yps]<<8)) | (0x07E0&(G_GRAM[xps][yps]<<3)) | (0x001F&(B_GRAM[xps][yps]>>3));
|
||||
GRAM65k[xps][yps]=(col16 >> 8) | (col16 << 8);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
/*
|
||||
* File: display.h
|
||||
* Author: JF3HZB / T.UEBO
|
||||
*
|
||||
* Created on 2019/02/10, 22:13
|
||||
*/
|
||||
|
||||
#ifndef _display_
|
||||
#define _display_
|
||||
|
||||
/*----------------------------------------
|
||||
Select Display controller
|
||||
ST7735 : LCD (1.8inch 128x160 TFT)
|
||||
SEPS525: OLED ( NHD-1.69-160128UGC3 )
|
||||
-----------------------------------------*/
|
||||
|
||||
//#define SEPS525
|
||||
#define ST7735
|
||||
|
||||
/*---------------------------------------*/
|
||||
|
||||
|
||||
#define Xw 128
|
||||
#define Yw 160
|
||||
|
||||
#define Nx Yw
|
||||
#define Ny Xw
|
||||
|
||||
void display_init(void);
|
||||
void Transfer_Image(void);
|
||||
void trans65k(void);
|
||||
void d_Command(uint8_t d);
|
||||
|
||||
#endif
|
|
@ -0,0 +1,217 @@
|
|||
/*
|
||||
* File: font.h
|
||||
* Author: JF3HZB / T.UEBO
|
||||
*
|
||||
* Created on 2018/03/21, 23:04
|
||||
*/
|
||||
|
||||
#ifndef _font_
|
||||
#define _font_
|
||||
|
||||
#include "font12.h"
|
||||
#include "font16.h"
|
||||
#include "font20.h"
|
||||
|
||||
|
||||
/***********************************
|
||||
* Font Data 0x20 to 0xDF 192
|
||||
***********************************/
|
||||
|
||||
const char font[192][5] =
|
||||
{
|
||||
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, // " " 0x20
|
||||
{ 0x00, 0x00, 0x4f, 0x00, 0x00 }, // ! 0x21
|
||||
{ 0x00, 0x07, 0x00, 0x07, 0x00 }, // " 0x22
|
||||
{ 0x14, 0x7f, 0x14, 0x7f, 0x14 }, // # 0x23
|
||||
{ 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, // $ 0x24
|
||||
{ 0x23, 0x13, 0x08, 0x64, 0x62 }, // % 0x25
|
||||
{ 0x36, 0x49, 0x55, 0x22, 0x50 }, // & 0x26
|
||||
{ 0x00, 0x05, 0x03, 0x00, 0x00 }, // ' 0x27
|
||||
{ 0x00, 0x1c, 0x22, 0x41, 0x00 }, // ( 0x28
|
||||
{ 0x00, 0x41, 0x22, 0x1c, 0x00 }, // ) 0x29
|
||||
{ 0x14, 0x08, 0x3e, 0x08, 0x14 }, // * 0x2A
|
||||
{ 0x08, 0x08, 0x3e, 0x08, 0x08 }, // + 0x2B
|
||||
{ 0x00, 0x50, 0x30, 0x00, 0x00 }, // , 0x2C
|
||||
{ 0x08, 0x08, 0x08, 0x08, 0x08 }, // - 0x2D
|
||||
{ 0x00, 0x60, 0x60, 0x00, 0x00 }, // . 0x2E
|
||||
{ 0x20, 0x10, 0x08, 0x04, 0x02 }, // / 0x2F
|
||||
{ 0x3e, 0x51, 0x49, 0x45, 0x3e }, // 0 0x30
|
||||
{ 0x00, 0x42, 0x7f, 0x40, 0x00 }, // 1 0x31
|
||||
{ 0x42, 0x61, 0x51, 0x49, 0x46 }, // 2 0x32
|
||||
{ 0x21, 0x41, 0x45, 0x4b, 0x31 }, // 3 0x33
|
||||
{ 0x18, 0x14, 0x12, 0x7f, 0x10 }, // 4 0x34
|
||||
{ 0x27, 0x45, 0x45, 0x45, 0x39 }, // 5 0x35
|
||||
{ 0x3c, 0x4a, 0x49, 0x49, 0x30 }, // 6 0x36
|
||||
{ 0x01, 0x71, 0x09, 0x05, 0x03 }, // 7 0x37
|
||||
{ 0x36, 0x49, 0x49, 0x49, 0x36 }, // 8 0x38
|
||||
{ 0x06, 0x49, 0x49, 0x29, 0x1e }, // 9 0x39
|
||||
{ 0x00, 0x36, 0x36, 0x00, 0x00 }, // : 0x3A
|
||||
{ 0x00, 0x56, 0x36, 0x00, 0x00 }, // ; 0x3B
|
||||
{ 0x08, 0x14, 0x22, 0x41, 0x00 }, // < 0x3C
|
||||
{ 0x14, 0x14, 0x14, 0x14, 0x14 }, // = 0x3D
|
||||
{ 0x00, 0x41, 0x22, 0x14, 0x08 }, // > 0x3E
|
||||
{ 0x02, 0x01, 0x51, 0x09, 0x06 }, // ? 0x3F
|
||||
{ 0x32, 0x49, 0x79, 0x41, 0x3e }, // @ 0x40
|
||||
{ 0x7e, 0x11, 0x11, 0x11, 0x7e }, // A 0x41
|
||||
{ 0x7f, 0x49, 0x49, 0x49, 0x36 }, // B 0x42
|
||||
{ 0x3e, 0x41, 0x41, 0x41, 0x22 }, // C 0x43
|
||||
{ 0x7f, 0x41, 0x41, 0x22, 0x1c }, // D 0x44
|
||||
{ 0x7f, 0x49, 0x49, 0x49, 0x41 }, // E 0x45
|
||||
{ 0x7f, 0x09, 0x09, 0x09, 0x01 }, // F 0x46
|
||||
{ 0x3e, 0x41, 0x49, 0x49, 0x7a }, // G 0x47
|
||||
{ 0x7f, 0x08, 0x08, 0x08, 0x7f }, // H 0x48
|
||||
{ 0x00, 0x41, 0x7f, 0x41, 0x00 }, // I 0x49
|
||||
{ 0x20, 0x40, 0x41, 0x3f, 0x01 }, // J 0x4A
|
||||
{ 0x7f, 0x08, 0x14, 0x22, 0x41 }, // K 0x4B
|
||||
{ 0x7f, 0x40, 0x40, 0x40, 0x40 }, // L 0x4C
|
||||
{ 0x7f, 0x02, 0x0c, 0x02, 0x7f }, // M 0x4D
|
||||
{ 0x7f, 0x04, 0x08, 0x10, 0x7f }, // N 0x4E
|
||||
{ 0x3e, 0x41, 0x41, 0x41, 0x3e }, // O 0x4F
|
||||
{ 0x7f, 0x09, 0x09, 0x09, 0x06 }, // P 0X50
|
||||
{ 0x3e, 0x41, 0x51, 0x21, 0x5e }, // Q 0X51
|
||||
{ 0x7f, 0x09, 0x19, 0x29, 0x46 }, // R 0X52
|
||||
{ 0x46, 0x49, 0x49, 0x49, 0x31 }, // S 0X53
|
||||
{ 0x01, 0x01, 0x7f, 0x01, 0x01 }, // T 0X54
|
||||
{ 0x3f, 0x40, 0x40, 0x40, 0x3f }, // U 0X55
|
||||
{ 0x1f, 0x20, 0x40, 0x20, 0x1f }, // V 0X56
|
||||
{ 0x3f, 0x40, 0x38, 0x40, 0x3f }, // W 0X57
|
||||
{ 0x63, 0x14, 0x08, 0x14, 0x63 }, // X 0X58
|
||||
{ 0x07, 0x08, 0x70, 0x08, 0x07 }, // Y 0X59
|
||||
{ 0x61, 0x51, 0x49, 0x45, 0x43 }, // Z 0X5A
|
||||
{ 0x00, 0x7f, 0x41, 0x41, 0x00 }, // [ 0X5B
|
||||
{ 0x02, 0x04, 0x08, 0x10, 0x20 }, // "\" 0X5C
|
||||
{ 0x00, 0x41, 0x41, 0x7f, 0x00 }, // ] 0X5D
|
||||
{ 0x04, 0x02, 0x01, 0x02, 0x04 }, // ^ 0X5E
|
||||
{ 0x40, 0x40, 0x40, 0x40, 0x40 }, // _ 0X5F
|
||||
{ 0x00, 0x01, 0x02, 0x04, 0x00 }, // ` 0X60
|
||||
{ 0x20, 0x54, 0x54, 0x54, 0x78 }, // a 0X61
|
||||
{ 0x7f, 0x48, 0x44, 0x44, 0x38 }, // b 0X62
|
||||
{ 0x38, 0x44, 0x44, 0x44, 0x20 }, // c 0X63
|
||||
{ 0x38, 0x44, 0x44, 0x48, 0x7f }, // d 0X64
|
||||
{ 0x38, 0x54, 0x54, 0x54, 0x18 }, // e 0X65
|
||||
{ 0x08, 0x7e, 0x09, 0x01, 0x02 }, // f 0X66
|
||||
{ 0x0c, 0x52, 0x52, 0x52, 0x3e }, // g 0X67
|
||||
{ 0x7f, 0x08, 0x04, 0x04, 0x78 }, // h 0X68
|
||||
{ 0x00, 0x44, 0x7d, 0x40, 0x00 }, // i 0X69
|
||||
{ 0x20, 0x40, 0x44, 0x3d, 0x00 }, // j 0X6A
|
||||
{ 0x7f, 0x10, 0x28, 0x44, 0x00 }, // k 0X6B
|
||||
{ 0x00, 0x41, 0x7f, 0x40, 0x00 }, // l 0X6C
|
||||
{ 0x7c, 0x04, 0x18, 0x04, 0x78 }, // m 0X6D
|
||||
{ 0x7c, 0x08, 0x04, 0x04, 0x78 }, // n 0X6E
|
||||
{ 0x38, 0x44, 0x44, 0x44, 0x38 }, // o 0X6F
|
||||
{ 0x7c, 0x14, 0x14, 0x14, 0x08 }, // p 0X70
|
||||
{ 0x08, 0x14, 0x14, 0x18, 0x7c }, // q 0X71
|
||||
{ 0x7c, 0x08, 0x04, 0x04, 0x08 }, // r 0X72
|
||||
{ 0x48, 0x54, 0x54, 0x54, 0x20 }, // s 0X73
|
||||
{ 0x04, 0x3f, 0x44, 0x40, 0x20 }, // t 0X74
|
||||
{ 0x3c, 0x40, 0x40, 0x20, 0x7c }, // u 0X75
|
||||
{ 0x1c, 0x20, 0x40, 0x20, 0x1c }, // v 0X76
|
||||
{ 0x3c, 0x40, 0x30, 0x40, 0x3c }, // w 0X77
|
||||
{ 0x44, 0x28, 0x10, 0x28, 0x44 }, // x 0X78
|
||||
{ 0x0c, 0x50, 0x50, 0x50, 0x3c }, // y 0X79
|
||||
{ 0x44, 0x64, 0x54, 0x4c, 0x44 }, // z 0X7A
|
||||
{ 0x00, 0x08, 0x36, 0x41, 0x00 }, // { 0X7B
|
||||
{ 0x00, 0x00, 0x7f, 0x00, 0x00 }, // | 0X7C
|
||||
{ 0x00, 0x41, 0x36, 0x08, 0x00 }, // } 0X7D
|
||||
{ 0x08, 0x08, 0x2a, 0x1c, 0x08 }, // -> 0X7E
|
||||
{ 0x08, 0x1c, 0x2a, 0x08, 0x08 }, // <- 0X7F
|
||||
{ 0x00, 0x00, 0x0f, 0x08, 0x08 }, // 0x80
|
||||
{ 0x08, 0x08, 0x0f, 0x00, 0x00 }, // 0x81
|
||||
{ 0x2c, 0x32, 0x02, 0x32, 0x2c }, // ohm 0x82
|
||||
{ 0x44, 0x3c, 0x04, 0x7c, 0x44 }, // pi 0x83
|
||||
{ 0x63, 0x55, 0x49, 0x41, 0x41 }, // siguma0x84
|
||||
{ 0x14, 0x14, 0x7c, 0x14, 0x12 }, // sec 0x85
|
||||
{ 0x44, 0x3c, 0x14, 0x14, 0x74 }, // man 0x86
|
||||
{ 0x7c, 0x14, 0x1c, 0x14, 0x7c }, // en 0x87
|
||||
{ 0x10, 0x10, 0x54, 0x10, 0x10 }, // waru0x88
|
||||
{ 0x7f, 0x7f, 0x7f, 0x7f, 0x7f }, // 0x89
|
||||
{ 0x0f, 0x0f, 0x0f, 0x0f, 0x0f }, // 0x8A
|
||||
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, // 0x8B
|
||||
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, // 0x8C
|
||||
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, // 0x8D
|
||||
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, // 0x8E
|
||||
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, // 0x8F
|
||||
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, // 0x90
|
||||
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, // 0x91
|
||||
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, // 0x92
|
||||
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, // 0x93
|
||||
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, // 0x94
|
||||
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, // 0x95
|
||||
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, // 0x96
|
||||
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, // 0x97
|
||||
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, // 0x98
|
||||
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, // 0x99
|
||||
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, // 0x9A
|
||||
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, // 0x9B
|
||||
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, // 0x9C
|
||||
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, // 0x9D
|
||||
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, // 0x9E
|
||||
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, // 0x9F
|
||||
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, // 0xA0
|
||||
{ 0x70, 0x50, 0x70, 0x00, 0x00 }, // . 0xA1
|
||||
{ 0x00, 0x00, 0x0f, 0x01, 0x01 }, // [ 0xA2
|
||||
{ 0x40, 0x40, 0x78, 0x00, 0x00 }, // ] 0xA3
|
||||
{ 0x10, 0x20, 0x40, 0x00, 0x00 }, // , 0xA4
|
||||
{ 0x00, 0x18, 0x18, 0x00, 0x00 }, // . 0xA5
|
||||
{ 0x0a, 0x0a, 0x4a, 0x2a, 0x1e }, // wo 0xA6
|
||||
{ 0x04, 0x24, 0x34, 0x14, 0x0c }, // a 0xA7
|
||||
{ 0x20, 0x10, 0x78, 0x04, 0x00 }, // i 0xA8
|
||||
{ 0x18, 0x08, 0x4c, 0x48, 0x38 }, // u 0xA9
|
||||
{ 0x48, 0x48, 0x78, 0x48, 0x48 }, // e 0xAA
|
||||
{ 0x48, 0x28, 0x18, 0x7c, 0x08 }, // o 0xAB
|
||||
{ 0x08, 0x7c, 0x08, 0x28, 0x18 }, // ya 0xAC
|
||||
{ 0x40, 0x48, 0x48, 0x78, 0x40 }, // yu 0xAD
|
||||
{ 0x54, 0x54, 0x54, 0x7c, 0x00 }, // yo 0xAE
|
||||
{ 0x18, 0x00, 0x58, 0x40, 0x38 }, // tu 0xAF
|
||||
{ 0x08, 0x08, 0x08, 0x08, 0x08 }, // - 0xB0
|
||||
{ 0x01, 0x41, 0x3d, 0x09, 0x07 }, // a 0xB1
|
||||
{ 0x20, 0x10, 0x7c, 0x02, 0x01 }, // i 0xB2
|
||||
{ 0x0e, 0x02, 0x43, 0x22, 0x1e }, // u 0xB3
|
||||
{ 0x42, 0x42, 0x7e, 0x42, 0x42 }, // e 0xB4
|
||||
{ 0x22, 0x12, 0x0a, 0x7f, 0x02 }, // o 0xB5
|
||||
{ 0x42, 0x3f, 0x02, 0x42, 0x3e }, // ka 0xB6
|
||||
{ 0x0a, 0x0a, 0x7f, 0x0a, 0x0a }, // ki 0xB7
|
||||
{ 0x08, 0x46, 0x42, 0x22, 0x1e }, // ku 0xB8
|
||||
{ 0x04, 0x03, 0x42, 0x3e, 0x04 }, // ke 0xB9
|
||||
{ 0x42, 0x42, 0x42, 0x42, 0x7e }, // ko 0xBA
|
||||
{ 0x02, 0x4f, 0x22, 0x1f, 0x02 }, // sa 0xBB
|
||||
{ 0x4a, 0x4a, 0x40, 0x20, 0x1c }, // si 0xBC
|
||||
{ 0x42, 0x22, 0x12, 0x2a, 0x46 }, // su 0xBD
|
||||
{ 0x02, 0x3f, 0x42, 0x4a, 0x46 }, // se 0xBE
|
||||
{ 0x06, 0x48, 0x40, 0x20, 0x1e }, // so 0xBF
|
||||
{ 0x08, 0x46, 0x4a, 0x32, 0x1e }, // ta 0xC0
|
||||
{ 0x0a, 0x4a, 0x3e, 0x09, 0x08 }, // ti 0xC1
|
||||
{ 0x0e, 0x00, 0x4e, 0x20, 0x1e }, // tu 0xC2
|
||||
{ 0x04, 0x45, 0x3d, 0x05, 0x04 }, // te 0xC3
|
||||
{ 0x00, 0x7f, 0x08, 0x10, 0x00 }, // to 0xC4
|
||||
{ 0x44, 0x24, 0x1f, 0x04, 0x04 }, // na 0xC5
|
||||
{ 0x40, 0x42, 0x42, 0x42, 0x40 }, // ni 0xC6
|
||||
{ 0x42, 0x2a, 0x12, 0x2a, 0x06 }, // nu 0xC7
|
||||
{ 0x22, 0x12, 0x7b, 0x16, 0x22 }, // ne 0xC8
|
||||
{ 0x00, 0x40, 0x20, 0x1f, 0x00 }, // no 0xC9
|
||||
{ 0x78, 0x00, 0x02, 0x04, 0x78 }, // ha 0xCA
|
||||
{ 0x3f, 0x44, 0x44, 0x44, 0x44 }, // hi 0xCB
|
||||
{ 0x02, 0x42, 0x42, 0x22, 0x1e }, // hu 0xCC
|
||||
{ 0x04, 0x02, 0x04, 0x08, 0x30 }, // he 0xCD
|
||||
{ 0x32, 0x02, 0x7f, 0x02, 0x32 }, // ho 0xCE
|
||||
{ 0x02, 0x12, 0x22, 0x52, 0x0e }, // ma 0xCF
|
||||
{ 0x00, 0x2a, 0x2a, 0x2a, 0x40 }, // mi 0xD0
|
||||
{ 0x38, 0x24, 0x22, 0x20, 0x70 }, // mu 0xD1
|
||||
{ 0x40, 0x28, 0x10, 0x28, 0x06 }, // me 0xD2
|
||||
{ 0x0a, 0x3e, 0x4a, 0x4a, 0x4a }, // mo 0xD3
|
||||
{ 0x04, 0x7f, 0x04, 0x14, 0x0c }, // ya 0xD4
|
||||
{ 0x40, 0x42, 0x42, 0x7e, 0x40 }, // yu 0xD5
|
||||
{ 0x4a, 0x4a, 0x4a, 0x4a, 0x7e }, // yo 0xD6
|
||||
{ 0x04, 0x05, 0x45, 0x25, 0x1c }, // ra 0xD7
|
||||
{ 0x0f, 0x40, 0x20, 0x1f, 0x00 }, // ri 0xD8
|
||||
{ 0x7c, 0x00, 0x7e, 0x80, 0x30 }, // ru 0xD9
|
||||
{ 0x7e, 0x40, 0x20, 0x10, 0x08 }, // re 0xDA
|
||||
{ 0x7e, 0x42, 0x42, 0x42, 0x7e }, // ro 0xDB
|
||||
{ 0x0e, 0x02, 0x42, 0x22, 0x1e }, // wa 0xDC
|
||||
{ 0x42, 0x42, 0x40, 0x20, 0x18 }, // n 0xDD
|
||||
{ 0x02, 0x04, 0x01, 0x02, 0x00 }, // " 0xDE
|
||||
{ 0x07, 0x05, 0x07, 0x00, 0x00 } // . 0xDF
|
||||
|
||||
};
|
||||
|
||||
#endif
|
|
@ -0,0 +1,97 @@
|
|||
const int font12[95][13]={
|
||||
{0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000000, 0x00000380, 0x000007E6, 0x00000380, 0x00000000, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000000, 0x00000380, 0x00000040, 0x00000380, 0x00000000, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000090, 0x000007FE, 0x000007FE, 0x00000090, 0x000007FE, 0x000007FE, 0x00000090, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000398, 0x000006CC, 0x00000FFE, 0x0000066C, 0x00000338, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000006, 0x0000030C, 0x00000498, 0x000004B0, 0x0000036C, 0x000000D2, 0x00000192, 0x0000030C, 0x00000600, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000018, 0x0000003C, 0x00000766, 0x00000DC2, 0x000008E6, 0x00000DBC, 0x0000071C, 0x00000036, 0x00000022, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000000, 0x00000080, 0x00000300, 0x00000300, 0x00000000, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000000, 0x000001F8, 0x000003FC, 0x00000606, 0x00000000, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000000, 0x00000606, 0x000003FC, 0x000001F8, 0x00000000, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000001B0, 0x000000E0, 0x000003F8, 0x000003F8, 0x000000E0, 0x000001B0, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000040, 0x00000040, 0x000001F0, 0x00000040, 0x00000040, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000000, 0x00000001, 0x00000007, 0x00000006, 0x00000000, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000000, 0x00000000, 0x00000006, 0x00000006, 0x00000000, 0x00000000, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000007, 0x0000001C, 0x000000F0, 0x00000380, 0x00000E00, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000003FC, 0x000007FE, 0x00000402, 0x00000402, 0x000007FE, 0x000003FC, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000000, 0x00000202, 0x000007FE, 0x000007FE, 0x00000002, 0x00000000, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x0000038E, 0x0000079E, 0x00000432, 0x00000462, 0x000007C6, 0x00000386, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x0000031C, 0x0000071E, 0x00000442, 0x00000442, 0x000007FE, 0x000003BC, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000038, 0x000001F8, 0x000007C8, 0x00000608, 0x000007FE, 0x000007FE, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000007CC, 0x0000078E, 0x00000482, 0x00000482, 0x000004FE, 0x0000047C, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000003FC, 0x000007FE, 0x00000442, 0x00000442, 0x0000077E, 0x0000033C, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000700, 0x00000600, 0x0000040E, 0x0000047E, 0x000007F0, 0x00000780, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000003BC, 0x000007FE, 0x00000442, 0x00000442, 0x000007FE, 0x000003BC, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000003CC, 0x000007EE, 0x00000422, 0x00000422, 0x000007FE, 0x000003FC, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000000, 0x00000000, 0x0000018C, 0x00000000, 0x00000000, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000000, 0x00000002, 0x0000018C, 0x00000000, 0x00000000, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000040, 0x000000E0, 0x000001B0, 0x00000318, 0x0000060C, 0x00000000, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000000, 0x00000090, 0x00000090, 0x00000090, 0x00000090, 0x00000000, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000000, 0x0000060C, 0x00000318, 0x000001B0, 0x000000E0, 0x00000040, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000380, 0x00000780, 0x00000436, 0x000007E0, 0x000003C0, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000000F8, 0x00000104, 0x00000272, 0x00000492, 0x000004B2, 0x000004F2, 0x00000294, 0x00000130, 0x000000E0, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000006, 0x0000001E, 0x0000007E, 0x000001E8, 0x00000788, 0x00000788, 0x000001E8, 0x0000007E, 0x0000001E, 0x00000006, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000007FE, 0x000007FE, 0x00000442, 0x00000442, 0x00000442, 0x000007E6, 0x000003BC, 0x00000018, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000001F8, 0x000003FC, 0x00000606, 0x00000402, 0x00000402, 0x00000606, 0x0000079E, 0x0000039C, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000007FE, 0x000007FE, 0x00000402, 0x00000402, 0x00000402, 0x00000606, 0x000003FC, 0x000001F8, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000007FE, 0x000007FE, 0x00000442, 0x00000442, 0x000004E2, 0x00000606, 0x0000030C, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000007FE, 0x000007FE, 0x00000440, 0x00000440, 0x000004E0, 0x00000600, 0x00000300, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000001F8, 0x000003FC, 0x00000606, 0x00000402, 0x00000422, 0x00000626, 0x0000073E, 0x0000033C, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000007FE, 0x000007FE, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x000007FE, 0x000007FE, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000606, 0x000007FE, 0x000007FE, 0x00000606, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x0000000C, 0x0000000E, 0x00000002, 0x00000002, 0x000007FE, 0x000007FC, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000007FE, 0x000007FE, 0x000000E0, 0x000001B0, 0x00000318, 0x0000060C, 0x00000406, 0x00000002, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000007FE, 0x000007FE, 0x00000002, 0x00000002, 0x00000002, 0x00000006, 0x0000000C, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000007FE, 0x000007FE, 0x000001C0, 0x00000070, 0x0000001E, 0x0000001E, 0x00000070, 0x000001C0, 0x000007FE, 0x000007FE, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000007FE, 0x000007FE, 0x00000180, 0x000000C0, 0x00000060, 0x00000030, 0x000007FE, 0x000007FE, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000001F8, 0x000003FC, 0x00000204, 0x00000402, 0x00000402, 0x00000204, 0x000003FC, 0x000001F8, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000007FE, 0x000007FE, 0x00000410, 0x00000410, 0x00000630, 0x000003E0, 0x000001C0, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000001F8, 0x000003FC, 0x00000204, 0x00000402, 0x0000041A, 0x0000041A, 0x0000020C, 0x000003FE, 0x000001FA, 0x00000002, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000007FE, 0x000007FE, 0x00000410, 0x00000418, 0x0000063C, 0x000003EE, 0x000001C6, 0x00000002, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x0000039C, 0x000007DE, 0x000004C2, 0x00000442, 0x00000462, 0x0000077E, 0x0000033C, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000700, 0x00000600, 0x00000400, 0x000007FE, 0x000007FE, 0x00000400, 0x00000600, 0x00000700, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000007F8, 0x000007FC, 0x00000002, 0x00000002, 0x00000002, 0x000007FC, 0x000007F8, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000700, 0x000007E0, 0x000000F8, 0x0000001E, 0x0000001E, 0x000000F8, 0x000007E0, 0x00000700, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000000, 0x000007E0, 0x000007FE, 0x0000003E, 0x000000E0, 0x000003C0, 0x000000E0, 0x0000003E, 0x000007FE, 0x000007E0, 0x00000000, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000606, 0x0000070E, 0x0000039C, 0x000000F0, 0x00000060, 0x000000F0, 0x0000039C, 0x0000070E, 0x00000606, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000700, 0x00000780, 0x000001C0, 0x0000007E, 0x0000007E, 0x000001C0, 0x00000780, 0x00000700, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000706, 0x0000060E, 0x0000041E, 0x00000472, 0x000004E2, 0x00000782, 0x00000706, 0x0000060E, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000000, 0x000007FE, 0x000007FE, 0x00000402, 0x00000000, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000700, 0x000003C0, 0x000000F0, 0x0000003C, 0x0000000E, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000000, 0x00000402, 0x000007FE, 0x000007FE, 0x00000000, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000180, 0x00000300, 0x00000600, 0x00000600, 0x00000300, 0x00000180, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000000, 0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000000, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000000, 0x00000200, 0x00000300, 0x00000180, 0x00000000, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x0000004C, 0x000000DE, 0x00000092, 0x00000092, 0x000000FE, 0x0000007E, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000007FE, 0x000007FE, 0x00000082, 0x00000082, 0x000000FE, 0x0000007C, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x0000007C, 0x000000FE, 0x00000082, 0x00000082, 0x000000EE, 0x0000006C, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x0000007C, 0x000000FE, 0x00000082, 0x00000082, 0x000007FE, 0x000007FE, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x0000007C, 0x000000FE, 0x00000092, 0x00000092, 0x000000F6, 0x00000074, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000080, 0x000003FE, 0x000007FE, 0x00000680, 0x00000280, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000072, 0x000000F9, 0x00000089, 0x0000008B, 0x0000007F, 0x000000FE, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000007FE, 0x000007FE, 0x00000080, 0x00000080, 0x000000FE, 0x0000007E, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000000, 0x000006FE, 0x000006FE, 0x00000000, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x0000000E, 0x0000000F, 0x00000001, 0x00000001, 0x000006FF, 0x000006FE, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000007FE, 0x000007FE, 0x00000030, 0x00000078, 0x000000CC, 0x00000086, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000000, 0x000007FE, 0x000007FE, 0x00000400, 0x00000000, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000000FE, 0x000000FE, 0x00000080, 0x00000080, 0x000000FE, 0x000000FE, 0x00000080, 0x00000080, 0x000000FE, 0x0000007E, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000000FE, 0x000000FE, 0x00000080, 0x00000080, 0x000000FE, 0x0000007E, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x0000007C, 0x000000FE, 0x00000082, 0x00000082, 0x000000FE, 0x0000007C, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000000FF, 0x000000FF, 0x00000084, 0x00000084, 0x000000FC, 0x00000078, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000038, 0x0000007C, 0x00000082, 0x00000082, 0x000000FF, 0x0000007F, 0x00000001, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000000C0, 0x0000007E, 0x0000007E, 0x000000C0, 0x000000C0, 0x00000060, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000064, 0x000000F6, 0x00000092, 0x00000092, 0x000000DE, 0x0000004C, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000040, 0x000001FC, 0x000001FE, 0x00000046, 0x0000004C, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000000FC, 0x000000FE, 0x00000002, 0x00000002, 0x000000FE, 0x000000FC, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000000F8, 0x000000FC, 0x00000006, 0x00000006, 0x000000FC, 0x000000F8, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000000F0, 0x000000F8, 0x0000000E, 0x0000000E, 0x000000F8, 0x000000F8, 0x0000000E, 0x0000000E, 0x000000F8, 0x000000F0, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000000C6, 0x000000EE, 0x00000038, 0x00000010, 0x00000038, 0x000000EE, 0x000000C6, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000000C0, 0x000000F3, 0x0000003F, 0x0000000E, 0x00000038, 0x000000F0, 0x000000C0, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x000000E6, 0x000000CE, 0x00000092, 0x000000E6, 0x000000CE, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000000, 0x00000060, 0x000003FC, 0x00000606, 0x00000000, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000000, 0x00000000, 0x000007FE, 0x00000000, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000000, 0x00000606, 0x000003FC, 0x00000060, 0x00000000, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF},
|
||||
{0x00000020, 0x00000060, 0x00000040, 0x00000060, 0x00000020, 0x00000060, 0x00000040, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF, 0x00000FFF}
|
||||
};
|
|
@ -0,0 +1,104 @@
|
|||
/*
|
||||
* File: font.h
|
||||
* Author: JF3HZB / T.UEBO
|
||||
*
|
||||
* Created on 2018/03/21, 23:04
|
||||
*/
|
||||
|
||||
const int font16[95][21]={
|
||||
{0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000000, 0x00000000, 0x00003FCC, 0x00003FCC, 0x00000000, 0x00000000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000000, 0x00000000, 0x00003800, 0x00003800, 0x00000000, 0x00003800, 0x00003800, 0x00000000, 0x00000000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000058, 0x000004F8, 0x000007E0, 0x00001F58, 0x00003CF8, 0x000027E0, 0x00001F40, 0x00003C40, 0x00002400, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000610, 0x00000F1C, 0x0000198C, 0x00007FFF, 0x00007FFF, 0x000018CC, 0x00001C78, 0x00000430, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00001C00, 0x00003E04, 0x0000621C, 0x00004638, 0x00007CE0, 0x000039C0, 0x00001738, 0x00001E7C, 0x000038C4, 0x0000708C, 0x000040F8, 0x00000070, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000070, 0x000000F8, 0x0000398C, 0x00007F04, 0x00004784, 0x000047E4, 0x00007D7C, 0x0000391C, 0x000001F4, 0x000001E4, 0x0000010C, 0x00000108, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000000, 0x00000000, 0x00003800, 0x00003800, 0x00000000, 0x00000000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000000, 0x00000000, 0x00000FF0, 0x00003FFC, 0x0000700E, 0x00004002, 0x00000000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000000, 0x00004002, 0x0000700E, 0x00003FFC, 0x00000FF0, 0x00000000, 0x00000000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000440, 0x000006C0, 0x00000380, 0x00001FF0, 0x00001FF0, 0x00000380, 0x000006C0, 0x00000440, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000100, 0x00000100, 0x00000100, 0x00000FE0, 0x00000FE0, 0x00000100, 0x00000100, 0x00000100, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000000, 0x00000000, 0x00000002, 0x0000000E, 0x0000000C, 0x00000000, 0x00000000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000000, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000000, 0x00000000, 0x0000000C, 0x0000000C, 0x00000000, 0x00000000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000006, 0x0000001E, 0x00000078, 0x000001E0, 0x00000780, 0x00001E00, 0x00007800, 0x00006000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x000007E0, 0x00001FF8, 0x0000381C, 0x00002004, 0x00002004, 0x0000381C, 0x00001FF8, 0x000007E0, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000000, 0x00001004, 0x00001004, 0x00003FFC, 0x00003FFC, 0x00000004, 0x00000004, 0x00000000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000C1C, 0x00001C3C, 0x00003064, 0x000020C4, 0x00002184, 0x0000330C, 0x00001E3C, 0x00000C30, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000830, 0x00001838, 0x0000310C, 0x00002104, 0x00002104, 0x0000338C, 0x00001EF8, 0x00000C70, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000060, 0x000001E0, 0x000007A0, 0x00001E20, 0x00003824, 0x00003FFC, 0x00003FFC, 0x00000024, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000010, 0x00003F18, 0x00003F0C, 0x00002204, 0x00002204, 0x0000230C, 0x000021F8, 0x000020F0, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000FF0, 0x00001FF8, 0x0000330C, 0x00002204, 0x00002204, 0x0000330C, 0x000019F8, 0x000008F0, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000C00, 0x00003C00, 0x00003000, 0x0000203C, 0x000021FC, 0x000027C0, 0x00003E00, 0x00003800, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000C70, 0x00001EF8, 0x0000338C, 0x00002104, 0x00002104, 0x0000338C, 0x00001EF8, 0x00000C70, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000F10, 0x00001F98, 0x000030CC, 0x00002044, 0x00002044, 0x000030CC, 0x00001FF8, 0x00000FF0, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000000, 0x00000000, 0x00000000, 0x00000C18, 0x00000C18, 0x00000000, 0x00000000, 0x00000000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000000, 0x00000000, 0x00000004, 0x00000C1C, 0x00000C18, 0x00000000, 0x00000000, 0x00000000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000100, 0x00000380, 0x000006C0, 0x00000C60, 0x00001830, 0x00003018, 0x00002008, 0x00000000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000000, 0x00000240, 0x00000240, 0x00000240, 0x00000240, 0x00000240, 0x00000240, 0x00000000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000000, 0x00002008, 0x00003018, 0x00001830, 0x00000C60, 0x000006C0, 0x00000380, 0x00000100, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000C00, 0x00001C00, 0x00003000, 0x0000206C, 0x000020EC, 0x00003180, 0x00001F00, 0x00000E00, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x000003E0, 0x000007F0, 0x00000C18, 0x000019CC, 0x000033E4, 0x00002624, 0x00002464, 0x000027C4, 0x000027E4, 0x0000362C, 0x00001868, 0x00000FC0, 0x00000780, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000004, 0x0000001C, 0x000000FC, 0x000003E4, 0x00000F40, 0x00003C40, 0x00003C40, 0x00000F40, 0x000003E4, 0x000000FC, 0x0000001C, 0x00000004, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00002004, 0x00003FFC, 0x00003FFC, 0x00002104, 0x00002104, 0x00002104, 0x00002104, 0x00003304, 0x00001F8C, 0x00000CF8, 0x00000070, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x000003C0, 0x00000FF0, 0x00001C38, 0x0000300C, 0x00002004, 0x00002004, 0x00002004, 0x00003004, 0x0000300C, 0x00003C18, 0x00000C10, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00002004, 0x00003FFC, 0x00003FFC, 0x00002004, 0x00002004, 0x00002004, 0x00002004, 0x0000300C, 0x00001C38, 0x00000FF0, 0x000003C0, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00002004, 0x00003FFC, 0x00003FFC, 0x00002104, 0x00002104, 0x00002104, 0x00002384, 0x000027C4, 0x0000300C, 0x00001818, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00002004, 0x00003FFC, 0x00003FFC, 0x00002104, 0x00002104, 0x00002100, 0x00002380, 0x000027C0, 0x00003000, 0x00001800, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x000003C0, 0x00000FF0, 0x00001C38, 0x0000300C, 0x00002004, 0x00002004, 0x00002084, 0x00002084, 0x0000308C, 0x000038FC, 0x000008FC, 0x00000080, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00002004, 0x00003FFC, 0x00003FFC, 0x00002104, 0x00000100, 0x00000100, 0x00000100, 0x00002104, 0x00003FFC, 0x00003FFC, 0x00002004, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00002004, 0x00002004, 0x00003FFC, 0x00003FFC, 0x00002004, 0x00002004, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000018, 0x0000001C, 0x00002004, 0x00002004, 0x00003FFC, 0x00003FF8, 0x00002000, 0x00002000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000000, 0x00002004, 0x00003FFC, 0x00003FFC, 0x00002184, 0x00000300, 0x00000780, 0x00002DC0, 0x00003874, 0x0000303C, 0x0000200C, 0x00002004, 0x00000004, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00002004, 0x00003FFC, 0x00003FFC, 0x00002004, 0x00002004, 0x00000004, 0x00000004, 0x0000000C, 0x00000018, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00002004, 0x00003FFC, 0x00003FFC, 0x00001E04, 0x00000784, 0x000001E0, 0x00000078, 0x00000078, 0x000001E0, 0x00000784, 0x00001E04, 0x00003FFC, 0x00003FFC, 0x00002004, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00002004, 0x00003FFC, 0x00003FFC, 0x00001E04, 0x00000704, 0x000001C0, 0x000020E0, 0x00002038, 0x00003FFC, 0x00003FFC, 0x00002000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x000003C0, 0x00000FF0, 0x00001C38, 0x0000300C, 0x00002004, 0x00002004, 0x00002004, 0x00002004, 0x0000300C, 0x00001C38, 0x00000FF0, 0x000003C0, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00002004, 0x00003FFC, 0x00003FFC, 0x00002084, 0x00002084, 0x00002080, 0x00002080, 0x00003180, 0x00001F00, 0x00000E00, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x000003C0, 0x00000FF0, 0x00001C38, 0x0000301C, 0x00002034, 0x00002024, 0x00002024, 0x00002034, 0x0000301C, 0x00001C3E, 0x00000FF2, 0x000003C6, 0x00000004, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00002004, 0x00003FFC, 0x00003FFC, 0x00002104, 0x00002104, 0x00002100, 0x000021C0, 0x000033F0, 0x00001E3C, 0x00000C0C, 0x00000004, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000C30, 0x00001E3C, 0x0000320C, 0x00002304, 0x00002104, 0x00002184, 0x0000308C, 0x00003CF8, 0x00000C70, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00003800, 0x00003000, 0x00002004, 0x00002004, 0x00003FFC, 0x00003FFC, 0x00002004, 0x00002004, 0x00003000, 0x00003800, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00002000, 0x00003FF0, 0x00003FF8, 0x0000200C, 0x00000004, 0x00000004, 0x00000004, 0x00000004, 0x0000200C, 0x00003FF8, 0x00003FF0, 0x00002000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00002000, 0x00003800, 0x00003F00, 0x000027C0, 0x000000F0, 0x0000003C, 0x0000003C, 0x000000F0, 0x000027C0, 0x00003F00, 0x00003800, 0x00002000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00002000, 0x00003800, 0x00003F00, 0x000027E0, 0x000000FC, 0x0000207C, 0x000039E0, 0x00003F80, 0x000027E0, 0x000000FC, 0x000000FC, 0x000027E0, 0x00003F00, 0x00003800, 0x00002000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00002004, 0x0000300C, 0x00003C3C, 0x00002E74, 0x000003C0, 0x000003C0, 0x00002E74, 0x00003C3C, 0x0000300C, 0x00002004, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00002000, 0x00003000, 0x00003C04, 0x00002F04, 0x000003FC, 0x000003FC, 0x00002F04, 0x00003C04, 0x00003000, 0x00002000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000004, 0x0000380C, 0x0000303C, 0x00002074, 0x000021C4, 0x00002384, 0x00002E04, 0x00003C0C, 0x0000301C, 0x00002000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000000, 0x00000000, 0x00007FFE, 0x00007FFE, 0x00004002, 0x00004002, 0x00000000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00006000, 0x00007800, 0x00001E00, 0x00000780, 0x000001E0, 0x00000078, 0x0000001E, 0x00000006, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000000, 0x00004002, 0x00004002, 0x00007FFE, 0x00007FFE, 0x00000000, 0x00000000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000400, 0x00000C00, 0x00001800, 0x00003000, 0x00003000, 0x00001800, 0x00000C00, 0x00000400, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000000, 0x00000000, 0x00001000, 0x00001800, 0x00000C00, 0x00000400, 0x00000000, 0x00000000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000118, 0x0000033C, 0x00000224, 0x00000264, 0x0000024C, 0x000003FC, 0x000001FC, 0x00000004, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00002000, 0x00003FFC, 0x00003FFC, 0x0000030C, 0x00000204, 0x00000204, 0x0000030C, 0x000001F8, 0x000000F0, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x000000F0, 0x000001F8, 0x0000030C, 0x00000204, 0x00000204, 0x00000204, 0x0000030C, 0x00000188, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x000000F0, 0x000001F8, 0x0000030C, 0x00000204, 0x00000204, 0x0000230C, 0x00003FFC, 0x00003FFC, 0x00000004, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x000000F0, 0x000001F8, 0x0000034C, 0x00000244, 0x00000244, 0x00000344, 0x000001CC, 0x000000C8, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000200, 0x00000204, 0x00001FFC, 0x00003FFC, 0x00002204, 0x00003200, 0x00001200, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000016, 0x000001FF, 0x000003E9, 0x00000229, 0x00000229, 0x000003E9, 0x000003CF, 0x00000206, 0x00000200, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00002004, 0x00003FFC, 0x00003FFC, 0x00000304, 0x00000200, 0x00000204, 0x000003FC, 0x000001FC, 0x00000004, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000000, 0x00000204, 0x000033FC, 0x000033FC, 0x00000004, 0x00000000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000002, 0x00000003, 0x00000201, 0x000033FF, 0x000033FE, 0x00000000, 0x00000000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00002004, 0x00003FFC, 0x00003FFC, 0x00000064, 0x000002E0, 0x000003B4, 0x0000031C, 0x0000020C, 0x00000004, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000000, 0x00002004, 0x00003FFC, 0x00003FFC, 0x00000004, 0x00000000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000204, 0x000003FC, 0x000003FC, 0x00000304, 0x00000200, 0x00000204, 0x000003FC, 0x000003FC, 0x00000204, 0x00000200, 0x00000204, 0x000003FC, 0x000001FC, 0x00000004, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000204, 0x000003FC, 0x000003FC, 0x00000304, 0x00000200, 0x00000204, 0x000003FC, 0x000001FC, 0x00000004, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x000000F0, 0x000001F8, 0x0000030C, 0x00000204, 0x00000204, 0x00000204, 0x0000030C, 0x000001F8, 0x000000F0, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000201, 0x000003FF, 0x000003FF, 0x0000030D, 0x00000204, 0x00000204, 0x0000030C, 0x000001F8, 0x000000F0, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x000000F0, 0x000001F8, 0x0000030C, 0x00000204, 0x00000204, 0x0000030D, 0x000003FF, 0x000003FF, 0x00000001, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000204, 0x000003FC, 0x000003FC, 0x00000304, 0x00000200, 0x00000300, 0x00000100, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000190, 0x000003DC, 0x0000024C, 0x00000244, 0x00000264, 0x00000324, 0x000003BC, 0x00000098, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000200, 0x00000200, 0x00001FF8, 0x00001FFC, 0x00000204, 0x0000020C, 0x00000008, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000200, 0x000003F8, 0x000003FC, 0x00000004, 0x00000004, 0x0000020C, 0x000003FC, 0x000003FC, 0x00000004, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000200, 0x00000300, 0x000003C0, 0x000002F0, 0x0000003C, 0x0000003C, 0x000002F0, 0x000003C0, 0x00000300, 0x00000200, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000200, 0x00000380, 0x000003E0, 0x0000027C, 0x0000027C, 0x000003E0, 0x000003E0, 0x0000027C, 0x0000027C, 0x000003E0, 0x00000380, 0x00000200, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000204, 0x0000030C, 0x0000039C, 0x000002F4, 0x00000060, 0x000002F4, 0x0000039C, 0x0000030C, 0x00000204, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000202, 0x00000303, 0x000003C3, 0x000002F3, 0x0000003E, 0x0000003C, 0x000002F0, 0x000003C0, 0x00000300, 0x00000200, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x0000008C, 0x0000039C, 0x00000334, 0x00000264, 0x000002CC, 0x0000039C, 0x00000310, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000000, 0x00000100, 0x00000100, 0x00003FFC, 0x00007EFE, 0x00004002, 0x00000000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000000, 0x00000000, 0x00007FFE, 0x00007FFE, 0x00000000, 0x00000000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000000, 0x00004002, 0x00007EFE, 0x00003FFC, 0x00000100, 0x00000100, 0x00000000, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF},
|
||||
{0x00000080, 0x00000180, 0x00000100, 0x00000100, 0x00000180, 0x00000080, 0x00000080, 0x00000180, 0x00000100, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF}
|
||||
};
|
|
@ -0,0 +1,104 @@
|
|||
/*
|
||||
* File: font.h
|
||||
* Author: JF3HZB / T.UEBO
|
||||
*
|
||||
* Created on 2018/03/21, 23:04
|
||||
*/
|
||||
|
||||
const long font20[95][23]={
|
||||
{0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000000, 0x00000000, 0x00000000, 0x0003FF9C, 0x0003FF9C, 0x00000000, 0x00000000, 0x00000000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000000, 0x00000000, 0x00000000, 0x0003C000, 0x0003C000, 0x00000000, 0x00000000, 0x0003C000, 0x0003C000, 0x00000000, 0x00000000, 0x00000000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x000001B8, 0x000033F8, 0x00003FE0, 0x0000FF80, 0x0003F980, 0x0003B1B8, 0x000033F8, 0x00003FE0, 0x0000FF80, 0x0003F980, 0x0003B000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0000F9E0, 0x0001FC70, 0x00039C38, 0x00030E18, 0x000FFFFE, 0x000FFFFE, 0x00030E18, 0x00038738, 0x0001C7F0, 0x0000F3E0, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0001F038, 0x0003F870, 0x000718E0, 0x000619C0, 0x00063B80, 0x0007F700, 0x0003EE00, 0x00001C00, 0x000039F0, 0x000073F8, 0x0000E718, 0x0001C618, 0x00038638, 0x000307F0, 0x000003E0, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x000003F8, 0x000007FC, 0x0001EE1C, 0x0003FC0C, 0x00073C0C, 0x00061E0C, 0x0006379C, 0x000663F8, 0x0003C0F8, 0x0001843C, 0x000007FC, 0x000007EC, 0x0000079C, 0x00000418, 0x00000410, 0x000FEFFF, 0x00000000, 0x00000000, 0x00000000, 0x0003C000, 0x0003C000, 0x00000000, 0x000FFFFF},
|
||||
{0x00000000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000000, 0x00000000, 0x00007FE0, 0x0001FFF8, 0x0003C03C, 0x0007000E, 0x00060006, 0x00040002, 0x00000000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000000, 0x00040002, 0x00060006, 0x0007000E, 0x0003C03C, 0x0001FFF8, 0x00007FE0, 0x00000000, 0x00000000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00006180, 0x00007380, 0x00003F00, 0x00001E00, 0x0001FFE0, 0x0001FFE0, 0x00001E00, 0x00003F00, 0x00007380, 0x00006180, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000C00, 0x00000C00, 0x00000C00, 0x00000C00, 0x0000FFC0, 0x0000FFC0, 0x00000C00, 0x00000C00, 0x00000C00, 0x00000C00, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x00000036, 0x0000003C, 0x00000038, 0x00000000, 0x00000000, 0x00000000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000000, 0x00000C00, 0x00000C00, 0x00000C00, 0x00000C00, 0x00000C00, 0x00000C00, 0x00000C00, 0x00000C00, 0x00000000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000000, 0x00000000, 0x0000001C, 0x0000001C, 0x0000001C, 0x00000000, 0x00000000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000006, 0x0000001E, 0x0000007E, 0x000001F0, 0x000007C0, 0x00001F00, 0x00007C00, 0x0001F000, 0x0007C000, 0x00070000, 0x00060000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00007FE0, 0x0000FFF0, 0x0001C038, 0x0003801C, 0x0003000C, 0x0003000C, 0x0003801C, 0x0001C038, 0x0000FFF0, 0x00007FE0, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000000, 0x0000800C, 0x0000800C, 0x0001800C, 0x0003FFFC, 0x0003FFFC, 0x0000000C, 0x0000000C, 0x0000000C, 0x00000000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0000F03C, 0x0001C07C, 0x000380FC, 0x000301CC, 0x0003038C, 0x0003070C, 0x00038E0C, 0x0003FC1C, 0x0001F87C, 0x0000F078, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0000E0F0, 0x0001C038, 0x0003801C, 0x00030C0C, 0x00030C0C, 0x00030C0C, 0x00031E1C, 0x00039F3C, 0x0001FBF8, 0x0000F1F0, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x000001C0, 0x000007C0, 0x00000EC0, 0x00003CC0, 0x000070C0, 0x0001E0C0, 0x0003C0CC, 0x0003FFFC, 0x0003FFFC, 0x000000CC, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000070, 0x0003FC38, 0x0003FC1C, 0x00031C1C, 0x0003180C, 0x0003180C, 0x00031C0C, 0x00031E1C, 0x00030FF8, 0x000307F0, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00007FF0, 0x0000FFF8, 0x0001C61C, 0x00038C0C, 0x00030C0C, 0x00030C0C, 0x00030C0C, 0x00038E1C, 0x000187F8, 0x0000C3F0, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0001E000, 0x0003C000, 0x00038000, 0x00030000, 0x000300FC, 0x000307FC, 0x00031F80, 0x00033C00, 0x0003F800, 0x0003E000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0000F1F0, 0x0001FBF8, 0x00019F1C, 0x00030E0C, 0x00030C0C, 0x00030C0C, 0x00030E0C, 0x00019F1C, 0x0001FBF8, 0x0000F1F0, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0000FC30, 0x0001FE18, 0x0003871C, 0x0003030C, 0x0003030C, 0x0003030C, 0x0003030C, 0x0003861C, 0x0001FFF8, 0x0000FFF0, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00007070, 0x00007070, 0x00007070, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x0000706C, 0x00007078, 0x00007070, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000E00, 0x00001F00, 0x00003B80, 0x000071C0, 0x0000E0E0, 0x0001C070, 0x00038038, 0x00030018, 0x00020008, 0x00000000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000000, 0x00001980, 0x00001980, 0x00001980, 0x00001980, 0x00001980, 0x00001980, 0x00001980, 0x00001980, 0x00000000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000000, 0x00020008, 0x00030018, 0x00038038, 0x0001C070, 0x0000E0E0, 0x000071C0, 0x00003B80, 0x00001F00, 0x00000E00, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00007000, 0x0000E000, 0x0001C000, 0x00038000, 0x000300DC, 0x000301DC, 0x000303DC, 0x00038700, 0x0001CE00, 0x0000FC00, 0x00007800, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00001FC0, 0x00003FE0, 0x00007078, 0x0000E73C, 0x0001CF9C, 0x00039FCC, 0x000338CC, 0x000330CC, 0x0003318C, 0x00033F8C, 0x00033FCC, 0x0003B0CC, 0x0001C1D8, 0x0000E398, 0x00007F30, 0x00003E00, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0000000C, 0x0000001C, 0x000000FC, 0x000007FC, 0x00001FCC, 0x0000FD80, 0x0003F180, 0x0003C180, 0x0003E180, 0x0000F980, 0x00003F8C, 0x000007CC, 0x000001FC, 0x0000003C, 0x0000000C, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0003000C, 0x0003000C, 0x0003FFFC, 0x0003FFFC, 0x00030C0C, 0x00030C0C, 0x00030C0C, 0x00030C0C, 0x00030C0C, 0x00030C0C, 0x00039E0C, 0x0001FF1C, 0x0000F3F8, 0x000001F0, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00003FC0, 0x00007FE0, 0x0000E070, 0x0001C038, 0x0003801C, 0x0003000C, 0x0003000C, 0x0003000C, 0x0003000C, 0x0003000C, 0x0003800C, 0x0001C01C, 0x0000E038, 0x00006070, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0003000C, 0x0003000C, 0x0003FFFC, 0x0003FFFC, 0x0003000C, 0x0003000C, 0x0003000C, 0x0003000C, 0x0003000C, 0x0003801C, 0x0001C038, 0x0000F0F0, 0x00007FE0, 0x00001F80, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0003000C, 0x0003000C, 0x0003FFFC, 0x0003FFFC, 0x00031E0C, 0x00030C0C, 0x00030C0C, 0x00030C0C, 0x00031E0C, 0x00033F0C, 0x0003000C, 0x0003801C, 0x0001C038, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0003000C, 0x0003000C, 0x0003FFFC, 0x0003FFFC, 0x00031E0C, 0x00030C0C, 0x00030C00, 0x00030C00, 0x00031E00, 0x00033F00, 0x00030000, 0x00038000, 0x0001C000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00007FE0, 0x0000FFF0, 0x0001E078, 0x0003803C, 0x0003001C, 0x0003000C, 0x0003000C, 0x0003030C, 0x0003030C, 0x0003030C, 0x0003031C, 0x000383FC, 0x0001C3FC, 0x0000E3F8, 0x00000300, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0003000C, 0x0003FFFC, 0x0003FFFC, 0x0003060C, 0x00000600, 0x00000600, 0x00000600, 0x00000600, 0x00000600, 0x00000600, 0x0003060C, 0x0003FFFC, 0x0003FFFC, 0x0003000C, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000000, 0x0003000C, 0x0003000C, 0x0003FFFC, 0x0003FFFC, 0x0003000C, 0x0003000C, 0x00000000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000078, 0x0000001C, 0x0003000C, 0x0003000C, 0x0003000C, 0x0003001C, 0x0003FFF8, 0x0003FFF0, 0x00030000, 0x00030000, 0x00030000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0003000C, 0x0003000C, 0x0003FFFC, 0x0003FFFC, 0x0003070C, 0x00030E0C, 0x00001E00, 0x00003F00, 0x00037380, 0x0003E1CC, 0x0003C0EC, 0x0003807C, 0x0003003C, 0x0003001C, 0x0000000C, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0003000C, 0x0003000C, 0x0003FFFC, 0x0003FFFC, 0x0003000C, 0x0003000C, 0x0000000C, 0x0000000C, 0x0000000C, 0x0000000C, 0x0000001C, 0x00000038, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0003000C, 0x0003FFFC, 0x0003FFFC, 0x0000F00C, 0x0000780C, 0x00001E00, 0x00000F00, 0x00000380, 0x000001E0, 0x000001E0, 0x00000380, 0x00000F00, 0x00001E00, 0x0000780C, 0x0000F00C, 0x0003FFFC, 0x0003FFFC, 0x0003000C, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0003000C, 0x0003FFFC, 0x0003FFFC, 0x0003E00C, 0x0000F00C, 0x00007C00, 0x00001E00, 0x00000F80, 0x000003C0, 0x000300F0, 0x0003007C, 0x0003FFFC, 0x0003FFFC, 0x0003000C, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00003FC0, 0x00007FE0, 0x0000E070, 0x0001C038, 0x0003801C, 0x0003000C, 0x0003000C, 0x0003000C, 0x0003000C, 0x0003000C, 0x0003801C, 0x0001C038, 0x0000E070, 0x00007FE0, 0x00003FC0, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0003000C, 0x0003000C, 0x0003FFFC, 0x0003FFFC, 0x0003030C, 0x0003030C, 0x00030300, 0x00030300, 0x00030300, 0x00038700, 0x0001CE00, 0x0000FC00, 0x00007800, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00003FC0, 0x00007FE0, 0x0000E070, 0x0001C038, 0x0003807C, 0x0003006C, 0x000300CC, 0x000300CC, 0x000300CC, 0x0003006C, 0x0003807C, 0x0001C03E, 0x0000E0FE, 0x00007FE6, 0x00003F8E, 0x0000000C, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0003000C, 0x0003000C, 0x0003FFFC, 0x0003FFFC, 0x00030C0C, 0x00030C0C, 0x00030E0C, 0x00030F00, 0x00030F80, 0x00030DE4, 0x00039CFC, 0x0001F83C, 0x0000F01C, 0x0000000C, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x000071E0, 0x0001F870, 0x00039838, 0x00030C1C, 0x00030C0C, 0x00030C0C, 0x0003060C, 0x0003060C, 0x0003831C, 0x0001C398, 0x0000E1F0, 0x000070E0, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0003C000, 0x00038000, 0x00030000, 0x0003000C, 0x0003000C, 0x0003FFFC, 0x0003FFFC, 0x0003000C, 0x0003000C, 0x00030000, 0x00038000, 0x0003C000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00030000, 0x0003FFE0, 0x0003FFF0, 0x00030038, 0x0000001C, 0x0000000C, 0x0000000C, 0x0000000C, 0x0000001C, 0x00030038, 0x0003FFF0, 0x0003FFE0, 0x00030000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00030000, 0x0003E000, 0x0003F800, 0x00033E00, 0x00000F80, 0x000003E0, 0x000000F8, 0x0000003C, 0x000000F8, 0x000003E0, 0x00000F80, 0x00033E00, 0x0003F800, 0x0003E000, 0x00030000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00030000, 0x0003E000, 0x0003FC00, 0x00033F00, 0x00030FE0, 0x000001FC, 0x0000007C, 0x000003E0, 0x00031F80, 0x0003FC00, 0x0003FC00, 0x00031F80, 0x000003E0, 0x0000007C, 0x000001FC, 0x00030FE0, 0x00033F00, 0x0003FC00, 0x0003E000, 0x00030000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0003801C, 0x0003C03C, 0x0003E07C, 0x000370EC, 0x000039C0, 0x00001F80, 0x00000F00, 0x00000F00, 0x00001F80, 0x000039C0, 0x000370EC, 0x0003E07C, 0x0003C03C, 0x0003801C, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00030000, 0x0003C000, 0x0003E000, 0x00037000, 0x0000380C, 0x00001C0C, 0x00000FFC, 0x00000FFC, 0x00001C0C, 0x0000380C, 0x00037000, 0x0003E000, 0x0003C000, 0x00030000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0000003C, 0x0003E07C, 0x000380EC, 0x000301CC, 0x0003038C, 0x0003070C, 0x00030E0C, 0x00031C0C, 0x0003380C, 0x0003701C, 0x0003E07C, 0x0003C000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000000, 0x00000000, 0x00000000, 0x0007FFFE, 0x0007FFFE, 0x00060006, 0x00060006, 0x00060006, 0x00000000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00060000, 0x00078000, 0x0007E000, 0x0000F800, 0x00003E00, 0x00000F80, 0x000003E0, 0x000000F8, 0x0000003E, 0x0000000E, 0x00000006, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000000, 0x00060006, 0x00060006, 0x00060006, 0x0007FFFE, 0x0007FFFE, 0x00000000, 0x00000000, 0x00000000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00003000, 0x00007000, 0x0000E000, 0x0001C000, 0x00038000, 0x00038000, 0x0001C000, 0x0000E000, 0x00007000, 0x00003000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000006, 0x00000006, 0x00000006, 0x00000006, 0x00000006, 0x00000006, 0x00000006, 0x00000006, 0x00000006, 0x00000006, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000000, 0x00000000, 0x00018000, 0x0001C000, 0x0000E000, 0x00007000, 0x00003000, 0x00000000, 0x00000000, 0x00000000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000630, 0x00000C78, 0x00001CFC, 0x000018CC, 0x0000198C, 0x0000198C, 0x00001D9C, 0x00000FFC, 0x000007F8, 0x0000003C, 0x0000000C, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0003000C, 0x0003FFFC, 0x0003FFFC, 0x00001C1C, 0x0000180C, 0x0000180C, 0x0000180C, 0x00001C1C, 0x00000E38, 0x000007F0, 0x000003E0, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x000003E0, 0x000007F0, 0x00000E38, 0x00001C1C, 0x0000180C, 0x0000180C, 0x0000180C, 0x0000180C, 0x0000180C, 0x00000C18, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x000003E0, 0x000007F0, 0x00000E38, 0x00001C1C, 0x0000180C, 0x0000180C, 0x0000180C, 0x00031C1C, 0x0003FFFC, 0x0003FFFC, 0x0000001C, 0x00000004, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x000007F0, 0x00000FF8, 0x00001D9C, 0x0000198C, 0x0000198C, 0x0000198C, 0x0000198C, 0x0000198C, 0x00000D8C, 0x00000798, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00001800, 0x0000180C, 0x0000180C, 0x0001FFFC, 0x0003FFFC, 0x0003180C, 0x0003180C, 0x00039800, 0x00019800, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x000000FC, 0x00001FFE, 0x00003FB7, 0x00007363, 0x00006363, 0x00006363, 0x00006363, 0x00006763, 0x00007E77, 0x00007C3E, 0x0000601C, 0x00006000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0003000C, 0x0003FFFC, 0x0001FFFC, 0x00000C0C, 0x00001800, 0x00001800, 0x00001800, 0x00001C0C, 0x00000FFC, 0x000007FC, 0x0000000C, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000000, 0x0000000C, 0x0003980C, 0x00039FFC, 0x00039FFC, 0x0000000C, 0x0000000C, 0x00000000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000000, 0x00000006, 0x00000007, 0x00001803, 0x00039803, 0x00039FFF, 0x00039FFE, 0x00000000, 0x00000000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0003000C, 0x0003FFFC, 0x0003FFFC, 0x000000EC, 0x000001C0, 0x00001BC0, 0x00001FE0, 0x00001E7C, 0x00001C3C, 0x0000181C, 0x0000000C, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000000, 0x0000000C, 0x0003000C, 0x0003FFFC, 0x0003FFFC, 0x0000000C, 0x0000000C, 0x00000000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0000180C, 0x00001FFC, 0x00001FFC, 0x00001C0C, 0x00001800, 0x00001800, 0x0000180C, 0x00001C0C, 0x00001FFC, 0x00001FFC, 0x00001C0C, 0x0000180C, 0x00001800, 0x00001800, 0x00001C0C, 0x00000FFC, 0x000007FC, 0x0000000C, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0000180C, 0x00001FFC, 0x00001FFC, 0x00001C0C, 0x00001800, 0x00001800, 0x00001C00, 0x00001C0C, 0x00000FFC, 0x000007FC, 0x0000000C, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x000003E0, 0x000007F0, 0x00000E38, 0x00001C1C, 0x0000180C, 0x0000180C, 0x0000180C, 0x0000180C, 0x00001C1C, 0x00000E38, 0x000007F0, 0x000003E0, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00001803, 0x00001FFF, 0x00001FFF, 0x00001C33, 0x00001830, 0x00001818, 0x00001818, 0x00001818, 0x00001C30, 0x00000FF0, 0x000007E0, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x000007E0, 0x00000FF0, 0x00001C30, 0x00001818, 0x00001818, 0x00001818, 0x00001818, 0x00001C30, 0x00001C33, 0x00001FFF, 0x00000FFF, 0x00000003, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0000180C, 0x00001FFC, 0x00000FFC, 0x00001E0C, 0x00001800, 0x00001800, 0x00001800, 0x00000C00, 0x00000600, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000620, 0x00000F38, 0x00001F9C, 0x0000198C, 0x0000198C, 0x000019CC, 0x000018CC, 0x00001CFC, 0x00000E78, 0x00000230, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00001800, 0x00001800, 0x00001800, 0x0000FFF8, 0x0000FFFC, 0x0000180C, 0x0000180C, 0x0000180C, 0x00000038, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00001800, 0x00001FF0, 0x00001FF8, 0x0000001C, 0x0000000C, 0x0000000C, 0x0000000C, 0x0000001C, 0x00001838, 0x00001FFC, 0x00001FFC, 0x0000000C, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00001800, 0x00001E00, 0x00001F80, 0x000019C0, 0x000000F0, 0x0000003C, 0x0000003C, 0x000000F0, 0x000019C0, 0x00001F80, 0x00001E00, 0x00001800, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00001800, 0x00001E00, 0x00001F80, 0x000019E0, 0x0000007C, 0x0000003C, 0x000018F0, 0x00001FC0, 0x00001FC0, 0x000018F0, 0x0000003C, 0x0000007C, 0x000019E0, 0x00001F80, 0x00001E00, 0x00001800, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x0000180C, 0x00001C1C, 0x00001E3C, 0x00001B6C, 0x000001C0, 0x00000080, 0x000001C0, 0x00001B6C, 0x00001E3C, 0x00001C1C, 0x0000180C, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00001806, 0x00001E03, 0x00001F03, 0x00001B87, 0x000019CE, 0x000000FC, 0x00000078, 0x000000F0, 0x000019E0, 0x00001B80, 0x00001F00, 0x00001E00, 0x00001800, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000C1C, 0x0000183C, 0x0000187C, 0x000018EC, 0x000019CC, 0x00001B8C, 0x00001F0C, 0x00001E0C, 0x00001C18, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000000, 0x00000400, 0x00000400, 0x00000E00, 0x0003FFFC, 0x0007FBFE, 0x00060006, 0x00040002, 0x00000000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000000, 0x00000000, 0x00000000, 0x0007FFFE, 0x0007FFFE, 0x00000000, 0x00000000, 0x00000000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000000, 0x00040002, 0x00060006, 0x0007FBFE, 0x0003FFFC, 0x00000E00, 0x00000400, 0x00000400, 0x00000000, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF},
|
||||
{0x00000300, 0x00000600, 0x00000E00, 0x00000C00, 0x00000C00, 0x00000600, 0x00000700, 0x00000300, 0x00000300, 0x00000600, 0x00000C00, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF, 0x000FFFFF}
|
||||
};
|
|
@ -0,0 +1,364 @@
|
|||
/*
|
||||
* File: graph.cpp
|
||||
* Author: JF3HZB / T.UEBO
|
||||
*
|
||||
* Created on 2017/12/08, 00:21
|
||||
*/
|
||||
|
||||
|
||||
#include <arduino.h>
|
||||
#include "display.h"
|
||||
#include "graph.h"
|
||||
#include "font.h"
|
||||
|
||||
extern uint8_t R_GRAM[Nx][Ny];
|
||||
extern uint8_t B_GRAM[Nx][Ny];
|
||||
extern uint8_t G_GRAM[Nx][Ny];
|
||||
|
||||
|
||||
// Claer GRAM ------------------------------------------------------------------
|
||||
void GRAM_clr(void)
|
||||
{
|
||||
boxfill(0,0,Nx-1,Ny-1,0);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
void boxfill(int x_min, int y_min, int x_max, int y_max, unsigned long color)
|
||||
{
|
||||
int k, j;
|
||||
union {
|
||||
unsigned long lw[1];
|
||||
unsigned char byte[4];
|
||||
} cl_data;
|
||||
cl_data.lw[0]=color;
|
||||
|
||||
if(x_min<0) x_min=0;
|
||||
if(y_min<0) y_min=0;
|
||||
if(x_max>=Nx) x_max=Nx-1;
|
||||
if(y_max>=Ny) y_max=Ny-1;
|
||||
|
||||
for(k=x_min;k<=x_max; k++){
|
||||
for(j=y_min; j<=y_max; j++){
|
||||
R_GRAM[k][j]=cl_data.byte[2];
|
||||
G_GRAM[k][j]=cl_data.byte[1];
|
||||
B_GRAM[k][j]=cl_data.byte[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
void line(int xs, int ys,int xe, int ye, unsigned long color)
|
||||
{
|
||||
union {
|
||||
unsigned long lw[1];
|
||||
unsigned char byte[4];
|
||||
} cl_data;
|
||||
cl_data.lw[0]=color;
|
||||
|
||||
|
||||
int dx = (xe > xs ? xe - xs : xs - xe);
|
||||
int xstep = xe > xs ? 1 : -1;
|
||||
int dy = (ye > ys ? ye - ys : ys - ye);
|
||||
int ystep = ye > ys ? 1 : -1;
|
||||
int j;
|
||||
|
||||
if(dx==0 && dy==0){
|
||||
R_GRAM[xs][ys]=cl_data.byte[2];
|
||||
G_GRAM[xs][ys]=cl_data.byte[1];
|
||||
B_GRAM[xs][ys]=cl_data.byte[0];
|
||||
|
||||
} else if(dx==0){
|
||||
if(ystep>0) for(j=ys; j<=ye; j++){
|
||||
R_GRAM[xs][j]=cl_data.byte[2];
|
||||
G_GRAM[xs][j]=cl_data.byte[1];
|
||||
B_GRAM[xs][j]=cl_data.byte[0];
|
||||
}
|
||||
if(ystep<0) for(j=ye; j<=ys; j++){
|
||||
R_GRAM[xs][j]=cl_data.byte[2];
|
||||
G_GRAM[xs][j]=cl_data.byte[1];
|
||||
B_GRAM[xs][j]=cl_data.byte[0];
|
||||
}
|
||||
} else if(dy==0){
|
||||
if(xstep>0) for(j=xs; j<=xe; j++){
|
||||
R_GRAM[j][ys]=cl_data.byte[2];
|
||||
G_GRAM[j][ys]=cl_data.byte[1];
|
||||
B_GRAM[j][ys]=cl_data.byte[0];
|
||||
}
|
||||
if(xstep<0) for(j=xe; j<=xs; j++){
|
||||
R_GRAM[j][ys]=cl_data.byte[2];
|
||||
G_GRAM[j][ys]=cl_data.byte[1];
|
||||
B_GRAM[j][ys]=cl_data.byte[0];
|
||||
}
|
||||
} else {
|
||||
int xx=xs, yy=ys;
|
||||
if(dx>dy){
|
||||
int t = - (dx >> 1);
|
||||
while (1)
|
||||
{
|
||||
R_GRAM[xx][yy]=cl_data.byte[2];
|
||||
G_GRAM[xx][yy]=cl_data.byte[1];
|
||||
B_GRAM[xx][yy]=cl_data.byte[0];
|
||||
if (xx == xe) break;
|
||||
xx += xstep;
|
||||
t += dy;
|
||||
if (t >= 0){ yy += ystep; t-= dx;}
|
||||
}
|
||||
} else {
|
||||
int t = - (dy >> 1);
|
||||
while (1)
|
||||
{
|
||||
R_GRAM[xx][yy]=cl_data.byte[2];
|
||||
G_GRAM[xx][yy]=cl_data.byte[1];
|
||||
B_GRAM[xx][yy]=cl_data.byte[0];
|
||||
if (yy == ye) break;
|
||||
yy += ystep;
|
||||
t += dx;
|
||||
if (t >= 0){ xx += xstep; t-= dy;}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
void box(int x_min, int y_min, int x_max, int y_max, unsigned long color)
|
||||
{
|
||||
int k,j;
|
||||
|
||||
if(x_min<0) x_min=0;
|
||||
if(y_min<0) y_min=0;
|
||||
if(x_max>=Nx) x_max=Nx-1;
|
||||
if(y_max>=Ny) y_max=Ny-1;
|
||||
|
||||
line(x_min, y_min, x_max, y_min, color);
|
||||
line(x_min, y_max, x_max, y_max, color);
|
||||
line(x_min, y_min, x_min, y_max, color);
|
||||
line(x_max, y_min, x_max, y_max, color);
|
||||
|
||||
}
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Draw String
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
//------font 5x7----------------------------------------
|
||||
void disp_str8( char *s, int x, int y, unsigned long color)
|
||||
{
|
||||
unsigned char c;
|
||||
int k,N;
|
||||
|
||||
N=x;
|
||||
for(k=0; k<128; k++)
|
||||
{
|
||||
c=*(s+k);
|
||||
if(c==0) break;
|
||||
N=disp_chr8(c, N, y, color);
|
||||
N+=1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//------font12--------------------------------------------
|
||||
void disp_str12( char *s, int x, int y, unsigned long color)
|
||||
{
|
||||
unsigned char c;
|
||||
int k,N;
|
||||
|
||||
N=x;
|
||||
for(k=0; k<128; k++)
|
||||
{
|
||||
c=*(s+k);
|
||||
if(c==0) break;
|
||||
N=disp_chr12(c,N,y,color);
|
||||
N+=1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//------font16--------------------------------------------
|
||||
void disp_str16( char *s, int x, int y, unsigned long color)
|
||||
{
|
||||
unsigned char c;
|
||||
int k,N;
|
||||
|
||||
N=x;
|
||||
for(k=0; k<128; k++)
|
||||
{
|
||||
c=*(s+k);
|
||||
if(c==0) break;
|
||||
N=disp_chr16(c,N,y,color);
|
||||
N+=1;
|
||||
}
|
||||
}
|
||||
|
||||
//------font20--------------------------------------------
|
||||
void disp_str20( char *s, int x, int y, unsigned long color)
|
||||
{
|
||||
unsigned char c;
|
||||
int k,N;
|
||||
|
||||
N=x;
|
||||
for(k=0; k<128; k++)
|
||||
{
|
||||
c=*(s+k);
|
||||
if(c==0) break;
|
||||
N=disp_chr20(c,N,y,color);
|
||||
N+=1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Draw a character
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//------font 5x7 -------------------------------------
|
||||
int disp_chr8(char c, int x, int y, unsigned long color)
|
||||
{
|
||||
union {
|
||||
unsigned long lw[1];
|
||||
unsigned char byte[4];
|
||||
} cl_data;
|
||||
cl_data.lw[0]=color;
|
||||
|
||||
int k, j;
|
||||
unsigned char f8;
|
||||
|
||||
if(c=='\\') c=' ';
|
||||
|
||||
for(k=0; k<5; k++){
|
||||
f8=(unsigned char)bitrev8(font[c-0x20][k]);
|
||||
if(x>=0){
|
||||
for(j=0; j<8; j++){
|
||||
if( (f8&0x01)==0x01 ){
|
||||
R_GRAM[x][y+j]=cl_data.byte[2];
|
||||
G_GRAM[x][y+j]=cl_data.byte[1];
|
||||
B_GRAM[x][y+j]=cl_data.byte[0];
|
||||
}
|
||||
f8>>=1;
|
||||
}
|
||||
}
|
||||
x++;
|
||||
}
|
||||
return(x);
|
||||
}
|
||||
//--------- bit reverse(8bit)-----------------
|
||||
unsigned char bitrev8(unsigned char x)
|
||||
{
|
||||
x = ((x & 0xaa) >> 1) | ((x & 0x55) << 1);
|
||||
x = ((x & 0xcc) >> 2) | ((x & 0x33) << 2);
|
||||
x = (x >> 4) | (x << 4);
|
||||
return(x);
|
||||
}
|
||||
|
||||
|
||||
//------font12-----------------------------------------
|
||||
int disp_chr12(char c, int x, int y, unsigned long color)
|
||||
{
|
||||
union {
|
||||
unsigned long lw[1];
|
||||
unsigned char byte[4];
|
||||
} cl_data;
|
||||
cl_data.lw[0]=color;
|
||||
|
||||
int k, j, yj;
|
||||
unsigned short int f12;
|
||||
|
||||
if(c=='\\') c=' ';
|
||||
|
||||
for(k=0; k<24; k++){
|
||||
f12=(unsigned short int)font12[c-0x20][k];
|
||||
if(f12==0x0fff) break;
|
||||
if(x>=0){
|
||||
for(j=0; j<12; j++){
|
||||
yj=y+j;
|
||||
if( (f12&0x0001)==0x0001){
|
||||
if( x>=0 && x<Nx && yj>=0 && yj<Ny ){
|
||||
R_GRAM[x][yj]=cl_data.byte[2];
|
||||
G_GRAM[x][yj]=cl_data.byte[1];
|
||||
B_GRAM[x][yj]=cl_data.byte[0];
|
||||
}
|
||||
}
|
||||
f12>>=1;
|
||||
}
|
||||
}
|
||||
x++;
|
||||
}
|
||||
return(x+1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//------font16-----------------------------------------
|
||||
int disp_chr16(char c, int x, int y, unsigned long color)
|
||||
{
|
||||
union {
|
||||
unsigned long lw[1];
|
||||
unsigned char byte[4];
|
||||
} cl_data;
|
||||
cl_data.lw[0]=color;
|
||||
|
||||
int k, j, yj;
|
||||
unsigned short int f16;
|
||||
|
||||
if(c=='\\') c=' ';
|
||||
|
||||
for(k=0; k<24; k++){
|
||||
f16=(unsigned short int)font16[c-0x20][k];
|
||||
if(f16==0xffff) break;
|
||||
if(x>=0){
|
||||
for(j=0; j<16; j++){
|
||||
yj=y+j;
|
||||
if( (f16&0x0001)==0x0001){
|
||||
if( x>=0 && x<Nx && yj>=0 && yj<Ny ){
|
||||
R_GRAM[x][yj]=cl_data.byte[2];
|
||||
G_GRAM[x][yj]=cl_data.byte[1];
|
||||
B_GRAM[x][yj]=cl_data.byte[0];
|
||||
}
|
||||
}
|
||||
f16>>=1;
|
||||
}
|
||||
}
|
||||
x++;
|
||||
}
|
||||
return(x+1);
|
||||
}
|
||||
|
||||
//------font20-----------------------------------------
|
||||
int disp_chr20(char c, int x, int y, unsigned long color)
|
||||
{
|
||||
union {
|
||||
unsigned long lw[1];
|
||||
unsigned char byte[4];
|
||||
} cl_data;
|
||||
cl_data.lw[0]=color;
|
||||
|
||||
int k, j, yj;
|
||||
unsigned long f20;
|
||||
|
||||
if(c=='\\') c=' ';
|
||||
|
||||
for(k=0; k<24; k++){
|
||||
f20=(unsigned long)font20[c-0x20][k];
|
||||
if(f20==0xfffff) break;
|
||||
if(x>=0){
|
||||
for(j=0; j<20; j++){
|
||||
yj=y+j;
|
||||
if( (f20&0x00001)==0x00001){
|
||||
if( x>=0 && x<Nx && yj>=0 && yj<Ny ){
|
||||
R_GRAM[x][yj]=cl_data.byte[2];
|
||||
G_GRAM[x][yj]=cl_data.byte[1];
|
||||
B_GRAM[x][yj]=cl_data.byte[0];
|
||||
}
|
||||
}
|
||||
f20>>=1;
|
||||
}
|
||||
}
|
||||
x++;
|
||||
}
|
||||
return(x+1);
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
* File: graph.h
|
||||
* Author: JF3HZB / T.UEBO
|
||||
*
|
||||
* Created on 2017/12/08, 00:21
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _graph_
|
||||
#define _graph_
|
||||
|
||||
void GRAM_clr(void);
|
||||
void line(int,int,int,int, unsigned long);
|
||||
void boxfill(int, int, int, int, unsigned long);
|
||||
void box(int, int, int, int, unsigned long);
|
||||
|
||||
void disp_str8(char*, int, int, unsigned long);
|
||||
void disp_str12(char*, int, int, unsigned long);
|
||||
void disp_str16(char*, int, int, unsigned long);
|
||||
void disp_str20(char*, int, int, unsigned long);
|
||||
|
||||
int disp_chr8(char, int, int, unsigned long);
|
||||
unsigned char bitrev8(unsigned char );
|
||||
int disp_chr12(char, int, int, unsigned long);
|
||||
int disp_chr16(char, int, int, unsigned long);
|
||||
int disp_chr20(char, int, int, unsigned long);
|
||||
|
||||
|
||||
#endif
|
|
@ -0,0 +1,279 @@
|
|||
/*
|
||||
* File: si5351.cpp
|
||||
* Author: JF3HZB / T.UEBO
|
||||
*
|
||||
* Created on 2019/02/11, 23:07
|
||||
*/
|
||||
|
||||
|
||||
#include <arduino.h>
|
||||
|
||||
#define SDA 21
|
||||
#define SCL 22
|
||||
#define fxtal (25000000)
|
||||
|
||||
|
||||
|
||||
|
||||
volatile uint32_t oMf=0;
|
||||
volatile uint32_t oMc=0;
|
||||
|
||||
void wr_I2C(unsigned char d){
|
||||
int k;
|
||||
for(k=0;k<8;k++){
|
||||
if(d & 0x80) digitalWrite(SDA, HIGH); else digitalWrite(SDA, LOW);
|
||||
delayMicroseconds(1);
|
||||
digitalWrite(SCL, HIGH);
|
||||
delayMicroseconds(1);
|
||||
digitalWrite(SCL, LOW);
|
||||
delayMicroseconds(1);
|
||||
digitalWrite(SDA, LOW);
|
||||
d <<= 1;
|
||||
}
|
||||
digitalWrite(SCL, HIGH);
|
||||
delayMicroseconds(1);
|
||||
digitalWrite(SCL, LOW);
|
||||
}
|
||||
|
||||
|
||||
void cmd_si5351(unsigned char reg_No, unsigned char d){
|
||||
digitalWrite(SDA, LOW); // start condition
|
||||
delayMicroseconds(1);
|
||||
digitalWrite(SCL, LOW); //
|
||||
delayMicroseconds(1);
|
||||
|
||||
wr_I2C(0xC0);
|
||||
wr_I2C(reg_No);
|
||||
wr_I2C(d);
|
||||
|
||||
delayMicroseconds(1);
|
||||
digitalWrite(SCL, HIGH); // stop condition
|
||||
delayMicroseconds(1);
|
||||
digitalWrite(SDA, HIGH); //
|
||||
delayMicroseconds(10);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void set_car_freq(unsigned long freq, unsigned char EN, unsigned char RST){
|
||||
// freq [Hz]
|
||||
//
|
||||
// fvco= fxtal*(a+b/c) ( a:15 -- 90, b:0 -- 1048575, c:1 -- 1048575 )
|
||||
// freq= fvco /(a+b/c) ( a:4, 6--1800, b:0 -- 1048575, c:1 -- 1048575 )
|
||||
//
|
||||
// P1= 128*a + floor(128*b/c) - 512
|
||||
// P2= 128*b - c*floor(128*b/c)
|
||||
// P3= c
|
||||
//
|
||||
|
||||
int k;
|
||||
uint32_t M;
|
||||
uint32_t R;
|
||||
|
||||
if(EN==1){
|
||||
cmd_si5351(16,0x4F);
|
||||
cmd_si5351(17,0x4F);
|
||||
|
||||
if(freq<1500) freq=1500; else if(freq>280000000) freq=280000000;
|
||||
|
||||
if( freq> 150000000){M=4; R=0;}
|
||||
else if(freq>=63000000){M=6; R=0;}
|
||||
else if(freq>=27500000){M=14; R=0;}
|
||||
else if(freq>=13000000){M=30; R=0;}
|
||||
else if(freq>= 6500000){M=62; R=0;}
|
||||
else if(freq>= 3000000){M=126; R=0;}
|
||||
else if(freq>= 1500000){M=280; R=0;}
|
||||
else if(freq>= 700000){M=600; R=0;}
|
||||
else if(freq>= 330000){M=1280; R=0;}
|
||||
else if(freq>= 150000){M=1300; R=1;}
|
||||
else if(freq>= 67000){M=1500; R=2;}
|
||||
else if(freq>= 30300){M=1600; R=3;}
|
||||
else if(freq>= 14000){M=1800; R=4;}
|
||||
else if(freq>= 7000){M=1800; R=5;}
|
||||
else if(freq>= 3500){M=1800; R=6;}
|
||||
else{M=1800; R=7;}
|
||||
|
||||
freq*=M;
|
||||
freq<<=R;
|
||||
|
||||
unsigned long c=0xFFFFF;
|
||||
unsigned long a=freq/fxtal;
|
||||
unsigned long b=(long)((float)(freq-a*fxtal)*(float)c/(float)fxtal);
|
||||
unsigned long dd=(128*b)/c;
|
||||
unsigned long P1=128*a+dd-512;
|
||||
unsigned long P2=128*b-c*dd;
|
||||
unsigned long P3=c;
|
||||
|
||||
|
||||
//Set fvco of PLL_A
|
||||
cmd_si5351(26,(P3>>8)&0xFF); //MSNA_P3[15:8]
|
||||
cmd_si5351(27,P3&0xFF); //MSNA_P3[7:0]
|
||||
cmd_si5351(28,(P1>>16)&0x03); //MSNA_P1[17:16]
|
||||
cmd_si5351(29,(P1>>8)&0xFF); //MSNA_P1[15:8]
|
||||
cmd_si5351(30,P1&0xFF); //MSNA_P1[7:0]
|
||||
cmd_si5351(31,(P3>>12)&0xF0|(P2>>16)&0x0F);//MSNA_P3[19:16], MSNA_P2[19:16]
|
||||
cmd_si5351(32,(P2>>8)&0xFF); //MSNA_P2[15:8]
|
||||
cmd_si5351(33,P2&0xFF); //MSNA_P2[7:0]
|
||||
|
||||
// Set MS0, MS1
|
||||
// a=M, b=0, c=1 ---> P1=128*M-512, P2=0, P3=1
|
||||
if(M==4){
|
||||
P1=0;
|
||||
cmd_si5351(42,0); //MS0_P3[15:8]
|
||||
cmd_si5351(43,1); //MS0_P3[7:0]
|
||||
cmd_si5351(44,0b00001100); //0,R0_DIV[2:0],MS0_DIVBY4[1:0],MS0_P1[17:16]
|
||||
cmd_si5351(45,0); //MS0_P1[15:8]
|
||||
cmd_si5351(46,0); //MS0_P1[7:0]
|
||||
cmd_si5351(47,0); //MS0_P3[19:16], MS0_P2[19:16]
|
||||
cmd_si5351(48,0); //MS0_P2[15:8]
|
||||
cmd_si5351(49,0); //MS0_P2[7:0]
|
||||
|
||||
cmd_si5351(50,0); //MS1_P3[15:8]
|
||||
cmd_si5351(51,1); //MS1_P3[7:0]
|
||||
cmd_si5351(52,0b00001100); //0,R1_DIV[2:0],MS1_DIVBY4[1:0],MS1_P1[17:16]
|
||||
cmd_si5351(53,0); //MS1_P1[15:8]
|
||||
cmd_si5351(54,0); //MS1_P1[7:0]
|
||||
cmd_si5351(55,0); //MS1_P3[19:16], MS0_P2[19:16]
|
||||
cmd_si5351(56,0); //MS1_P2[15:8]
|
||||
cmd_si5351(57,0); //MS1_P2[7:0]
|
||||
}else{
|
||||
P1=128*M-512;
|
||||
cmd_si5351(42,0); //MS0_P3[15:8]
|
||||
cmd_si5351(43,1); //MS0_P3[7:0]
|
||||
cmd_si5351(44,(R<<4)&0x70|(P1>>16)&0x03);//0,R0_DIV[2:0],MS0_DIVBY4[1:0],MS0_P1[17:16]
|
||||
cmd_si5351(45,(P1>>8)&0xFF); //MS0_P1[15:8]
|
||||
cmd_si5351(46,P1&0xFF); //MS0_P1[7:0]
|
||||
cmd_si5351(47,0); //MS0_P3[19:16], MS0_P2[19:16]
|
||||
cmd_si5351(48,0); //MS0_P2[15:8]
|
||||
cmd_si5351(49,0); //MS0_P2[7:0]
|
||||
|
||||
cmd_si5351(50,0); //MS1_P3[15:8]
|
||||
cmd_si5351(51,1); //MS1_P3[7:0]
|
||||
cmd_si5351(52,(R<<4)&0x70|(P1>>16)&0x03);//0,R1_DIV[2:0],MS1_DIVBY4[1:0],MS1_P1[17:16]
|
||||
cmd_si5351(53,(P1>>8)&0xFF); //MS1_P1[15:8]
|
||||
cmd_si5351(54,P1&0xFF); //MS1_P1[7:0]
|
||||
cmd_si5351(55,0); //MS1_P3[19:16], MS0_P2[19:16]
|
||||
cmd_si5351(56,0); //MS1_P2[15:8]
|
||||
cmd_si5351(57,0); //MS1_P2[7:0]
|
||||
}
|
||||
cmd_si5351(165,0);
|
||||
cmd_si5351(166,M);
|
||||
|
||||
if( (oMc!=M)||(RST==1) ){
|
||||
cmd_si5351(177,0x20); // Reset PLLA
|
||||
}
|
||||
oMc=M;
|
||||
|
||||
}else{
|
||||
cmd_si5351(16,0x80);
|
||||
cmd_si5351(17,0x80);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
void set_freq(unsigned long freq){
|
||||
// freq [Hz]
|
||||
//
|
||||
// fvco= fxtal*(a+b/c) ( a:15 -- 90, b:0 -- 1048575, c:1 -- 1048575 )
|
||||
// freq= fvco /(a+b/c) ( a:4, 6--1800, b:0 -- 1048575, c:1 -- 1048575 )
|
||||
//
|
||||
// P1= 128*a + floor(128*b/c) - 512
|
||||
// P2= 128*b - c*floor(128*b/c)
|
||||
// P3= c
|
||||
//
|
||||
|
||||
int k;
|
||||
uint32_t M;
|
||||
uint32_t R;
|
||||
|
||||
if(freq<1500) freq=1500; else if(freq>280000000) freq=280000000;
|
||||
|
||||
if( freq> 150000000){M=4; R=0;}
|
||||
else if(freq>=63000000){M=6; R=0;}
|
||||
else if(freq>=27500000){M=14; R=0;}
|
||||
else if(freq>=13000000){M=30; R=0;}
|
||||
else if(freq>= 6500000){M=62; R=0;}
|
||||
else if(freq>= 3000000){M=126; R=0;}
|
||||
else if(freq>= 1500000){M=280; R=0;}
|
||||
else if(freq>= 700000){M=600; R=0;}
|
||||
else if(freq>= 330000){M=1280; R=0;}
|
||||
else if(freq>= 150000){M=1300; R=1;}
|
||||
else if(freq>= 67000){M=1500; R=2;}
|
||||
else if(freq>= 30300){M=1600; R=3;}
|
||||
else if(freq>= 14000){M=1800; R=4;}
|
||||
else if(freq>= 7000){M=1800; R=5;}
|
||||
else if(freq>= 3500){M=1800; R=6;}
|
||||
else{M=1800; R=7;}
|
||||
|
||||
freq*=M;
|
||||
freq<<=R;
|
||||
|
||||
unsigned long c=0xFFFFF;
|
||||
unsigned long a=freq/fxtal;
|
||||
unsigned long b=(long)((float)(freq-a*fxtal)*(float)c/(float)fxtal);
|
||||
unsigned long dd=(128*b)/c;
|
||||
unsigned long P1=128*a+dd-512;
|
||||
unsigned long P2=128*b-c*dd;
|
||||
unsigned long P3=c;
|
||||
|
||||
|
||||
//Set fvco of PLL_B
|
||||
cmd_si5351(34,(P3>>8)&0xFF); //MSNB_P3[15:8]
|
||||
cmd_si5351(35,P3&0xFF); //MSNB_P3[7:0]
|
||||
cmd_si5351(36,(P1>>16)&0x03); //MSNB_P1[17:16]
|
||||
cmd_si5351(37,(P1>>8)&0xFF); //MSNB_P1[15:8]
|
||||
cmd_si5351(38,P1&0xFF); //MSNB_P1[7:0]
|
||||
cmd_si5351(39,(P3>>12)&0xF0|(P2>>16)&0x0F);//MSNB_P3[19:16], MSNB_P2[19:16]
|
||||
cmd_si5351(40,(P2>>8)&0xFF); //MSNB_P2[15:8]
|
||||
cmd_si5351(41,P2&0xFF); //MSNB_P2[7:0]
|
||||
|
||||
// Set MS2
|
||||
// a=M, b=0, c=1 ---> P1=128*M-512, P2=0, P3=1
|
||||
if(M==4){
|
||||
P1=0;
|
||||
cmd_si5351(58,0); //MS2_P3[15:8]
|
||||
cmd_si5351(59,1); //MS2_P3[7:0]
|
||||
cmd_si5351(60,0b00001100); //0,R0_DIV[2:0],MS2_DIVBY4[1:0],MS2_P1[17:16]
|
||||
cmd_si5351(61,0); //MS2_P1[15:8]
|
||||
cmd_si5351(62,0); //MS2_P1[7:0]
|
||||
cmd_si5351(63,0); //MS2_P3[19:16], MS2_P2[19:16]
|
||||
cmd_si5351(64,0); //MS2_P2[15:8]
|
||||
cmd_si5351(65,0); //MS2_P2[7:0]
|
||||
}else{
|
||||
P1=128*M-512;
|
||||
cmd_si5351(58,0); //MS2_P3[15:8]
|
||||
cmd_si5351(59,1); //MS2_P3[7:0]
|
||||
cmd_si5351(60,(R<<4)&0x70|(P1>>16)&0x03);//0,R0_DIV[2:0],MS2_DIVBY4[1:0],MS2_P1[17:16]
|
||||
cmd_si5351(61,(P1>>8)&0xFF); //MS2_P1[15:8]
|
||||
cmd_si5351(62,P1&0xFF); //MS2_P1[7:0]
|
||||
cmd_si5351(63,0); //MS2_P3[19:16], MS2_P2[19:16]
|
||||
cmd_si5351(64,0); //MS2_P2[15:8]
|
||||
cmd_si5351(65,0); //MS2_P2[7:0]
|
||||
|
||||
}
|
||||
|
||||
if(oMf!=M){
|
||||
cmd_si5351(177,0x80); // Reset PLLB
|
||||
}
|
||||
oMf=M;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void si5351_init(void){
|
||||
pinMode(SDA, OUTPUT);
|
||||
pinMode(SCL, OUTPUT);
|
||||
digitalWrite(SDA, HIGH);
|
||||
digitalWrite(SCL, HIGH);
|
||||
delay(10);
|
||||
cmd_si5351(183,0b10010010); // CL=8pF
|
||||
cmd_si5351(16,0x80); // Disable CLK0
|
||||
cmd_si5351(17,0x80); // Disable CLK1
|
||||
cmd_si5351(18,0x80); // Disable CLK2
|
||||
cmd_si5351(177,0xA0); // Reset PLL_A and B
|
||||
cmd_si5351(16,0x80); // Disable CLK0 (MS0=Integer Mode, Source=PLL_A)
|
||||
cmd_si5351(17,0x80); // Disable CLK1 (MS1=Integer Mode, Source=PLL_A)
|
||||
cmd_si5351(18,0x6F); // Enable CLK2 (MS2=Integer Mode, Source=PLL_B)
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
* File: si5351.h
|
||||
* Author: JF3HZB / T.UEBO
|
||||
*
|
||||
* Created on 2019/02/11, 23:07
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __si5351H___
|
||||
#define __si5351H___
|
||||
|
||||
void si5351_init(void);
|
||||
void set_freq(unsigned long freq);
|
||||
void set_car_freq(unsigned long freq, unsigned char EN, unsigned char RST);
|
||||
|
||||
#endif
|
Plik binarny nie jest wyświetlany.
Po Szerokość: | Wysokość: | Rozmiar: 36 KiB |
Ładowanie…
Reference in New Issue