mirror of
https://github.com/esp8266/Arduino.git
synced 2025-04-19 23:22:16 +03:00
commit
8fac77b0c3
BIN
doc/esp8266_tcp_active_close.png
Normal file
BIN
doc/esp8266_tcp_active_close.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 130 KiB |
@ -1,232 +0,0 @@
|
||||
#include "Adafruit_ILI9341.h"
|
||||
#include "Adafruit_GFX.h"
|
||||
|
||||
extern "C"{
|
||||
#include <ets_sys.h>
|
||||
#include <os_type.h>
|
||||
#include <osapi.h>
|
||||
#include "driver/hspi.h"
|
||||
}
|
||||
|
||||
#define SWAPBYTES(i) ((i>>8) | (i<<8))
|
||||
|
||||
void Adafruit_ILI9341::transmitCmdData(uint8_t cmd, const uint8_t *data, uint8_t numDataByte)
|
||||
{
|
||||
spi_wait_ready();
|
||||
TFT_DC_COMMAND;
|
||||
spi_send_uint8(cmd);
|
||||
spi_wait_ready();
|
||||
TFT_DC_DATA;
|
||||
spi_send_data(data, numDataByte);
|
||||
}
|
||||
|
||||
void Adafruit_ILI9341::begin() {
|
||||
//Set communication using HW SPI Port
|
||||
config = spi_init(HSPI, 1, spi_mode_tx);
|
||||
TFT_DC_INIT;
|
||||
delay(1);
|
||||
|
||||
uint8_t data[15] = {0};
|
||||
|
||||
data[0] = 0x39;
|
||||
data[1] = 0x2C;
|
||||
data[2] = 0x00;
|
||||
data[3] = 0x34;
|
||||
data[4] = 0x02;
|
||||
transmitCmdData(0xCB, data, 5);
|
||||
|
||||
data[0] = 0x00;
|
||||
data[1] = 0XC1;
|
||||
data[2] = 0X30;
|
||||
transmitCmdData(0xCF, data, 3);
|
||||
|
||||
data[0] = 0x85;
|
||||
data[1] = 0x00;
|
||||
data[2] = 0x78;
|
||||
transmitCmdData(0xE8, data, 3);
|
||||
|
||||
data[0] = 0x00;
|
||||
data[1] = 0x00;
|
||||
transmitCmdData(0xEA, data, 2);
|
||||
|
||||
data[0] = 0x64;
|
||||
data[1] = 0x03;
|
||||
data[2] = 0X12;
|
||||
data[3] = 0X81;
|
||||
transmitCmdData(0xED, data, 4);
|
||||
|
||||
data[0] = 0x20;
|
||||
transmitCmdData(0xF7, data, 1);
|
||||
|
||||
data[0] = 0x23; //VRH[5:0]
|
||||
transmitCmdData(0xC0, data, 1); //Power control
|
||||
|
||||
data[0] = 0x10; //SAP[2:0];BT[3:0]
|
||||
transmitCmdData(0xC1, data, 1); //Power control
|
||||
|
||||
data[0] = 0x3e; //Contrast
|
||||
data[1] = 0x28;
|
||||
transmitCmdData(0xC5, data, 2); //VCM control
|
||||
|
||||
data[0] = 0x86; //--
|
||||
transmitCmdData(0xC7, data, 1); //VCM control2
|
||||
|
||||
data[0] = 0x48; //C8
|
||||
transmitCmdData(0x36, data, 1); // Memory Access Control
|
||||
|
||||
data[0] = 0x55;
|
||||
transmitCmdData(0x3A, data, 1);
|
||||
|
||||
data[0] = 0x00;
|
||||
data[1] = 0x18;
|
||||
transmitCmdData(0xB1, data, 2);
|
||||
|
||||
data[0] = 0x08;
|
||||
data[1] = 0x82;
|
||||
data[2] = 0x27;
|
||||
transmitCmdData(0xB6, data, 3); // Display Function Control
|
||||
|
||||
data[0] = 0x00;
|
||||
transmitCmdData(0xF2, data, 1); // 3Gamma Function Disable
|
||||
|
||||
data[0] = 0x01;
|
||||
transmitCmdData(0x26, data, 1); //Gamma curve selected
|
||||
|
||||
data[0] = 0x0F;
|
||||
data[1] = 0x31;
|
||||
data[2] = 0x2B;
|
||||
data[3] = 0x0C;
|
||||
data[4] = 0x0E;
|
||||
data[5] = 0x08;
|
||||
data[6] = 0x4E;
|
||||
data[7] = 0xF1;
|
||||
data[8] = 0x37;
|
||||
data[9] = 0x07;
|
||||
data[10] = 0x10;
|
||||
data[11] = 0x03;
|
||||
data[12] = 0x0E;
|
||||
data[13] = 0x09;
|
||||
data[14] = 0x00;
|
||||
transmitCmdData(0xE0, data, 15); //Set Gamma
|
||||
|
||||
data[0] = 0x00;
|
||||
data[1] = 0x0E;
|
||||
data[2] = 0x14;
|
||||
data[3] = 0x03;
|
||||
data[4] = 0x11;
|
||||
data[5] = 0x07;
|
||||
data[6] = 0x31;
|
||||
data[7] = 0xC1;
|
||||
data[8] = 0x48;
|
||||
data[9] = 0x08;
|
||||
data[10] = 0x0F;
|
||||
data[11] = 0x0C;
|
||||
data[12] = 0x31;
|
||||
data[13] = 0x36;
|
||||
data[14] = 0x0F;
|
||||
transmitCmdData(0xE1, data, 15); //Set Gamma
|
||||
|
||||
transmitCmd(0x11); //Exit Sleep
|
||||
delay(120);
|
||||
|
||||
transmitCmd(0x29); //Display on
|
||||
transmitCmd(0x2c);
|
||||
spi_wait_ready();
|
||||
}
|
||||
|
||||
void Adafruit_ILI9341::drawPixel(int16_t x, int16_t y, uint16_t color) {
|
||||
|
||||
if((x < 0) ||(x >= _width) || (y < 0) || (y >= _height)) return;
|
||||
setAddrWindow(x,y,x+1,y+1);
|
||||
transmitData(SWAPBYTES(color));
|
||||
}
|
||||
|
||||
|
||||
void Adafruit_ILI9341::drawFastVLine(int16_t x, int16_t y, int16_t h,
|
||||
uint16_t color) {
|
||||
|
||||
// Rudimentary clipping
|
||||
if((x >= _width) || (y >= _height)) return;
|
||||
|
||||
if((y+h-1) >= _height)
|
||||
h = _height-y;
|
||||
|
||||
setAddrWindow(x, y, x, y+h-1);
|
||||
transmitData(SWAPBYTES(color), h);
|
||||
}
|
||||
|
||||
void Adafruit_ILI9341::drawFastHLine(int16_t x, int16_t y, int16_t w,
|
||||
uint16_t color) {
|
||||
|
||||
// Rudimentary clipping
|
||||
if((x >= _width) || (y >= _height)) return;
|
||||
if((x+w-1) >= _width) w = _width-x;
|
||||
setAddrWindow(x, y, x+w-1, y);
|
||||
transmitData(SWAPBYTES(color), w);
|
||||
}
|
||||
|
||||
void Adafruit_ILI9341::fillScreen(uint16_t color) {
|
||||
fillRect(0, 0, _width, _height, color);
|
||||
}
|
||||
|
||||
// fill a rectangle
|
||||
void Adafruit_ILI9341::fillRect(int16_t x, int16_t y, int16_t w, int16_t h,
|
||||
uint16_t color) {
|
||||
|
||||
// rudimentary clipping (drawChar w/big text requires this)
|
||||
if((x >= _width) || (y >= _height)) return;
|
||||
if((x + w - 1) >= _width) w = _width - x;
|
||||
if((y + h - 1) >= _height) h = _height - y;
|
||||
|
||||
setAddrWindow(x, y, x+w-1, y+h-1);
|
||||
transmitData(SWAPBYTES(color), h*w);
|
||||
}
|
||||
|
||||
|
||||
// Pass 8-bit (each) R,G,B, get back 16-bit packed color
|
||||
uint16_t Adafruit_ILI9341::color565(uint8_t r, uint8_t g, uint8_t b) {
|
||||
return ((r & 0xF8) << 8) | ((g & 0xFC) << 3) | (b >> 3);
|
||||
}
|
||||
|
||||
|
||||
#define MADCTL_MY 0x80
|
||||
#define MADCTL_MX 0x40
|
||||
#define MADCTL_MV 0x20
|
||||
#define MADCTL_ML 0x10
|
||||
#define MADCTL_RGB 0x00
|
||||
#define MADCTL_BGR 0x08
|
||||
#define MADCTL_MH 0x04
|
||||
|
||||
void Adafruit_ILI9341::setRotation(uint8_t m) {
|
||||
|
||||
uint8_t data;
|
||||
rotation = m % 4; // can't be higher than 3
|
||||
switch (rotation) {
|
||||
case 0:
|
||||
data = MADCTL_MX | MADCTL_BGR;
|
||||
_width = ILI9341_TFTWIDTH;
|
||||
_height = ILI9341_TFTHEIGHT;
|
||||
break;
|
||||
case 1:
|
||||
data = MADCTL_MV | MADCTL_BGR;
|
||||
_width = ILI9341_TFTHEIGHT;
|
||||
_height = ILI9341_TFTWIDTH;
|
||||
break;
|
||||
case 2:
|
||||
data = MADCTL_MY | MADCTL_BGR;
|
||||
_width = ILI9341_TFTWIDTH;
|
||||
_height = ILI9341_TFTHEIGHT;
|
||||
break;
|
||||
case 3:
|
||||
data = MADCTL_MX | MADCTL_MY | MADCTL_MV | MADCTL_BGR;
|
||||
_width = ILI9341_TFTHEIGHT;
|
||||
_height = ILI9341_TFTWIDTH;
|
||||
break;
|
||||
}
|
||||
transmitCmdData(ILI9341_MADCTL, &data, 1);
|
||||
}
|
||||
|
||||
|
||||
void Adafruit_ILI9341::invertDisplay(boolean i) {
|
||||
transmitCmd(i ? ILI9341_INVON : ILI9341_INVOFF);
|
||||
}
|
@ -1,126 +0,0 @@
|
||||
#ifndef _ADAFRUIT_ILI9341H_
|
||||
#define _ADAFRUIT_ILI9341H_
|
||||
|
||||
#include "Adafruit_GFX.h"
|
||||
|
||||
extern "C"
|
||||
{
|
||||
#include <c_types.h>
|
||||
#include <osapi.h>
|
||||
#include <gpio.h>
|
||||
#include "driver/hspi.h"
|
||||
}
|
||||
|
||||
#define ILI9341_TFTWIDTH 240
|
||||
#define ILI9341_TFTHEIGHT 320
|
||||
|
||||
#define ILI9341_NOP 0x00
|
||||
#define ILI9341_SWRESET 0x01
|
||||
#define ILI9341_RDDID 0x04
|
||||
#define ILI9341_RDDST 0x09
|
||||
|
||||
#define ILI9341_SLPIN 0x10
|
||||
#define ILI9341_SLPOUT 0x11
|
||||
#define ILI9341_PTLON 0x12
|
||||
#define ILI9341_NORON 0x13
|
||||
|
||||
#define ILI9341_RDMODE 0x0A
|
||||
#define ILI9341_RDMADCTL 0x0B
|
||||
#define ILI9341_RDPIXFMT 0x0C
|
||||
#define ILI9341_RDIMGFMT 0x0A
|
||||
#define ILI9341_RDSELFDIAG 0x0F
|
||||
|
||||
#define ILI9341_INVOFF 0x20
|
||||
#define ILI9341_INVON 0x21
|
||||
#define ILI9341_GAMMASET 0x26
|
||||
#define ILI9341_DISPOFF 0x28
|
||||
#define ILI9341_DISPON 0x29
|
||||
|
||||
#define ILI9341_CASET 0x2A
|
||||
#define ILI9341_PASET 0x2B
|
||||
#define ILI9341_RAMWR 0x2C
|
||||
#define ILI9341_RAMRD 0x2E
|
||||
|
||||
#define ILI9341_PTLAR 0x30
|
||||
#define ILI9341_MADCTL 0x36
|
||||
#define ILI9341_PIXFMT 0x3A
|
||||
|
||||
#define ILI9341_FRMCTR1 0xB1
|
||||
#define ILI9341_FRMCTR2 0xB2
|
||||
#define ILI9341_FRMCTR3 0xB3
|
||||
#define ILI9341_INVCTR 0xB4
|
||||
#define ILI9341_DFUNCTR 0xB6
|
||||
|
||||
#define ILI9341_PWCTR1 0xC0
|
||||
#define ILI9341_PWCTR2 0xC1
|
||||
#define ILI9341_PWCTR3 0xC2
|
||||
#define ILI9341_PWCTR4 0xC3
|
||||
#define ILI9341_PWCTR5 0xC4
|
||||
#define ILI9341_VMCTR1 0xC5
|
||||
#define ILI9341_VMCTR2 0xC7
|
||||
|
||||
#define ILI9341_RDID1 0xDA
|
||||
#define ILI9341_RDID2 0xDB
|
||||
#define ILI9341_RDID3 0xDC
|
||||
#define ILI9341_RDID4 0xDD
|
||||
|
||||
#define ILI9341_GMCTRP1 0xE0
|
||||
#define ILI9341_GMCTRN1 0xE1
|
||||
/*
|
||||
#define ILI9341_PWCTR6 0xFC
|
||||
|
||||
*/
|
||||
|
||||
// Color definitions
|
||||
#define ILI9341_BLACK 0x0000
|
||||
#define ILI9341_BLUE 0x001F
|
||||
#define ILI9341_RED 0xF800
|
||||
#define ILI9341_GREEN 0x07E0
|
||||
#define ILI9341_CYAN 0x07FF
|
||||
#define ILI9341_MAGENTA 0xF81F
|
||||
#define ILI9341_YELLOW 0xFFE0
|
||||
#define ILI9341_WHITE 0xFFFF
|
||||
|
||||
#define TFT_DC_DATA GPIO_OUTPUT_SET(2, 1)
|
||||
#define TFT_DC_COMMAND GPIO_OUTPUT_SET(2, 0)
|
||||
#define TFT_DC_INIT PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U, FUNC_GPIO2); TFT_DC_DATA
|
||||
|
||||
#define MAKEWORD(b1, b2, b3, b4) (uint32_t(b1) | ((b2) << 8) | ((b3) << 16) | ((b4) << 24))
|
||||
#define SWAPBYTES(i) ((i>>8) | (i<<8))
|
||||
|
||||
class Adafruit_ILI9341 : public Adafruit_GFX {
|
||||
|
||||
private:
|
||||
uint8_t tabcolor;
|
||||
spi_config config;
|
||||
void transmitCmdData(uint8_t cmd, const uint8_t *data, uint8_t numDataByte);
|
||||
inline void transmitData(uint16_t data) {spi_wait_ready(); spi_send_uint16(data);}
|
||||
inline void transmitCmdData(uint8_t cmd, uint32_t data) {spi_wait_ready(); TFT_DC_COMMAND; spi_send_uint8(cmd); spi_wait_ready(); TFT_DC_DATA; spi_send_uint32(data);}
|
||||
inline void transmitData(uint16_t data, int32_t repeats){spi_wait_ready(); spi_send_uint16_r(data, repeats);}
|
||||
inline void transmitCmd(uint8_t cmd){spi_wait_ready(); TFT_DC_COMMAND; spi_send_uint8(cmd);spi_wait_ready(); TFT_DC_DATA;}
|
||||
inline void drawPixelInternal(int16_t x, int16_t y, uint16_t color) { if((x < 0) ||(x >= _width) || (y < 0) || (y >= _height)) return;
|
||||
setAddrWindow(x,y,x+1,y+1);
|
||||
transmitData(SWAPBYTES(color));
|
||||
}
|
||||
|
||||
public:
|
||||
Adafruit_ILI9341() : Adafruit_GFX(ILI9341_TFTWIDTH, ILI9341_TFTHEIGHT), tabcolor(0){}
|
||||
|
||||
void begin(),
|
||||
fillScreen(uint16_t color),
|
||||
drawPixel(int16_t x, int16_t y, uint16_t color),
|
||||
drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color),
|
||||
drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color),
|
||||
fillRect(int16_t x, int16_t y, int16_t w, int16_t h,
|
||||
uint16_t color),
|
||||
setRotation(uint8_t r),
|
||||
invertDisplay(boolean i);
|
||||
inline void setAddrWindow(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1)
|
||||
{ transmitCmdData(ILI9341_CASET, MAKEWORD(x0 >> 8, x0 & 0xFF, x1 >> 8, x1 & 0xFF));
|
||||
transmitCmdData(ILI9341_PASET, MAKEWORD(y0 >> 8, y0 & 0xFF, y1 >> 8, y1 & 0xFF));
|
||||
transmitCmd(ILI9341_RAMWR); // write to RAM
|
||||
}
|
||||
uint16_t color565(uint8_t r, uint8_t g, uint8_t b);
|
||||
};
|
||||
|
||||
#endif
|
@ -1,525 +0,0 @@
|
||||
// Font size 2
|
||||
|
||||
#include "Font16.h"
|
||||
|
||||
const unsigned char widtbl_f16[96] = // character width table
|
||||
{
|
||||
5, 2, 3, 8, 7, 8, 8, 2, // char 32 - 39
|
||||
6, 6, 7, 5, 2, 5, 4, 6, // char 40 - 47
|
||||
7, 7, 7, 7, 7, 7, 7, 7, // char 48 - 55
|
||||
7, 7, 2, 2, 5, 5, 5, 7, // char 56 - 63
|
||||
8, 7, 7, 7, 7, 7, 7, 7, // char 64 - 71
|
||||
6, 3, 7, 7, 6, 9, 7, 7, // char 72 - 79
|
||||
7, 7, 7, 7, 7, 7, 7, 9, // char 80 - 87
|
||||
7, 7, 7, 3, 6, 3, 16, 16, // char 88 - 95
|
||||
3, 6, 6, 6, 6, 6, 5, 6, // char 96 - 103
|
||||
6, 4, 4, 5, 4, 7, 6, 7, // char 104 - 111
|
||||
6, 7, 5, 5, 4, 6, 7, 7, // char 112 - 119
|
||||
5, 6, 6, 11, 16, 8, 2, 13 // char 120 - 127
|
||||
};
|
||||
|
||||
// Row format, MSB left
|
||||
|
||||
const unsigned char chr_f16_20[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 11
|
||||
0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_21[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, // row 1 - 11
|
||||
0x00, 0x40, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_22[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0xA0, 0xA0, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 11
|
||||
0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_23[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x24, 0x24, 0x24, 0xFF, 0x24, 0x24, 0xFF, 0x24, // row 1 - 11
|
||||
0x24, 0x24, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_24[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x40, 0x40, 0x70, 0x40, 0x40, // row 1 - 11
|
||||
0x40, 0xFE, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_25[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x61, 0x91, 0x92, 0x64, 0x08, 0x10, 0x26, 0x49, // row 1 - 11
|
||||
0x89, 0x86, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_26[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x20, 0x50, 0x88, 0x88, 0x50, 0x20, 0x52, 0x8C, // row 1 - 11
|
||||
0x8C, 0x73, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_27[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 11
|
||||
0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_28[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x0C, 0x10, 0x20, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, 0x80, // row 1 - 11
|
||||
0x40, 0x40, 0x20, 0x10, 0x0C // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_29[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0xC0, 0x20, 0x10, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, // row 1 - 11
|
||||
0x08, 0x08, 0x10, 0x20, 0xC0 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_2A[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x10, 0x92, 0x54, 0x38, 0x54, 0x92, 0x10, // row 1 - 11
|
||||
0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_2B[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0xF8, 0x20, 0x20, // row 1 - 11
|
||||
0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_2C[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 11
|
||||
0xC0, 0xC0, 0x40, 0x80, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_2D[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, // row 1 - 11
|
||||
0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_2E[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 11
|
||||
0xC0, 0xC0, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_2F[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, // row 1 - 11
|
||||
0x40, 0x80, 0x80, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_30[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x38, 0x44, 0x44, 0x82, 0x82, 0x82, 0x82, 0x44, // row 1 - 11
|
||||
0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_31[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x10, 0x30, 0x50, 0x10, 0x10, 0x10, 0x10, 0x10, // row 1 - 11
|
||||
0x10, 0x7C, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_32[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x02, 0x04, 0x18, 0x20, 0x40, // row 1 - 11
|
||||
0x80, 0xFE, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_33[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x78, 0x84, 0x02, 0x04, 0x38, 0x04, 0x02, 0x02, // row 1 - 11
|
||||
0x84, 0x78, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_34[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x04, 0x0C, 0x14, 0x24, 0x44, 0x84, 0xFE, 0x04, // row 1 - 11
|
||||
0x04, 0x04, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_35[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0xFC, 0x80, 0x80, 0x80, 0xF8, 0x04, 0x02, 0x02, // row 1 - 11
|
||||
0x84, 0x78, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_36[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x3C, 0x40, 0x80, 0x80, 0xB8, 0xC4, 0x82, 0x82, // row 1 - 11
|
||||
0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_37[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x7E, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, // row 1 - 11
|
||||
0x10, 0x10, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_38[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x44, 0x38, 0x44, 0x82, 0x82, // row 1 - 11
|
||||
0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_39[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x82, 0x46, 0x3A, 0x02, 0x02, // row 1 - 11
|
||||
0x04, 0x78, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_3A[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, // row 1 - 11
|
||||
0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_3B[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, // row 1 - 11
|
||||
0x40, 0x80, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_3C[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, // row 1 - 11
|
||||
0x10, 0x08, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_3D[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0xF8, 0x00, // row 1 - 11
|
||||
0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_3E[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x10, 0x20, // row 1 - 11
|
||||
0x40, 0x80, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_3F[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x02, 0x04, 0x08, 0x10, 0x10, // row 1 - 11
|
||||
0x00, 0x10, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_40[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x3C, 0x42, 0x99, 0xA5, 0xA5, 0xA5, 0xA5, 0x9E, // row 1 - 11
|
||||
0x40, 0x3E, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_41[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x10, 0x10, 0x28, 0x28, 0x44, 0x44, 0x7C, 0x82, // row 1 - 11
|
||||
0x82, 0x82, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_42[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0xF8, 0x84, 0x82, 0x84, 0xF8, 0x84, 0x82, 0x82, // row 1 - 11
|
||||
0x84, 0xF8, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_43[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x3C, 0x42, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, // row 1 - 11
|
||||
0x42, 0x3C, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_44[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0xF8, 0x84, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, // row 1 - 11
|
||||
0x84, 0xF8, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_45[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0xFE, 0x80, 0x80, 0x80, 0xFC, 0x80, 0x80, 0x80, // row 1 - 11
|
||||
0x80, 0xFE, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_46[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0xFE, 0x80, 0x80, 0x80, 0xF8, 0x80, 0x80, 0x80, // row 1 - 11
|
||||
0x80, 0x80, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_47[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x3C, 0x42, 0x80, 0x80, 0x80, 0x9C, 0x82, 0x82, // row 1 - 11
|
||||
0x42, 0x3C, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_48[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x84, 0x84, 0x84, 0x84, 0xFC, 0x84, 0x84, 0x84, // row 1 - 11
|
||||
0x84, 0x84, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_49[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0xE0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, // row 1 - 11
|
||||
0x40, 0xE0, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_4A[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x82, // row 1 - 11
|
||||
0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_4B[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x84, 0x88, 0x90, 0xA0, 0xC0, 0xA0, 0x90, 0x88, // row 1 - 11
|
||||
0x84, 0x82, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_4C[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, // row 1 - 11
|
||||
0x80, 0xFC, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_4D[32] = // 2 unsigned chars per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x80, 0xC1, 0x80, 0xA2, 0x80, // row 1 - 6
|
||||
0xA2, 0x80, 0x94, 0x80, 0x94, 0x80, 0x88, 0x80, 0x88, 0x80, 0x80, 0x80, // row 7 - 12
|
||||
0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 13 - 16
|
||||
};
|
||||
const unsigned char chr_f16_4E[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0xC2, 0xC2, 0xA2, 0xA2, 0x92, 0x92, 0x8A, 0x8A, // row 1 - 11
|
||||
0x86, 0x86, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_4F[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, // row 1 - 11
|
||||
0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_50[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0xF8, 0x84, 0x82, 0x82, 0x82, 0x84, 0xF8, 0x80, // row 1 - 11
|
||||
0x80, 0x80, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_51[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, // row 1 - 11
|
||||
0x44, 0x38, 0x08, 0x06, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_52[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0xF8, 0x84, 0x82, 0x82, 0x84, 0xF8, 0x90, 0x88, // row 1 - 11
|
||||
0x84, 0x82, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_53[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x80, 0x60, 0x1C, 0x02, 0x82, // row 1 - 11
|
||||
0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_54[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0xFE, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, // row 1 - 11
|
||||
0x10, 0x10, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_55[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, // row 1 - 11
|
||||
0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_56[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x82, 0x82, 0x82, 0x82, 0x44, 0x44, 0x28, 0x28, // row 1 - 11
|
||||
0x10, 0x10, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_57[32] = // 2 unsigned chars per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, // row 1 - 6
|
||||
0x88, 0x80, 0x88, 0x80, 0x49, 0x00, 0x55, 0x00, 0x55, 0x00, 0x22, 0x00, // row 7 - 12
|
||||
0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 13 - 16
|
||||
};
|
||||
const unsigned char chr_f16_58[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x82, 0x82, 0x44, 0x28, 0x10, 0x10, 0x28, 0x44, // row 1 - 11
|
||||
0x82, 0x82, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_59[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x82, 0x82, 0x82, 0x44, 0x28, 0x10, 0x10, 0x10, // row 1 - 11
|
||||
0x10, 0x10, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_5A[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0xFE, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x40, // row 1 - 11
|
||||
0x80, 0xFE, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_5B[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0xE0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, // row 1 - 11
|
||||
0x80, 0x80, 0xE0, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_5C[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, // row 1 - 11
|
||||
0x40, 0x80, 0x80, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_5D[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0xE0, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // row 1 - 11
|
||||
0x20, 0x20, 0xE0, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_5E[32] = // 2 unsigned chars per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xDE, 0x84, 0x21, 0x84, 0x21, // row 1 - 6
|
||||
0x84, 0x21, 0x84, 0x21, 0x84, 0x21, 0x84, 0x21, 0x84, 0x21, 0x84, 0x21, // row 7 - 12
|
||||
0x84, 0x21, 0x84, 0x21, 0x00, 0x00, 0x00, 0x00 // row 13 - 16
|
||||
};
|
||||
const unsigned char chr_f16_5F[32] = // 2 unsigned chars per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x08, 0x52, 0x94, 0x4A, 0x52, // row 1 - 6
|
||||
0x84, 0x21, 0x84, 0x21, 0x08, 0x42, 0x08, 0x42, 0x10, 0x84, 0x10, 0x84, // row 7 - 12
|
||||
0x21, 0x08, 0x21, 0x08, 0x00, 0x00, 0x00, 0x00 // row 13 - 16
|
||||
};
|
||||
const unsigned char chr_f16_60[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, // row 1 - 11
|
||||
0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_61[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x08, 0x04, 0x74, 0x8C, // row 1 - 11
|
||||
0x8C, 0x74, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_62[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xB0, 0xC8, 0x84, 0x84, 0x84, // row 1 - 11
|
||||
0xC8, 0xB0, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_63[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x44, 0x80, 0x80, 0x80, // row 1 - 11
|
||||
0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_64[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x34, 0x4C, 0x84, 0x84, 0x84, // row 1 - 11
|
||||
0x4C, 0x34, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_65[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x44, 0x84, 0xF8, 0x80, // row 1 - 11
|
||||
0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_66[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x30, 0x48, 0x40, 0x40, 0x40, 0xE0, 0x40, 0x40, // row 1 - 11
|
||||
0x40, 0x40, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_67[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x4C, 0x84, 0x84, 0x84, // row 1 - 11
|
||||
0x4C, 0x34, 0x04, 0x08, 0x70 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_68[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0xB0, 0xC8, 0x84, 0x84, 0x84, // row 1 - 11
|
||||
0x84, 0x84, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_69[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, // row 1 - 11
|
||||
0x40, 0x40, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_6A[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x30, 0x10, 0x10, 0x10, 0x10, // row 1 - 11
|
||||
0x10, 0x10, 0x10, 0x90, 0x60 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_6B[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x88, 0x90, 0xA0, 0xC0, 0xA0, // row 1 - 11
|
||||
0x90, 0x88, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_6C[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0xC0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, // row 1 - 11
|
||||
0x40, 0x40, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_6D[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC, 0xD2, 0x92, 0x92, 0x92, // row 1 - 11
|
||||
0x92, 0x92, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_6E[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xC8, 0x84, 0x84, 0x84, // row 1 - 11
|
||||
0x84, 0x84, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_6F[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x82, 0x82, // row 1 - 11
|
||||
0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_70[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xC8, 0x84, 0x84, 0x84, // row 1 - 11
|
||||
0xC8, 0xB0, 0x80, 0x80, 0x80 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_71[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x4C, 0x84, 0x84, 0x84, // row 1 - 11
|
||||
0x4C, 0x34, 0x04, 0x04, 0x06 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_72[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xC8, 0x80, 0x80, 0x80, // row 1 - 11
|
||||
0x80, 0x80, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_73[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x88, 0x80, 0x70, 0x08, // row 1 - 11
|
||||
0x88, 0x70, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_74[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0xE0, 0x40, 0x40, 0x40, 0x40, // row 1 - 11
|
||||
0x40, 0x30, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_75[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x84, 0x84, 0x84, 0x84, // row 1 - 11
|
||||
0x4C, 0x34, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_76[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x82, 0x82, 0x82, 0x44, // row 1 - 11
|
||||
0x28, 0x10, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_77[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x82, 0x82, 0x92, 0x92, // row 1 - 11
|
||||
0xAA, 0x44, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_78[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x50, 0x20, 0x50, // row 1 - 11
|
||||
0x88, 0x88, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_79[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x84, 0x84, 0x84, 0x84, // row 1 - 11
|
||||
0x4C, 0x34, 0x04, 0x08, 0x70 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_7A[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x04, 0x08, 0x30, 0x40, // row 1 - 11
|
||||
0x80, 0xFC, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_7B[32] = // 2 unsigned chars per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x41, 0x00, 0x9C, 0x80, // row 1 - 6
|
||||
0xA0, 0x80, 0xA0, 0x80, 0xA0, 0x80, 0x9C, 0x80, 0x41, 0x00, 0x3E, 0x00, // row 7 - 12
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 13 - 16
|
||||
};
|
||||
const unsigned char chr_f16_7C[32] = // 2 unsigned chars per row
|
||||
{
|
||||
0x00, 0x00, 0xF0, 0x00, 0x88, 0x00, 0x88, 0x00, 0xF0, 0x00, 0xA3, 0xC0, // row 1 - 6
|
||||
0x92, 0x20, 0x8A, 0x20, 0x03, 0xC4, 0x02, 0x0A, 0x02, 0x11, 0x02, 0x11, // row 7 - 12
|
||||
0x00, 0x1F, 0x00, 0x11, 0x00, 0x11, 0x00, 0x00 // row 13 - 16
|
||||
};
|
||||
const unsigned char chr_f16_7D[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x22, 0x22, 0x22, 0x22, // row 1 - 11
|
||||
0x32, 0x2C, 0x20, 0x40, 0x80 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_7E[16] = // 1 unsigned char per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 11
|
||||
0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16
|
||||
};
|
||||
const unsigned char chr_f16_7F[32] = // 2 unsigned chars per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 6
|
||||
0x00, 0x00, 0x34, 0xD0, 0x2A, 0xA8, 0x2A, 0xA8, 0x2A, 0xA8, 0x2A, 0xA8, // row 7 - 12
|
||||
0x2A, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 13 - 16
|
||||
};
|
||||
|
||||
const unsigned char* chrtbl_f16[96] = // character pointer table
|
||||
{
|
||||
chr_f16_20, chr_f16_21, chr_f16_22, chr_f16_23, chr_f16_24, chr_f16_25, chr_f16_26, chr_f16_27,
|
||||
chr_f16_28, chr_f16_29, chr_f16_2A, chr_f16_2B, chr_f16_2C, chr_f16_2D, chr_f16_2E, chr_f16_2F,
|
||||
chr_f16_30, chr_f16_31, chr_f16_32, chr_f16_33, chr_f16_34, chr_f16_35, chr_f16_36, chr_f16_37,
|
||||
chr_f16_38, chr_f16_39, chr_f16_3A, chr_f16_3B, chr_f16_3C, chr_f16_3D, chr_f16_3E, chr_f16_3F,
|
||||
chr_f16_40, chr_f16_41, chr_f16_42, chr_f16_43, chr_f16_44, chr_f16_45, chr_f16_46, chr_f16_47,
|
||||
chr_f16_48, chr_f16_49, chr_f16_4A, chr_f16_4B, chr_f16_4C, chr_f16_4D, chr_f16_4E, chr_f16_4F,
|
||||
chr_f16_50, chr_f16_51, chr_f16_52, chr_f16_53, chr_f16_54, chr_f16_55, chr_f16_56, chr_f16_57,
|
||||
chr_f16_58, chr_f16_59, chr_f16_5A, chr_f16_5B, chr_f16_5C, chr_f16_5D, chr_f16_5E, chr_f16_5F,
|
||||
chr_f16_60, chr_f16_61, chr_f16_62, chr_f16_63, chr_f16_64, chr_f16_65, chr_f16_66, chr_f16_67,
|
||||
chr_f16_68, chr_f16_69, chr_f16_6A, chr_f16_6B, chr_f16_6C, chr_f16_6D, chr_f16_6E, chr_f16_6F,
|
||||
chr_f16_70, chr_f16_71, chr_f16_72, chr_f16_73, chr_f16_74, chr_f16_75, chr_f16_76, chr_f16_77,
|
||||
chr_f16_78, chr_f16_79, chr_f16_7A, chr_f16_7B, chr_f16_7C, chr_f16_7D, chr_f16_7E, chr_f16_7F
|
||||
};
|
@ -1,7 +0,0 @@
|
||||
#define nr_chrs_f16 96
|
||||
#define chr_hgt_f16 16
|
||||
#define data_size_f16 8
|
||||
#define firstchr_f16 32
|
||||
|
||||
extern const unsigned char widtbl_f16[96];
|
||||
extern const unsigned char* chrtbl_f16[96];
|
File diff suppressed because it is too large
Load Diff
@ -1,7 +0,0 @@
|
||||
#define nr_chrs_f32 96
|
||||
#define chr_hgt_f32 26
|
||||
#define data_size_f32 8
|
||||
#define firstchr_f32 32
|
||||
|
||||
extern const unsigned char widtbl_f32[96];
|
||||
extern const unsigned char* chrtbl_f32[96];
|
@ -1,338 +0,0 @@
|
||||
// Font size 6 is intended to display numbers and time
|
||||
// This font only contains characters [space] 0 1 2 3 4 5 6 7 8 9 . : a p m
|
||||
// The Pipe character | is a narrow space to aid formatting
|
||||
// All other characters print as a space
|
||||
|
||||
|
||||
#include "Font64.h"
|
||||
|
||||
const unsigned char widtbl_f64[96] = // character width table
|
||||
{
|
||||
15, 15, 15, 15, 15, 15, 15, 15, // char 32 - 39
|
||||
15, 15, 15, 15, 15, 15, 18, 15, // char 40 - 47
|
||||
30, 30, 30, 30, 30, 30, 30, 30, // char 48 - 55
|
||||
30, 30, 18, 15, 15, 15, 15, 15, // char 56 - 63
|
||||
15, 15, 15, 15, 15, 15, 15, 15, // char 64 - 71
|
||||
15, 15, 15, 15, 15, 15, 15, 15, // char 72 - 79
|
||||
15, 15, 15, 15, 15, 15, 15, 15, // char 80 - 87
|
||||
15, 15, 15, 15, 15, 15, 15, 15, // char 88 - 95
|
||||
15, 30, 15, 15, 15, 15, 15, 15, // char 96 - 103
|
||||
15, 15, 15, 15, 15, 45, 15, 15, // char 104 - 111
|
||||
32, 15, 15, 15, 15, 15, 15, 15, // char 112 - 119
|
||||
15, 15, 15, 15, 10, 15, 15, 15 // char 120 - 127
|
||||
};
|
||||
|
||||
// Row format, MSB left
|
||||
|
||||
const unsigned char chr_f64_20[96] = // 2 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 6
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 7 - 12
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 13 - 18
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 19 - 24
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 25 - 30
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 31 - 36
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 37 - 42
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 43 - 48
|
||||
};
|
||||
const unsigned char chr_f64_2E[144] = // 3 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 4
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 5 - 8
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 9 - 12
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 13 - 16
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 17 - 20
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 21 - 24
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 25 - 28
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xC0, 0x00, // row 29 - 32
|
||||
0x07, 0xC0, 0x00, 0x07, 0xC0, 0x00, 0x07, 0xC0, 0x00, 0x07, 0xC0, 0x00, // row 33 - 36
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 37 - 40
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 41 - 44
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 45 - 48
|
||||
};
|
||||
const unsigned char chr_f64_30[192] = // 4 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x03, 0xFF, 0xF0, 0x00, // row 1 - 3
|
||||
0x07, 0xFF, 0xF8, 0x00, 0x0F, 0xFF, 0xFC, 0x00, 0x1F, 0xC0, 0xFE, 0x00, // row 4 - 6
|
||||
0x1F, 0x00, 0x3E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x3E, 0x00, 0x1F, 0x00, // row 7 - 9
|
||||
0x3C, 0x00, 0x0F, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x3C, 0x00, 0x0F, 0x00, // row 10 - 12
|
||||
0x78, 0x00, 0x07, 0x80, 0x78, 0x00, 0x07, 0x80, 0x78, 0x00, 0x07, 0x80, // row 13 - 15
|
||||
0x78, 0x00, 0x07, 0x80, 0x78, 0x00, 0x07, 0x80, 0x78, 0x00, 0x07, 0x80, // row 16 - 18
|
||||
0x78, 0x00, 0x07, 0x80, 0x78, 0x00, 0x07, 0x80, 0x78, 0x00, 0x07, 0x80, // row 19 - 21
|
||||
0x78, 0x00, 0x07, 0x80, 0x78, 0x00, 0x07, 0x80, 0x78, 0x00, 0x07, 0x80, // row 22 - 24
|
||||
0x78, 0x00, 0x07, 0x80, 0x78, 0x00, 0x07, 0x80, 0x3C, 0x00, 0x0F, 0x00, // row 25 - 27
|
||||
0x3C, 0x00, 0x0F, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x3E, 0x00, 0x1F, 0x00, // row 28 - 30
|
||||
0x1E, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x3E, 0x00, 0x1F, 0xC0, 0xFE, 0x00, // row 31 - 33
|
||||
0x0F, 0xFF, 0xFC, 0x00, 0x07, 0xFF, 0xF8, 0x00, 0x03, 0xFF, 0xF0, 0x00, // row 34 - 36
|
||||
0x00, 0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 37 - 39
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 40 - 42
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 43 - 45
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 46 - 48
|
||||
};
|
||||
const unsigned char chr_f64_31[192] = // 4 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x01, 0xC0, 0x00, // row 1 - 3
|
||||
0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x07, 0xC0, 0x00, // row 4 - 6
|
||||
0x00, 0x0F, 0xC0, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x07, 0xFF, 0xC0, 0x00, // row 7 - 9
|
||||
0x07, 0xFF, 0xC0, 0x00, 0x07, 0xFB, 0xC0, 0x00, 0x07, 0xC3, 0xC0, 0x00, // row 10 - 12
|
||||
0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, // row 13 - 15
|
||||
0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, // row 16 - 18
|
||||
0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, // row 19 - 21
|
||||
0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, // row 22 - 24
|
||||
0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, // row 25 - 27
|
||||
0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, // row 28 - 30
|
||||
0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, // row 31 - 33
|
||||
0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, // row 34 - 36
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 37 - 39
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 40 - 42
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 43 - 45
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 46 - 48
|
||||
};
|
||||
const unsigned char chr_f64_32[192] = // 4 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0xFF, 0xF8, 0x00, // row 1 - 3
|
||||
0x03, 0xFF, 0xFC, 0x00, 0x07, 0xFF, 0xFE, 0x00, 0x07, 0xE0, 0x7F, 0x00, // row 4 - 6
|
||||
0x0F, 0x80, 0x1F, 0x00, 0x0F, 0x80, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x80, // row 7 - 9
|
||||
0x1F, 0x00, 0x07, 0x80, 0x1E, 0x00, 0x07, 0x80, 0x1E, 0x00, 0x07, 0x80, // row 10 - 12
|
||||
0x1E, 0x00, 0x07, 0x80, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x0F, 0x80, // row 13 - 15
|
||||
0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x3F, 0x00, // row 16 - 18
|
||||
0x00, 0x00, 0x7E, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x07, 0xF8, 0x00, // row 19 - 21
|
||||
0x00, 0x1F, 0xF0, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x00, 0xFF, 0x80, 0x00, // row 22 - 24
|
||||
0x01, 0xFE, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, // row 25 - 27
|
||||
0x0F, 0xC0, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, // row 28 - 30
|
||||
0x1E, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0x80, // row 31 - 33
|
||||
0x3F, 0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0xFF, 0x80, // row 34 - 36
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 37 - 39
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 40 - 42
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 43 - 45
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 46 - 48
|
||||
};
|
||||
const unsigned char chr_f64_33[192] = // 4 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x03, 0xFF, 0xF0, 0x00, // row 1 - 3
|
||||
0x07, 0xFF, 0xFC, 0x00, 0x0F, 0xFF, 0xFC, 0x00, 0x1F, 0xC0, 0xFE, 0x00, // row 4 - 6
|
||||
0x1F, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x3E, 0x00, 0x1F, 0x00, // row 7 - 9
|
||||
0x3C, 0x00, 0x0F, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x3C, 0x00, 0x0F, 0x00, // row 10 - 12
|
||||
0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x3E, 0x00, // row 13 - 15
|
||||
0x00, 0x00, 0x7E, 0x00, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0x3F, 0xF0, 0x00, // row 16 - 18
|
||||
0x00, 0x3F, 0xFC, 0x00, 0x00, 0x3F, 0xFE, 0x00, 0x00, 0x00, 0x7F, 0x00, // row 19 - 21
|
||||
0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x0F, 0x80, // row 22 - 24
|
||||
0x78, 0x00, 0x07, 0x80, 0x78, 0x00, 0x07, 0x80, 0x78, 0x00, 0x07, 0x80, // row 25 - 27
|
||||
0x7C, 0x00, 0x0F, 0x80, 0x7C, 0x00, 0x1F, 0x80, 0x3E, 0x00, 0x1F, 0x00, // row 28 - 30
|
||||
0x3F, 0x00, 0x3F, 0x00, 0x1F, 0xC0, 0xFE, 0x00, 0x0F, 0xFF, 0xFC, 0x00, // row 31 - 33
|
||||
0x07, 0xFF, 0xF8, 0x00, 0x03, 0xFF, 0xF0, 0x00, 0x00, 0x7F, 0x80, 0x00, // row 34 - 36
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 37 - 39
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 40 - 42
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 43 - 45
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 46 - 48
|
||||
};
|
||||
const unsigned char chr_f64_34[192] = // 4 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, // row 1 - 3
|
||||
0x00, 0x01, 0xF0, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x07, 0xF0, 0x00, // row 4 - 6
|
||||
0x00, 0x07, 0xF0, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x1E, 0xF0, 0x00, // row 7 - 9
|
||||
0x00, 0x1E, 0xF0, 0x00, 0x00, 0x3C, 0xF0, 0x00, 0x00, 0x78, 0xF0, 0x00, // row 10 - 12
|
||||
0x00, 0xF8, 0xF0, 0x00, 0x00, 0xF0, 0xF0, 0x00, 0x01, 0xE0, 0xF0, 0x00, // row 13 - 15
|
||||
0x03, 0xC0, 0xF0, 0x00, 0x07, 0xC0, 0xF0, 0x00, 0x07, 0x80, 0xF0, 0x00, // row 16 - 18
|
||||
0x0F, 0x00, 0xF0, 0x00, 0x1F, 0x00, 0xF0, 0x00, 0x1E, 0x00, 0xF0, 0x00, // row 19 - 21
|
||||
0x3C, 0x00, 0xF0, 0x00, 0x78, 0x00, 0xF0, 0x00, 0x7F, 0xFF, 0xFF, 0x80, // row 22 - 24
|
||||
0x7F, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xFF, 0x80, // row 25 - 27
|
||||
0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0x00, // row 28 - 30
|
||||
0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0x00, // row 31 - 33
|
||||
0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0x00, // row 34 - 36
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 37 - 39
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 40 - 42
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 43 - 45
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 46 - 48
|
||||
};
|
||||
const unsigned char chr_f64_35[192] = // 4 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFE, 0x00, // row 1 - 3
|
||||
0x07, 0xFF, 0xFE, 0x00, 0x07, 0xFF, 0xFE, 0x00, 0x07, 0xFF, 0xFE, 0x00, // row 4 - 6
|
||||
0x07, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, // row 7 - 9
|
||||
0x0F, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, // row 10 - 12
|
||||
0x0E, 0x00, 0x00, 0x00, 0x1E, 0x3F, 0xC0, 0x00, 0x1E, 0xFF, 0xF0, 0x00, // row 13 - 15
|
||||
0x1F, 0xFF, 0xF8, 0x00, 0x1F, 0xFF, 0xFC, 0x00, 0x1F, 0xC0, 0xFE, 0x00, // row 16 - 18
|
||||
0x1F, 0x00, 0x3F, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x0F, 0x00, // row 19 - 21
|
||||
0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x07, 0x80, // row 22 - 24
|
||||
0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x07, 0x80, // row 25 - 27
|
||||
0x3C, 0x00, 0x07, 0x80, 0x3C, 0x00, 0x0F, 0x80, 0x3C, 0x00, 0x0F, 0x00, // row 28 - 30
|
||||
0x3E, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x3F, 0x00, 0x1F, 0xC0, 0xFE, 0x00, // row 31 - 33
|
||||
0x0F, 0xFF, 0xFC, 0x00, 0x07, 0xFF, 0xF8, 0x00, 0x03, 0xFF, 0xF0, 0x00, // row 34 - 36
|
||||
0x00, 0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 37 - 39
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 40 - 42
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 43 - 45
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 46 - 48
|
||||
};
|
||||
const unsigned char chr_f64_36[192] = // 4 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0xFF, 0xF0, 0x00, // row 1 - 3
|
||||
0x03, 0xFF, 0xF8, 0x00, 0x07, 0xFF, 0xFC, 0x00, 0x0F, 0xE0, 0x7E, 0x00, // row 4 - 6
|
||||
0x1F, 0x80, 0x1F, 0x00, 0x1F, 0x00, 0x0F, 0x00, 0x1E, 0x00, 0x0F, 0x80, // row 7 - 9
|
||||
0x3E, 0x00, 0x07, 0x80, 0x3C, 0x00, 0x07, 0x80, 0x3C, 0x00, 0x00, 0x00, // row 10 - 12
|
||||
0x3C, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x78, 0x3F, 0x80, 0x00, // row 13 - 15
|
||||
0x78, 0xFF, 0xF0, 0x00, 0x7B, 0xFF, 0xF8, 0x00, 0x7F, 0xFF, 0xFC, 0x00, // row 16 - 18
|
||||
0x7F, 0xC0, 0xFE, 0x00, 0x7F, 0x00, 0x3E, 0x00, 0x7E, 0x00, 0x1F, 0x00, // row 19 - 21
|
||||
0x7C, 0x00, 0x0F, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x78, 0x00, 0x07, 0x80, // row 22 - 24
|
||||
0x78, 0x00, 0x07, 0x80, 0x78, 0x00, 0x07, 0x80, 0x78, 0x00, 0x07, 0x80, // row 25 - 27
|
||||
0x78, 0x00, 0x07, 0x80, 0x3C, 0x00, 0x0F, 0x80, 0x3C, 0x00, 0x0F, 0x00, // row 28 - 30
|
||||
0x3E, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x3F, 0x00, 0x1F, 0xC0, 0xFE, 0x00, // row 31 - 33
|
||||
0x0F, 0xFF, 0xFC, 0x00, 0x07, 0xFF, 0xF8, 0x00, 0x01, 0xFF, 0xF0, 0x00, // row 34 - 36
|
||||
0x00, 0x7F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 37 - 39
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 40 - 42
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 43 - 45
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 46 - 48
|
||||
};
|
||||
const unsigned char chr_f64_37[192] = // 4 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0x80, // row 1 - 3
|
||||
0x3F, 0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0xFF, 0x80, // row 4 - 6
|
||||
0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x1E, 0x00, // row 7 - 9
|
||||
0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0xF8, 0x00, // row 10 - 12
|
||||
0x00, 0x01, 0xF0, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x03, 0xE0, 0x00, // row 13 - 15
|
||||
0x00, 0x07, 0xC0, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x0F, 0x80, 0x00, // row 16 - 18
|
||||
0x00, 0x0F, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, // row 19 - 21
|
||||
0x00, 0x3E, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, // row 22 - 24
|
||||
0x00, 0x7C, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, // row 25 - 27
|
||||
0x00, 0xF8, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, // row 28 - 30
|
||||
0x00, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, // row 31 - 33
|
||||
0x01, 0xE0, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, // row 34 - 36
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 37 - 39
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 40 - 42
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 43 - 45
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 46 - 48
|
||||
};
|
||||
const unsigned char chr_f64_38[192] = // 4 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x01, 0xFF, 0xE0, 0x00, // row 1 - 3
|
||||
0x07, 0xFF, 0xF8, 0x00, 0x0F, 0xFF, 0xFC, 0x00, 0x1F, 0xC0, 0xFE, 0x00, // row 4 - 6
|
||||
0x1F, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x3E, 0x00, 0x1F, 0x00, // row 7 - 9
|
||||
0x3C, 0x00, 0x0F, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x3C, 0x00, 0x0F, 0x00, // row 10 - 12
|
||||
0x3E, 0x00, 0x1F, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x3E, 0x00, // row 13 - 15
|
||||
0x0F, 0xC0, 0xFC, 0x00, 0x07, 0xFF, 0xF8, 0x00, 0x03, 0xFF, 0xF0, 0x00, // row 16 - 18
|
||||
0x07, 0xFF, 0xF8, 0x00, 0x0F, 0xFF, 0xFC, 0x00, 0x1F, 0x80, 0x7E, 0x00, // row 19 - 21
|
||||
0x3E, 0x00, 0x1F, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x7C, 0x00, 0x0F, 0x80, // row 22 - 24
|
||||
0x78, 0x00, 0x07, 0x80, 0x78, 0x00, 0x07, 0x80, 0x78, 0x00, 0x07, 0x80, // row 25 - 27
|
||||
0x78, 0x00, 0x07, 0x80, 0x78, 0x00, 0x07, 0x80, 0x7C, 0x00, 0x0F, 0x80, // row 28 - 30
|
||||
0x7C, 0x00, 0x0F, 0x80, 0x3E, 0x00, 0x1F, 0x00, 0x3F, 0x80, 0x7F, 0x00, // row 31 - 33
|
||||
0x1F, 0xFF, 0xFE, 0x00, 0x0F, 0xFF, 0xFC, 0x00, 0x07, 0xFF, 0xF8, 0x00, // row 34 - 36
|
||||
0x00, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 37 - 39
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 40 - 42
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 43 - 45
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 46 - 48
|
||||
};
|
||||
const unsigned char chr_f64_39[192] = // 4 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x03, 0xFF, 0xE0, 0x00, // row 1 - 3
|
||||
0x07, 0xFF, 0xF8, 0x00, 0x0F, 0xFF, 0xFC, 0x00, 0x1F, 0xC0, 0xFE, 0x00, // row 4 - 6
|
||||
0x3F, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x3C, 0x00, 0x0F, 0x00, // row 7 - 9
|
||||
0x7C, 0x00, 0x0F, 0x00, 0x78, 0x00, 0x07, 0x80, 0x78, 0x00, 0x07, 0x80, // row 10 - 12
|
||||
0x78, 0x00, 0x07, 0x80, 0x78, 0x00, 0x07, 0x80, 0x78, 0x00, 0x07, 0x80, // row 13 - 15
|
||||
0x7C, 0x00, 0x0F, 0x80, 0x3C, 0x00, 0x0F, 0x80, 0x3E, 0x00, 0x1F, 0x80, // row 16 - 18
|
||||
0x1F, 0x00, 0x3F, 0x80, 0x1F, 0xC0, 0xFF, 0x80, 0x0F, 0xFF, 0xFF, 0x80, // row 19 - 21
|
||||
0x07, 0xFF, 0xF7, 0x80, 0x03, 0xFF, 0xC7, 0x80, 0x00, 0x7F, 0x07, 0x80, // row 22 - 24
|
||||
0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00, // row 25 - 27
|
||||
0x78, 0x00, 0x0F, 0x00, 0x78, 0x00, 0x1F, 0x00, 0x7C, 0x00, 0x1E, 0x00, // row 28 - 30
|
||||
0x3C, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x7E, 0x00, 0x1F, 0x81, 0xFC, 0x00, // row 31 - 33
|
||||
0x0F, 0xFF, 0xF8, 0x00, 0x07, 0xFF, 0xF0, 0x00, 0x03, 0xFF, 0xC0, 0x00, // row 34 - 36
|
||||
0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 37 - 39
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 40 - 42
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 43 - 45
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 46 - 48
|
||||
};
|
||||
const unsigned char chr_f64_3A[144] = // 3 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 4
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 5 - 8
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x07, 0xC0, 0x00, // row 9 - 12
|
||||
0x07, 0xC0, 0x00, 0x07, 0xC0, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x00, 0x00, // row 13 - 16
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 17 - 20
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 21 - 24
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xC0, 0x00, // row 25 - 28
|
||||
0x07, 0xC0, 0x00, 0x07, 0xC0, 0x00, 0x07, 0xC0, 0x00, 0x07, 0xC0, 0x00, // row 29 - 32
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 33 - 36
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 37 - 40
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 41 - 44
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 45 - 48
|
||||
};
|
||||
const unsigned char chr_f64_61[192] = // 4 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 3
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 4 - 6
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 7 - 9
|
||||
0x00, 0x7F, 0xC0, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x07, 0xFF, 0xFC, 0x00, // row 10 - 12
|
||||
0x07, 0xFF, 0xFE, 0x00, 0x0F, 0xC0, 0x7E, 0x00, 0x1F, 0x00, 0x1F, 0x00, // row 13 - 15
|
||||
0x1E, 0x00, 0x0F, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x1E, 0x00, 0x0F, 0x00, // row 16 - 18
|
||||
0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x0F, 0xFF, 0x00, // row 19 - 21
|
||||
0x01, 0xFF, 0xFF, 0x00, 0x07, 0xFF, 0xFF, 0x00, 0x0F, 0xFF, 0xCF, 0x00, // row 22 - 24
|
||||
0x1F, 0xF0, 0x0F, 0x00, 0x1F, 0x00, 0x0F, 0x00, 0x3E, 0x00, 0x0F, 0x00, // row 25 - 27
|
||||
0x3C, 0x00, 0x0F, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x3C, 0x00, 0x1F, 0x00, // row 28 - 30
|
||||
0x3C, 0x00, 0x3F, 0x00, 0x3E, 0x00, 0x7F, 0x00, 0x1F, 0x01, 0xFF, 0xC0, // row 31 - 33
|
||||
0x1F, 0xFF, 0xE7, 0xC0, 0x0F, 0xFF, 0xC7, 0xC0, 0x07, 0xFF, 0x03, 0xC0, // row 34 - 36
|
||||
0x01, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 37 - 39
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 40 - 42
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 43 - 45
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 46 - 48
|
||||
};
|
||||
const unsigned char chr_f64_6D[288] = // 6 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 2
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 3 - 4
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 5 - 6
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 7 - 8
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xE0, 0x1F, 0xC0, 0x00, // row 9 - 10
|
||||
0x1E, 0x3F, 0xF0, 0x7F, 0xF0, 0x00, 0x1E, 0xFF, 0xF8, 0xFF, 0xF8, 0x00, // row 11 - 12
|
||||
0x1E, 0xFF, 0xFD, 0xFF, 0xFC, 0x00, 0x1F, 0xE0, 0x7F, 0xE0, 0x7C, 0x00, // row 13 - 14
|
||||
0x1F, 0x80, 0x3F, 0x80, 0x3E, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1E, 0x00, // row 15 - 16
|
||||
0x1F, 0x00, 0x1F, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, // row 17 - 18
|
||||
0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, // row 19 - 20
|
||||
0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, // row 21 - 22
|
||||
0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, // row 23 - 24
|
||||
0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, // row 25 - 26
|
||||
0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, // row 27 - 28
|
||||
0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, // row 29 - 30
|
||||
0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, // row 31 - 32
|
||||
0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, // row 33 - 34
|
||||
0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, // row 35 - 36
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 37 - 38
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 39 - 40
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 41 - 42
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 43 - 44
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 45 - 46
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 47 - 48
|
||||
};
|
||||
const unsigned char chr_f64_70[192] = // 4 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 3
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 4 - 6
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 7 - 9
|
||||
0x00, 0x0F, 0xE0, 0x00, 0x1E, 0x3F, 0xFC, 0x00, 0x1E, 0x7F, 0xFE, 0x00, // row 10 - 12
|
||||
0x1E, 0xFF, 0xFF, 0x00, 0x1F, 0xF0, 0x3F, 0x80, 0x1F, 0xC0, 0x0F, 0x80, // row 13 - 15
|
||||
0x1F, 0x80, 0x07, 0xC0, 0x1F, 0x00, 0x03, 0xC0, 0x1F, 0x00, 0x03, 0xC0, // row 16 - 18
|
||||
0x1F, 0x00, 0x03, 0xE0, 0x1E, 0x00, 0x01, 0xE0, 0x1E, 0x00, 0x01, 0xE0, // row 19 - 21
|
||||
0x1E, 0x00, 0x01, 0xE0, 0x1E, 0x00, 0x01, 0xE0, 0x1E, 0x00, 0x01, 0xE0, // row 22 - 24
|
||||
0x1E, 0x00, 0x01, 0xE0, 0x1E, 0x00, 0x01, 0xE0, 0x1E, 0x00, 0x01, 0xE0, // row 25 - 27
|
||||
0x1E, 0x00, 0x03, 0xE0, 0x1F, 0x00, 0x03, 0xC0, 0x1F, 0x00, 0x07, 0xC0, // row 28 - 30
|
||||
0x1F, 0x80, 0x07, 0xC0, 0x1F, 0xC0, 0x0F, 0x80, 0x1F, 0xF0, 0x3F, 0x80, // row 31 - 33
|
||||
0x1E, 0xFF, 0xFF, 0x00, 0x1E, 0x7F, 0xFE, 0x00, 0x1E, 0x3F, 0xFC, 0x00, // row 34 - 36
|
||||
0x1E, 0x0F, 0xE0, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, // row 37 - 39
|
||||
0x1E, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, // row 40 - 42
|
||||
0x1E, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, // row 43 - 45
|
||||
0x1E, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 46 - 48
|
||||
};
|
||||
|
||||
const unsigned char * chrtbl_f64[96] = // character pointer table
|
||||
{
|
||||
chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20,
|
||||
chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_2E, chr_f64_20,
|
||||
chr_f64_30, chr_f64_31, chr_f64_32, chr_f64_33, chr_f64_34, chr_f64_35, chr_f64_36, chr_f64_37,
|
||||
chr_f64_38, chr_f64_39, chr_f64_3A, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20,
|
||||
chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20,
|
||||
chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20,
|
||||
chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20,
|
||||
chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20,
|
||||
chr_f64_20, chr_f64_61, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20,
|
||||
chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_6D, chr_f64_20, chr_f64_20,
|
||||
chr_f64_70, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20,
|
||||
chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20, chr_f64_20
|
||||
};
|
@ -1,7 +0,0 @@
|
||||
#define nr_chrs_f64 96
|
||||
#define chr_hgt_f64 48
|
||||
#define data_size_f64 8
|
||||
#define firstchr_f64 32
|
||||
|
||||
extern const unsigned char widtbl_f64[96];
|
||||
extern const unsigned char* chrtbl_f64[96];
|
@ -1,264 +0,0 @@
|
||||
// Font size 7 is a 7 segment font intended to display numbers and time
|
||||
// This font only contains characters [space] 0 1 2 3 4 5 6 7 8 9 : .
|
||||
// All other characters print as a space
|
||||
|
||||
#include "Font7s.h"
|
||||
|
||||
|
||||
const unsigned char widtbl_f7s[96] = // character width table
|
||||
{
|
||||
12, 12, 12, 12, 12, 12, 12, 12, // char 32 - 39
|
||||
12, 12, 12, 12, 12, 12, 12, 12, // char 40 - 47
|
||||
32, 32, 32, 32, 32, 32, 32, 32, // char 48 - 55
|
||||
32, 32, 12, 12, 12, 12, 12, 12, // char 56 - 63
|
||||
12, 12, 12, 12, 12, 12, 12, 12, // char 64 - 71
|
||||
12, 12, 12, 12, 12, 12, 12, 12, // char 72 - 79
|
||||
12, 12, 12, 12, 12, 12, 12, 12, // char 80 - 87
|
||||
12, 12, 12, 12, 12, 12, 12, 12, // char 88 - 95
|
||||
12, 12, 12, 12, 12, 12, 12, 12, // char 96 - 103
|
||||
12, 12, 12, 12, 12, 12, 12, 12, // char 104 - 111
|
||||
12, 12, 12, 12, 12, 12, 12, 12, // char 112 - 119
|
||||
12, 12, 12, 12, 12, 12, 12, 12 // char 120 - 127
|
||||
};
|
||||
|
||||
// Row format, MSB left
|
||||
|
||||
const unsigned char chr_f7s_20[96] = // 2 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 6
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 7 - 12
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 13 - 18
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 19 - 24
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 25 - 30
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 31 - 36
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 37 - 42
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 43 - 48
|
||||
};
|
||||
const unsigned char chr_f7s_2E[96] = // 2 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 6
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 7 - 12
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 13 - 18
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 19 - 24
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 25 - 30
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 31 - 36
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 37 - 42
|
||||
0x0E, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x0E, 0x00, 0x00, 0x00 // row 43 - 48
|
||||
};
|
||||
const unsigned char chr_f7s_30[192] = // 4 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x01, 0xFF, 0xFF, 0x00, // row 1 - 3
|
||||
0x03, 0xFF, 0xFF, 0x80, 0x01, 0xFF, 0xFF, 0x20, 0x0C, 0xFF, 0xFE, 0x70, // row 4 - 6
|
||||
0x1E, 0x00, 0x00, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 7 - 9
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 10 - 12
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 13 - 15
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 16 - 18
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3E, 0x00, 0x00, 0xF8, // row 19 - 21
|
||||
0x38, 0x00, 0x00, 0x38, 0x20, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, // row 22 - 24
|
||||
0x20, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x18, 0x3E, 0x00, 0x00, 0x78, // row 25 - 27
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 28 - 30
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 31 - 33
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 34 - 36
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 37 - 39
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x1E, 0x00, 0x00, 0xF0, // row 40 - 42
|
||||
0x0C, 0xFF, 0xFE, 0x60, 0x01, 0xFF, 0xFF, 0x00, 0x03, 0xFF, 0xFF, 0x80, // row 43 - 45
|
||||
0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00 // row 46 - 48
|
||||
};
|
||||
const unsigned char chr_f7s_31[192] = // 4 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 3
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, // row 4 - 6
|
||||
0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 7 - 9
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 10 - 12
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 13 - 15
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 16 - 18
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x00, 0x78, // row 19 - 21
|
||||
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, // row 22 - 24
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x78, // row 25 - 27
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 28 - 30
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 31 - 33
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 34 - 36
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 37 - 39
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x00, 0xF0, // row 40 - 42
|
||||
0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 43 - 45
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 46 - 48
|
||||
};
|
||||
const unsigned char chr_f7s_32[192] = // 4 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x01, 0xFF, 0xFF, 0x00, // row 1 - 3
|
||||
0x03, 0xFF, 0xFF, 0x80, 0x01, 0xFF, 0xFF, 0x20, 0x00, 0xFF, 0xFE, 0x70, // row 4 - 6
|
||||
0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 7 - 9
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 10 - 12
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 13 - 15
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 16 - 18
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x00, 0xF8, // row 19 - 21
|
||||
0x00, 0xFF, 0xFE, 0x38, 0x03, 0xFF, 0xFF, 0x88, 0x0F, 0xFF, 0xFF, 0xE0, // row 22 - 24
|
||||
0x27, 0xFF, 0xFF, 0xC0, 0x39, 0xFF, 0xFF, 0x00, 0x3E, 0x00, 0x00, 0x00, // row 25 - 27
|
||||
0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, // row 28 - 30
|
||||
0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, // row 31 - 33
|
||||
0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, // row 34 - 36
|
||||
0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, // row 37 - 39
|
||||
0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, // row 40 - 42
|
||||
0x0C, 0xFF, 0xFE, 0x00, 0x01, 0xFF, 0xFF, 0x00, 0x03, 0xFF, 0xFF, 0x80, // row 43 - 45
|
||||
0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00 // row 46 - 48
|
||||
};
|
||||
const unsigned char chr_f7s_33[192] = // 4 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x01, 0xFF, 0xFF, 0x00, // row 1 - 3
|
||||
0x03, 0xFF, 0xFF, 0x80, 0x01, 0xFF, 0xFF, 0x20, 0x00, 0xFF, 0xFE, 0x70, // row 4 - 6
|
||||
0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 7 - 9
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 10 - 12
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 13 - 15
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 16 - 18
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x00, 0xF8, // row 19 - 21
|
||||
0x00, 0xFF, 0xFE, 0x38, 0x03, 0xFF, 0xFF, 0x88, 0x0F, 0xFF, 0xFF, 0xE0, // row 22 - 24
|
||||
0x07, 0xFF, 0xFF, 0xC0, 0x01, 0xFF, 0xFF, 0x18, 0x00, 0x00, 0x00, 0x78, // row 25 - 27
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 28 - 30
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 31 - 33
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 34 - 36
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 37 - 39
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x00, 0xF0, // row 40 - 42
|
||||
0x00, 0xFF, 0xFE, 0x60, 0x01, 0xFF, 0xFF, 0x00, 0x03, 0xFF, 0xFF, 0x80, // row 43 - 45
|
||||
0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00 // row 46 - 48
|
||||
};
|
||||
const unsigned char chr_f7s_34[192] = // 4 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 3
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x0C, 0x00, 0x00, 0x70, // row 4 - 6
|
||||
0x1E, 0x00, 0x00, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 7 - 9
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 10 - 12
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 13 - 15
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 16 - 18
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3E, 0x00, 0x00, 0xF8, // row 19 - 21
|
||||
0x38, 0xFF, 0xFE, 0x38, 0x23, 0xFF, 0xFF, 0x88, 0x0F, 0xFF, 0xFF, 0xE0, // row 22 - 24
|
||||
0x07, 0xFF, 0xFF, 0xC0, 0x01, 0xFF, 0xFF, 0x18, 0x00, 0x00, 0x00, 0x78, // row 25 - 27
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 28 - 30
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 31 - 33
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 34 - 36
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 37 - 39
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x00, 0xF0, // row 40 - 42
|
||||
0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 43 - 45
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 46 - 48
|
||||
};
|
||||
const unsigned char chr_f7s_35[192] = // 4 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x01, 0xFF, 0xFF, 0x00, // row 1 - 3
|
||||
0x03, 0xFF, 0xFF, 0x80, 0x01, 0xFF, 0xFF, 0x00, 0x0C, 0xFF, 0xFE, 0x00, // row 4 - 6
|
||||
0x1E, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, // row 7 - 9
|
||||
0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, // row 10 - 12
|
||||
0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, // row 13 - 15
|
||||
0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, // row 16 - 18
|
||||
0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, // row 19 - 21
|
||||
0x38, 0xFF, 0xFE, 0x00, 0x23, 0xFF, 0xFF, 0x80, 0x0F, 0xFF, 0xFF, 0xE0, // row 22 - 24
|
||||
0x07, 0xFF, 0xFF, 0xC0, 0x01, 0xFF, 0xFF, 0x18, 0x00, 0x00, 0x00, 0x78, // row 25 - 27
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 28 - 30
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 31 - 33
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 34 - 36
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 37 - 39
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x00, 0xF0, // row 40 - 42
|
||||
0x00, 0xFF, 0xFE, 0x60, 0x01, 0xFF, 0xFF, 0x00, 0x03, 0xFF, 0xFF, 0x80, // row 43 - 45
|
||||
0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00 // row 46 - 48
|
||||
};
|
||||
const unsigned char chr_f7s_36[192] = // 4 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x01, 0xFF, 0xFF, 0x00, // row 1 - 3
|
||||
0x03, 0xFF, 0xFF, 0x80, 0x01, 0xFF, 0xFF, 0x00, 0x0C, 0xFF, 0xFE, 0x00, // row 4 - 6
|
||||
0x1E, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, // row 7 - 9
|
||||
0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, // row 10 - 12
|
||||
0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, // row 13 - 15
|
||||
0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, // row 16 - 18
|
||||
0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, // row 19 - 21
|
||||
0x38, 0xFF, 0xFE, 0x00, 0x23, 0xFF, 0xFF, 0x80, 0x0F, 0xFF, 0xFF, 0xE0, // row 22 - 24
|
||||
0x27, 0xFF, 0xFF, 0xC0, 0x39, 0xFF, 0xFF, 0x18, 0x3E, 0x00, 0x00, 0x78, // row 25 - 27
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 28 - 30
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 31 - 33
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 34 - 36
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 37 - 39
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x1E, 0x00, 0x00, 0xF0, // row 40 - 42
|
||||
0x0C, 0xFF, 0xFE, 0x60, 0x01, 0xFF, 0xFF, 0x00, 0x03, 0xFF, 0xFF, 0x80, // row 43 - 45
|
||||
0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00 // row 46 - 48
|
||||
};
|
||||
const unsigned char chr_f7s_37[192] = // 4 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x01, 0xFF, 0xFF, 0x00, // row 1 - 3
|
||||
0x03, 0xFF, 0xFF, 0x80, 0x01, 0xFF, 0xFF, 0x20, 0x00, 0xFF, 0xFE, 0x70, // row 4 - 6
|
||||
0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 7 - 9
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 10 - 12
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 13 - 15
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 16 - 18
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x00, 0xF8, // row 19 - 21
|
||||
0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, // row 22 - 24
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x78, // row 25 - 27
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 28 - 30
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 31 - 33
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 34 - 36
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 37 - 39
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x00, 0xF0, // row 40 - 42
|
||||
0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 43 - 45
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 46 - 48
|
||||
};
|
||||
const unsigned char chr_f7s_38[192] = // 4 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x01, 0xFF, 0xFF, 0x00, // row 1 - 3
|
||||
0x03, 0xFF, 0xFF, 0x80, 0x01, 0xFF, 0xFF, 0x20, 0x0C, 0xFF, 0xFE, 0x70, // row 4 - 6
|
||||
0x1E, 0x00, 0x00, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 7 - 9
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 10 - 12
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 13 - 15
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 16 - 18
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3E, 0x00, 0x00, 0xF8, // row 19 - 21
|
||||
0x38, 0xFF, 0xFE, 0x38, 0x23, 0xFF, 0xFF, 0x88, 0x0F, 0xFF, 0xFF, 0xE0, // row 22 - 24
|
||||
0x27, 0xFF, 0xFF, 0xC0, 0x39, 0xFF, 0xFF, 0x18, 0x3E, 0x00, 0x00, 0x78, // row 25 - 27
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 28 - 30
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 31 - 33
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 34 - 36
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 37 - 39
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x1E, 0x00, 0x00, 0xF0, // row 40 - 42
|
||||
0x0C, 0xFF, 0xFE, 0x60, 0x01, 0xFF, 0xFF, 0x00, 0x03, 0xFF, 0xFF, 0x80, // row 43 - 45
|
||||
0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00 // row 46 - 48
|
||||
};
|
||||
const unsigned char chr_f7s_39[192] = // 4 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x01, 0xFF, 0xFF, 0x00, // row 1 - 3
|
||||
0x03, 0xFF, 0xFF, 0x80, 0x01, 0xFF, 0xFF, 0x20, 0x0C, 0xFF, 0xFE, 0x70, // row 4 - 6
|
||||
0x1E, 0x00, 0x00, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 7 - 9
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 10 - 12
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 13 - 15
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, // row 16 - 18
|
||||
0x3F, 0x00, 0x01, 0xF8, 0x3F, 0x00, 0x01, 0xF8, 0x3E, 0x00, 0x00, 0xF8, // row 19 - 21
|
||||
0x38, 0xFF, 0xFE, 0x38, 0x23, 0xFF, 0xFF, 0x88, 0x0F, 0xFF, 0xFF, 0xE0, // row 22 - 24
|
||||
0x07, 0xFF, 0xFF, 0xC0, 0x01, 0xFF, 0xFF, 0x18, 0x00, 0x00, 0x00, 0x78, // row 25 - 27
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 28 - 30
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 31 - 33
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 34 - 36
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, // row 37 - 39
|
||||
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x00, 0xF0, // row 40 - 42
|
||||
0x00, 0xFF, 0xFE, 0x60, 0x01, 0xFF, 0xFF, 0x00, 0x03, 0xFF, 0xFF, 0x80, // row 43 - 45
|
||||
0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00 // row 46 - 48
|
||||
};
|
||||
const unsigned char chr_f7s_3A[96] = // 2 bytes per row
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 6
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 7 - 12
|
||||
0x00, 0x00, 0x0E, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x0E, 0x00, // row 13 - 18
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 19 - 24
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 25 - 30
|
||||
0x0E, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x0E, 0x00, 0x00, 0x00, // row 31 - 36
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 37 - 42
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 43 - 48
|
||||
};
|
||||
|
||||
const unsigned char * chrtbl_f7s[96] = // character pointer table
|
||||
{
|
||||
chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20,
|
||||
chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_2E, chr_f7s_20,
|
||||
chr_f7s_30, chr_f7s_31, chr_f7s_32, chr_f7s_33, chr_f7s_34, chr_f7s_35, chr_f7s_36, chr_f7s_37,
|
||||
chr_f7s_38, chr_f7s_39, chr_f7s_3A, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20,
|
||||
chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20,
|
||||
chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20,
|
||||
chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20,
|
||||
chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20,
|
||||
chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20,
|
||||
chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20,
|
||||
chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20,
|
||||
chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20, chr_f7s_20
|
||||
};
|
@ -1,7 +0,0 @@
|
||||
#define nr_chrs_f7s 96
|
||||
#define chr_hgt_f7s 48
|
||||
#define data_size_f7s 8
|
||||
#define firstchr_f7s 32
|
||||
|
||||
extern const unsigned char widtbl_f7s[96];
|
||||
extern const unsigned char * chrtbl_f7s[96];
|
@ -1,8 +0,0 @@
|
||||
// Comment out the #defines below with // to stop that font being loaded
|
||||
// If all fonts are loaded the total space required is ablout 17890 bytes
|
||||
|
||||
//#define LOAD_GLCD // Standard Adafruit font needs ~1792 bytes in FLASH
|
||||
//#define LOAD_FONT2 // Small font, needs ~3092 bytes in FLASH
|
||||
//#define LOAD_FONT4 // Medium font, needs ~8126 bytes in FLASH
|
||||
//#define LOAD_FONT6 // Large font, needs ~4404 bytes in FLASH
|
||||
//#define LOAD_FONT7 // 7 segment font, needs ~3652 bytes in FLASH
|
@ -1,79 +0,0 @@
|
||||
#ifndef INCLUDE_HSPI_H_
|
||||
#define INCLUDE_HSPI_H_
|
||||
|
||||
#include "spi_register.h"
|
||||
#include <osapi.h>
|
||||
#include <os_type.h>
|
||||
#include <gpio.h>
|
||||
#include <ets_sys.h>
|
||||
|
||||
#define SPI 0
|
||||
#define HSPI 1
|
||||
|
||||
#define SPIFIFOSIZE 16 //16 words length
|
||||
|
||||
extern uint32_t *spi_fifo;
|
||||
extern uint32_t current_spi_port;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
spi_mode_tx,
|
||||
spi_mode_txrx
|
||||
} spi_mode;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint32_t spi_port;
|
||||
uint32_t clock_reg_val;
|
||||
spi_mode mode;
|
||||
} spi_config;
|
||||
|
||||
spi_config spi_init(uint32_t spi_port, uint32_t prescaler, spi_mode mode);
|
||||
void spi_reinit(spi_config *config);
|
||||
void spi_send_data(const uint8_t * data, uint8_t datasize);
|
||||
void spi_send_uint16_r(const uint16_t data, int32_t repeats);
|
||||
static inline void spi_wait_ready(void){while (READ_PERI_REG(SPI_FLASH_CMD(current_spi_port))&SPI_FLASH_USR);}
|
||||
|
||||
static inline void spi_prepare_tx(uint32_t bytecount)
|
||||
{
|
||||
uint32_t bitcount = bytecount * 8 - 1;
|
||||
|
||||
WRITE_PERI_REG(SPI_FLASH_USER1(current_spi_port), (bitcount & SPI_USR_OUT_BITLEN) << SPI_USR_OUT_BITLEN_S);
|
||||
}
|
||||
|
||||
static inline void spi_prepare_txrx_bits(uint32_t txbitcount, uint32_t rxbitcount)
|
||||
{
|
||||
WRITE_PERI_REG(SPI_FLASH_USER1(current_spi_port), ((txbitcount & SPI_USR_OUT_BITLEN) << SPI_USR_OUT_BITLEN_S) |
|
||||
((rxbitcount & SPI_USR_DIN_BITLEN) << SPI_USR_DIN_BITLEN_S));
|
||||
}
|
||||
|
||||
static inline void spi_start_tx()
|
||||
{
|
||||
SET_PERI_REG_MASK(SPI_FLASH_CMD(current_spi_port), SPI_FLASH_USR); // send
|
||||
}
|
||||
|
||||
static inline void spi_send_uint8(uint8_t data)
|
||||
{
|
||||
spi_prepare_tx(1);
|
||||
*spi_fifo = data;
|
||||
spi_start_tx();
|
||||
}
|
||||
|
||||
static inline void spi_send_uint16(uint16_t data)
|
||||
{
|
||||
spi_prepare_tx(2);
|
||||
*spi_fifo = data;
|
||||
spi_start_tx();
|
||||
}
|
||||
|
||||
static inline void spi_send_uint32(uint32_t data)
|
||||
{
|
||||
spi_prepare_tx(4);
|
||||
*spi_fifo = data;
|
||||
spi_start_tx();
|
||||
}
|
||||
|
||||
/* This is needed to implement XPT2046 driver since it transmits 13 bits back*/
|
||||
extern uint16_t spi_send_uint8_receive_13bits(uint8_t to_send);
|
||||
|
||||
#endif /* INCLUDE_HSPI_H_ */
|
@ -1,239 +0,0 @@
|
||||
//Generated at 2014-07-29 11:03:29
|
||||
/*
|
||||
* Copyright (c) 2010 - 2011 Espressif System
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef SPI_REGISTER_H_INCLUDED
|
||||
#define SPI_REGISTER_H_INCLUDED
|
||||
|
||||
#define REG_SPI_BASE(i) (0x60000200-i*0x100)
|
||||
|
||||
#define SPI_FLASH_CMD(i) (REG_SPI_BASE(i) + 0x0)
|
||||
#define SPI_FLASH_READ (BIT(31))
|
||||
#define SPI_FLASH_WREN (BIT(30))
|
||||
#define SPI_FLASH_WRDI (BIT(29))
|
||||
#define SPI_FLASH_RDID (BIT(28))
|
||||
#define SPI_FLASH_RDSR (BIT(27))
|
||||
#define SPI_FLASH_WRSR (BIT(26))
|
||||
#define SPI_FLASH_PP (BIT(25))
|
||||
#define SPI_FLASH_SE (BIT(24))
|
||||
#define SPI_FLASH_BE (BIT(23))
|
||||
#define SPI_FLASH_CE (BIT(22))
|
||||
#define SPI_FLASH_DP (BIT(21))
|
||||
#define SPI_FLASH_RES (BIT(20))
|
||||
#define SPI_FLASH_HPM (BIT(19))
|
||||
#define SPI_FLASH_USR (BIT(18))
|
||||
|
||||
#define SPI_FLASH_ADDR(i) (REG_SPI_BASE(i) + 0x4)
|
||||
|
||||
#define SPI_FLASH_CTRL(i) (REG_SPI_BASE(i) + 0x8)
|
||||
#define SPI_WR_BIT_ODER (BIT(26))
|
||||
#define SPI_RD_BIT_ODER (BIT(25))
|
||||
#define SPI_QIO_MODE (BIT(24))
|
||||
#define SPI_DIO_MODE (BIT(23))
|
||||
#define SPI_TWO_BYTE_STATUS_EN (BIT(22))
|
||||
#define SPI_WP_REG (BIT(21))
|
||||
#define SPI_QOUT_MODE (BIT(20))
|
||||
#define SPI_SHARE_BUS (BIT(19))
|
||||
#define SPI_HOLD_MODE (BIT(18))
|
||||
#define SPI_ENABLE_AHB (BIT(17))
|
||||
#define SPI_SST_AAI (BIT(16))
|
||||
#define SPI_RESANDRES (BIT(15))
|
||||
#define SPI_DOUT_MODE (BIT(14))
|
||||
#define SPI_FASTRD_MODE (BIT(13))
|
||||
|
||||
#define SPI_FLASH_CTRL1(i) (REG_SPI_BASE (i) + 0xC)
|
||||
#define SPI_T_CSH 0x0000000F
|
||||
#define SPI_T_CSH_S 28
|
||||
#define SPI_T_RES 0x00000FFF
|
||||
#define SPI_T_RES_S 16
|
||||
#define SPI_BUS_TIMER_LIMIT 0x0000FFFF
|
||||
#define SPI_BUS_TIMER_LIMIT_S 0
|
||||
|
||||
#define SPI_FLASH_STATUS(i) (REG_SPI_BASE(i) + 0x10)
|
||||
#define SPI_STATUS_EXT 0x000000FF
|
||||
#define SPI_STATUS_EXT_S 24
|
||||
#define SPI_WB_MODE 0x000000FF
|
||||
#define SPI_WB_MODE_S 16
|
||||
#define SPI_FLASH_STATUS_PRO_FLAG (BIT(7))
|
||||
#define SPI_FLASH_TOP_BOT_PRO_FLAG (BIT(5))
|
||||
#define SPI_FLASH_BP2 (BIT(4))
|
||||
#define SPI_FLASH_BP1 (BIT(3))
|
||||
#define SPI_FLASH_BP0 (BIT(2))
|
||||
#define SPI_FLASH_WRENABLE_FLAG (BIT(1))
|
||||
#define SPI_FLASH_BUSY_FLAG (BIT(0))
|
||||
|
||||
#define SPI_FLASH_CTRL2(i) (REG_SPI_BASE(i) + 0x14)
|
||||
#define SPI_CS_DELAY_NUM 0x0000000F
|
||||
#define SPI_CS_DELAY_NUM_S 28
|
||||
#define SPI_CS_DELAY_MODE 0x00000003
|
||||
#define SPI_CS_DELAY_MODE_S 26
|
||||
#define SPI_MOSI_DELAY_NUM 0x00000007
|
||||
#define SPI_MOSI_DELAY_NUM_S 23
|
||||
#define SPI_MOSI_DELAY_MODE 0x00000003
|
||||
#define SPI_MOSI_DELAY_MODE_S 21
|
||||
#define SPI_MISO_DELAY_NUM 0x00000007
|
||||
#define SPI_MISO_DELAY_NUM_S 18
|
||||
#define SPI_MISO_DELAY_MODE 0x00000003
|
||||
#define SPI_MISO_DELAY_MODE_S 16
|
||||
#define SPI_CK_OUT_HIGH_MODE 0x0000000F
|
||||
#define SPI_CK_OUT_HIGH_MODE_S 12
|
||||
#define SPI_CK_OUT_LOW_MODE 0x0000000F
|
||||
#define SPI_CK_OUT_LOW_MODE_S 8
|
||||
#define SPI_HOLD_TIME 0x0000000F
|
||||
#define SPI_HOLD_TIME_S 4
|
||||
#define SPI_SETUP_TIME 0x0000000F
|
||||
#define SPI_SETUP_TIME_S 0
|
||||
|
||||
#define SPI_FLASH_CLOCK(i) (REG_SPI_BASE(i) + 0x18)
|
||||
#define SPI_CLK_EQU_SYSCLK (BIT(31))
|
||||
#define SPI_CLKDIV_PRE 0x00001FFF
|
||||
#define SPI_CLKDIV_PRE_S 18
|
||||
#define SPI_CLKCNT_N 0x0000003F
|
||||
#define SPI_CLKCNT_N_S 12
|
||||
#define SPI_CLKCNT_H 0x0000003F
|
||||
#define SPI_CLKCNT_H_S 6
|
||||
#define SPI_CLKCNT_L 0x0000003F
|
||||
#define SPI_CLKCNT_L_S 0
|
||||
|
||||
#define SPI_FLASH_USER(i) (REG_SPI_BASE(i) + 0x1C)
|
||||
#define SPI_USR_COMMAND (BIT(31))
|
||||
#define SPI_FLASH_USR_ADDR (BIT(30))
|
||||
#define SPI_FLASH_USR_DUMMY (BIT(29))
|
||||
#define SPI_FLASH_USR_DIN (BIT(28))
|
||||
#define SPI_FLASH_DOUT (BIT(27))
|
||||
#define SPI_USR_DUMMY_IDLE (BIT(26))
|
||||
#define SPI_USR_DOUT_HIGHPART (BIT(25))
|
||||
#define SPI_USR_DIN_HIGHPART (BIT(24))
|
||||
#define SPI_USR_PREP_HOLD (BIT(23))
|
||||
#define SPI_USR_CMD_HOLD (BIT(22))
|
||||
#define SPI_USR_ADDR_HOLD (BIT(21))
|
||||
#define SPI_USR_DUMMY_HOLD (BIT(20))
|
||||
#define SPI_USR_DIN_HOLD (BIT(19))
|
||||
#define SPI_USR_DOUT_HOLD (BIT(18))
|
||||
#define SPI_USR_HOLD_POL (BIT(17))
|
||||
#define SPI_SIO (BIT(16))
|
||||
#define SPI_FWRITE_QIO (BIT(15))
|
||||
#define SPI_FWRITE_DIO (BIT(14))
|
||||
#define SPI_FWRITE_QUAD (BIT(13))
|
||||
#define SPI_FWRITE_DUAL (BIT(12))
|
||||
#define SPI_WR_BYTE_ORDER (BIT(11))
|
||||
#define SPI_RD_BYTE_ORDER (BIT(10))
|
||||
#define SPI_AHB_ENDIAN_MODE 0x00000003
|
||||
#define SPI_AHB_ENDIAN_MODE_S 8
|
||||
#define SPI_CK_OUT_EDGE (BIT(7))
|
||||
#define SPI_CK_I_EDGE (BIT(6))
|
||||
#define SPI_CS_SETUP (BIT(5))
|
||||
#define SPI_CS_HOLD (BIT(4))
|
||||
#define SPI_AHB_USR_COMMAND (BIT(3))
|
||||
#define SPI_AHB_USR_COMMAND_4BYTE (BIT(1))
|
||||
#define SPI_DOUTDIN (BIT(0))
|
||||
|
||||
#define SPI_FLASH_USER1(i) (REG_SPI_BASE(i) + 0x20)
|
||||
#define SPI_USR_ADDR_BITLEN 0x0000003F
|
||||
#define SPI_USR_ADDR_BITLEN_S 26
|
||||
#define SPI_USR_OUT_BITLEN 0x000001FF
|
||||
#define SPI_USR_OUT_BITLEN_S 17
|
||||
#define SPI_USR_DIN_BITLEN 0x000001FF
|
||||
#define SPI_USR_DIN_BITLEN_S 8
|
||||
#define SPI_USR_DUMMY_CYCLELEN 0x000000FF
|
||||
#define SPI_USR_DUMMY_CYCLELEN_S 0
|
||||
|
||||
#define SPI_FLASH_USER2(i) (REG_SPI_BASE(i) + 0x24)
|
||||
#define SPI_USR_COMMAND_BITLEN 0x0000000F
|
||||
#define SPI_USR_COMMAND_BITLEN_S 28
|
||||
#define SPI_USR_COMMAND_VALUE 0x0000FFFF
|
||||
#define SPI_USR_COMMAND_VALUE_S 0
|
||||
|
||||
#define SPI_FLASH_USER3(i) (REG_SPI_BASE(i) + 0x28)
|
||||
#define SPI_FLASH_PIN(i) (REG_SPI_BASE(i) + 0x2C)
|
||||
#define SPI_FLASH_SLAVE(i) (REG_SPI_BASE(i) + 0x30)
|
||||
#define SPI_SYNC_RESET (BIT(31))
|
||||
#define SPI_SLAVE_MODE (BIT(30))
|
||||
#define SPI_SLV_WR_RD_BUF_EN (BIT(29))
|
||||
#define SPI_SLV_WR_RD_STA_EN (BIT(28))
|
||||
#define SPI_SLV_CMD_DEFINE (BIT(27))
|
||||
#define SPI_TRANS_CNT 0x0000000F
|
||||
#define SPI_TRANS_CNT_S 23
|
||||
#define SPI_SLV_LAST_STATE 0x00000007
|
||||
#define SPI_SLV_LAST_STATE_S 20
|
||||
#define SPI_SLV_LAST_COMMAND 0x00000007
|
||||
#define SPI_SLV_LAST_COMMAND_S 17
|
||||
#define SPI_CS_I_MODE 0x00000003
|
||||
#define SPI_CS_I_MODE_S 10
|
||||
#define SPI_INT_EN 0x0000001F
|
||||
#define SPI_INT_EN_S 5
|
||||
#define SPI_TRANS_DONE (BIT(4))
|
||||
#define SPI_SLV_WR_STA_DONE (BIT(3))
|
||||
#define SPI_SLV_RD_STA_DONE (BIT(2))
|
||||
#define SPI_SLV_WR_BUF_DONE (BIT(1))
|
||||
#define SPI_SLV_RD_BUF_DONE (BIT(0))
|
||||
|
||||
#define SPI_FLASH_SLAVE1(i) (REG_SPI_BASE(i) + 0x34)
|
||||
#define SPI_SLV_STATUS_BITLEN 0x0000001F
|
||||
#define SPI_SLV_STATUS_BITLEN_S 27
|
||||
#define SPI_SLV_STATUS_FAST_EN (BIT(26))
|
||||
#define SPI_SLV_STATUS_READBACK (BIT(25))
|
||||
#define SPI_SLV_BUF_BITLEN 0x000001FF
|
||||
#define SPI_SLV_BUF_BITLEN_S 16
|
||||
#define SPI_SLV_RD_ADDR_BITLEN 0x0000003F
|
||||
#define SPI_SLV_RD_ADDR_BITLEN_S 10
|
||||
#define SPI_SLV_WR_ADDR_BITLEN 0x0000003F
|
||||
#define SPI_SLV_WR_ADDR_BITLEN_S 4
|
||||
#define SPI_SLV_WRSTA_DUMMY_EN (BIT(3))
|
||||
#define SPI_SLV_RDSTA_DUMMY_EN (BIT(2))
|
||||
#define SPI_SLV_WRBUF_DUMMY_EN (BIT(1))
|
||||
#define SPI_SLV_RDBUF_DUMMY_EN (BIT(0))
|
||||
|
||||
#define SPI_FLASH_SLAVE2(i) (REG_SPI_BASE(i) + 0x38)
|
||||
#define SPI_SLV_WRBUF_DUMMY_CYCLELEN 0x000000FF
|
||||
#define SPI_SLV_WRBUF_DUMMY_CYCLELEN_S 24
|
||||
#define SPI_SLV_RDBUF_DUMMY_CYCLELEN 0x000000FF
|
||||
#define SPI_SLV_RDBUF_DUMMY_CYCLELEN_S 16
|
||||
#define SPI_SLV_WRSTA_DUMMY_CYCLELEN 0x000000FF
|
||||
#define SPI_SLV_WRSTA_DUMMY_CYCLELEN_S 8
|
||||
#define SPI_SLV_RDSTA_DUMMY_CYCLELEN 0x000000FF
|
||||
#define SPI_SLV_RDSTA_DUMMY_CYCLELEN_S 0
|
||||
|
||||
#define SPI_FLASH_SLAVE3(i) (REG_SPI_BASE(i) + 0x3C)
|
||||
#define SPI_SLV_WRSTA_CMD_VALUE 0x000000FF
|
||||
#define SPI_SLV_WRSTA_CMD_VALUE_S 24
|
||||
#define SPI_SLV_RDSTA_CMD_VALUE 0x000000FF
|
||||
#define SPI_SLV_RDSTA_CMD_VALUE_S 16
|
||||
#define SPI_SLV_WRBUF_CMD_VALUE 0x000000FF
|
||||
#define SPI_SLV_WRBUF_CMD_VALUE_S 8
|
||||
#define SPI_SLV_RDBUF_CMD_VALUE 0x000000FF
|
||||
#define SPI_SLV_RDBUF_CMD_VALUE_S 0
|
||||
|
||||
#define SPI_FLASH_C0(i) (REG_SPI_BASE(i) +0x40)
|
||||
#define SPI_FLASH_C1(i) (REG_SPI_BASE(i) +0x44)
|
||||
#define SPI_FLASH_C2(i) (REG_SPI_BASE(i) +0x48)
|
||||
#define SPI_FLASH_C3(i) (REG_SPI_BASE(i) +0x4C)
|
||||
#define SPI_FLASH_C4(i) (REG_SPI_BASE(i) +0x50)
|
||||
#define SPI_FLASH_C5(i) (REG_SPI_BASE(i) +0x54)
|
||||
#define SPI_FLASH_C6(i) (REG_SPI_BASE(i) +0x58)
|
||||
#define SPI_FLASH_C7(i) (REG_SPI_BASE(i) +0x5C)
|
||||
|
||||
#define SPI_FLASH_EXT0(i) (REG_SPI_BASE(i) + 0xF0)
|
||||
#define SPI_T_PP_ENA (BIT(31))
|
||||
#define SPI_T_PP_SHIFT 0x0000000F
|
||||
#define SPI_T_PP_SHIFT_S 16
|
||||
#define SPI_T_PP_TIME 0x00000FFF
|
||||
#define SPI_T_PP_TIME_S 0
|
||||
|
||||
#define SPI_FLASH_EXT1(i) (REG_SPI_BASE(i) + 0xF4)
|
||||
#define SPI_T_ERASE_ENA (BIT(31))
|
||||
#define SPI_T_ERASE_SHIFT 0x0000000F
|
||||
#define SPI_T_ERASE_SHIFT_S 16
|
||||
#define SPI_T_ERASE_TIME 0x00000FFF
|
||||
#define SPI_T_ERASE_TIME_S 0
|
||||
|
||||
#define SPI_FLASH_EXT2(i) (REG_SPI_BASE(i) + 0xF8)
|
||||
#define SPI_ST 0x00000007
|
||||
#define SPI_ST_S 0
|
||||
|
||||
#define SPI_FLASH_EXT3(i) (REG_SPI_BASE(i) + 0xFC)
|
||||
#define SPI_INT_HOLD_ENA 0x00000003
|
||||
#define SPI_INT_HOLD_ENA_S 0
|
||||
#endif // SPI_REGISTER_H_INCLUDED
|
@ -1,332 +0,0 @@
|
||||
/***************************************************
|
||||
This is our GFX example for the Adafruit ILI9341 Breakout and Shield
|
||||
----> http://www.adafruit.com/products/1651
|
||||
|
||||
Check out the links above for our tutorials and wiring diagrams
|
||||
These displays use SPI to communicate, 4 or 5 pins are required to
|
||||
interface (RST is optional)
|
||||
Adafruit invests time and resources providing this open source code,
|
||||
please support Adafruit and open-source hardware by purchasing
|
||||
products from Adafruit!
|
||||
|
||||
Written by Limor Fried/Ladyada for Adafruit Industries.
|
||||
MIT license, all text above must be included in any redistribution
|
||||
|
||||
Modified by Sermus for ESP8266
|
||||
****************************************************/
|
||||
|
||||
|
||||
#include "SPI.h"
|
||||
#include "Adafruit_GFX.h"
|
||||
#include "Adafruit_ILI9341.h"
|
||||
|
||||
Adafruit_ILI9341 tft = Adafruit_ILI9341();
|
||||
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
Serial.println("ILI9341 Test!");
|
||||
|
||||
tft.begin();
|
||||
|
||||
Serial.println(F("Benchmark Time (microseconds)"));
|
||||
|
||||
Serial.print(F("Screen fill "));
|
||||
Serial.println(testFillScreen());
|
||||
delay(500);
|
||||
|
||||
Serial.print(F("Text "));
|
||||
Serial.println(testText());
|
||||
delay(3000);
|
||||
|
||||
Serial.print(F("Lines "));
|
||||
Serial.println(testLines(ILI9341_CYAN));
|
||||
delay(500);
|
||||
|
||||
Serial.print(F("Horiz/Vert Lines "));
|
||||
Serial.println(testFastLines(ILI9341_RED, ILI9341_BLUE));
|
||||
delay(500);
|
||||
|
||||
Serial.print(F("Rectangles (outline) "));
|
||||
Serial.println(testRects(ILI9341_GREEN));
|
||||
delay(500);
|
||||
|
||||
Serial.print(F("Rectangles (filled) "));
|
||||
Serial.println(testFilledRects(ILI9341_YELLOW, ILI9341_MAGENTA));
|
||||
delay(500);
|
||||
|
||||
Serial.print(F("Circles (filled) "));
|
||||
Serial.println(testFilledCircles(10, ILI9341_MAGENTA));
|
||||
|
||||
Serial.print(F("Circles (outline) "));
|
||||
Serial.println(testCircles(10, ILI9341_WHITE));
|
||||
delay(500);
|
||||
|
||||
Serial.print(F("Triangles (outline) "));
|
||||
Serial.println(testTriangles());
|
||||
delay(500);
|
||||
|
||||
Serial.print(F("Triangles (filled) "));
|
||||
Serial.println(testFilledTriangles());
|
||||
delay(500);
|
||||
|
||||
Serial.print(F("Rounded rects (outline) "));
|
||||
Serial.println(testRoundRects());
|
||||
delay(500);
|
||||
|
||||
Serial.print(F("Rounded rects (filled) "));
|
||||
Serial.println(testFilledRoundRects());
|
||||
delay(500);
|
||||
|
||||
Serial.println(F("Done!"));
|
||||
|
||||
}
|
||||
|
||||
|
||||
void loop(void) {
|
||||
for(uint8_t rotation=0; rotation<4; rotation++) {
|
||||
tft.setRotation(rotation);
|
||||
testText();
|
||||
delay(1000);
|
||||
}
|
||||
}
|
||||
|
||||
unsigned long testFillScreen() {
|
||||
unsigned long start = micros();
|
||||
tft.fillScreen(ILI9341_BLACK);
|
||||
tft.fillScreen(ILI9341_RED);
|
||||
tft.fillScreen(ILI9341_GREEN);
|
||||
tft.fillScreen(ILI9341_BLUE);
|
||||
tft.fillScreen(ILI9341_BLACK);
|
||||
return micros() - start;
|
||||
}
|
||||
|
||||
unsigned long testText() {
|
||||
tft.fillScreen(ILI9341_BLACK);
|
||||
unsigned long start = micros();
|
||||
tft.setCursor(0, 0);
|
||||
tft.setTextColor(ILI9341_WHITE); tft.setTextSize(1);
|
||||
tft.println("Hello World!");
|
||||
tft.setTextColor(ILI9341_YELLOW); tft.setTextSize(2);
|
||||
tft.println(1234.56);
|
||||
tft.setTextColor(ILI9341_RED); tft.setTextSize(3);
|
||||
tft.println(0xDEADBEEF, HEX);
|
||||
tft.println();
|
||||
tft.setTextColor(ILI9341_GREEN);
|
||||
tft.setTextSize(5);
|
||||
tft.println("Groop");
|
||||
tft.setTextSize(2);
|
||||
tft.println("I implore thee,");
|
||||
tft.setTextSize(1);
|
||||
tft.println("my foonting turlingdromes.");
|
||||
tft.println("And hooptiously drangle me");
|
||||
tft.println("with crinkly bindlewurdles,");
|
||||
tft.println("Or I will rend thee");
|
||||
tft.println("in the gobberwarts");
|
||||
tft.println("with my blurglecruncheon,");
|
||||
tft.println("see if I don't!");
|
||||
return micros() - start;
|
||||
}
|
||||
|
||||
unsigned long testLines(uint16_t color) {
|
||||
unsigned long start, t;
|
||||
int x1, y1, x2, y2,
|
||||
w = tft.width(),
|
||||
h = tft.height();
|
||||
|
||||
tft.fillScreen(ILI9341_BLACK);
|
||||
|
||||
x1 = y1 = 0;
|
||||
y2 = h - 1;
|
||||
start = micros();
|
||||
for(x2=0; x2<w; x2+=6) tft.drawLine(x1, y1, x2, y2, color);
|
||||
x2 = w - 1;
|
||||
for(y2=0; y2<h; y2+=6) tft.drawLine(x1, y1, x2, y2, color);
|
||||
t = micros() - start; // fillScreen doesn't count against timing
|
||||
|
||||
tft.fillScreen(ILI9341_BLACK);
|
||||
|
||||
x1 = w - 1;
|
||||
y1 = 0;
|
||||
y2 = h - 1;
|
||||
start = micros();
|
||||
for(x2=0; x2<w; x2+=6) tft.drawLine(x1, y1, x2, y2, color);
|
||||
x2 = 0;
|
||||
for(y2=0; y2<h; y2+=6) tft.drawLine(x1, y1, x2, y2, color);
|
||||
t += micros() - start;
|
||||
|
||||
tft.fillScreen(ILI9341_BLACK);
|
||||
|
||||
x1 = 0;
|
||||
y1 = h - 1;
|
||||
y2 = 0;
|
||||
start = micros();
|
||||
for(x2=0; x2<w; x2+=6) tft.drawLine(x1, y1, x2, y2, color);
|
||||
x2 = w - 1;
|
||||
for(y2=0; y2<h; y2+=6) tft.drawLine(x1, y1, x2, y2, color);
|
||||
t += micros() - start;
|
||||
|
||||
tft.fillScreen(ILI9341_BLACK);
|
||||
|
||||
x1 = w - 1;
|
||||
y1 = h - 1;
|
||||
y2 = 0;
|
||||
start = micros();
|
||||
for(x2=0; x2<w; x2+=6) tft.drawLine(x1, y1, x2, y2, color);
|
||||
x2 = 0;
|
||||
for(y2=0; y2<h; y2+=6) tft.drawLine(x1, y1, x2, y2, color);
|
||||
|
||||
return micros() - start;
|
||||
}
|
||||
|
||||
unsigned long testFastLines(uint16_t color1, uint16_t color2) {
|
||||
unsigned long start;
|
||||
int x, y, w = tft.width(), h = tft.height();
|
||||
|
||||
tft.fillScreen(ILI9341_BLACK);
|
||||
start = micros();
|
||||
for(y=0; y<h; y+=5) tft.drawFastHLine(0, y, w, color1);
|
||||
for(x=0; x<w; x+=5) tft.drawFastVLine(x, 0, h, color2);
|
||||
|
||||
return micros() - start;
|
||||
}
|
||||
|
||||
unsigned long testRects(uint16_t color) {
|
||||
unsigned long start;
|
||||
int n, i, i2,
|
||||
cx = tft.width() / 2,
|
||||
cy = tft.height() / 2;
|
||||
|
||||
tft.fillScreen(ILI9341_BLACK);
|
||||
n = min(tft.width(), tft.height());
|
||||
start = micros();
|
||||
for(i=2; i<n; i+=6) {
|
||||
i2 = i / 2;
|
||||
tft.drawRect(cx-i2, cy-i2, i, i, color);
|
||||
}
|
||||
|
||||
return micros() - start;
|
||||
}
|
||||
|
||||
unsigned long testFilledRects(uint16_t color1, uint16_t color2) {
|
||||
unsigned long start, t = 0;
|
||||
int n, i, i2,
|
||||
cx = tft.width() / 2 - 1,
|
||||
cy = tft.height() / 2 - 1;
|
||||
|
||||
tft.fillScreen(ILI9341_BLACK);
|
||||
n = min(tft.width(), tft.height());
|
||||
for(i=n; i>0; i-=6) {
|
||||
i2 = i / 2;
|
||||
start = micros();
|
||||
tft.fillRect(cx-i2, cy-i2, i, i, color1);
|
||||
t += micros() - start;
|
||||
// Outlines are not included in timing results
|
||||
tft.drawRect(cx-i2, cy-i2, i, i, color2);
|
||||
}
|
||||
|
||||
return t;
|
||||
}
|
||||
|
||||
unsigned long testFilledCircles(uint8_t radius, uint16_t color) {
|
||||
unsigned long start;
|
||||
int x, y, w = tft.width(), h = tft.height(), r2 = radius * 2;
|
||||
|
||||
tft.fillScreen(ILI9341_BLACK);
|
||||
start = micros();
|
||||
for(x=radius; x<w; x+=r2) {
|
||||
for(y=radius; y<h; y+=r2) {
|
||||
tft.fillCircle(x, y, radius, color);
|
||||
}
|
||||
}
|
||||
|
||||
return micros() - start;
|
||||
}
|
||||
|
||||
unsigned long testCircles(uint8_t radius, uint16_t color) {
|
||||
unsigned long start;
|
||||
int x, y, r2 = radius * 2,
|
||||
w = tft.width() + radius,
|
||||
h = tft.height() + radius;
|
||||
|
||||
// Screen is not cleared for this one -- this is
|
||||
// intentional and does not affect the reported time.
|
||||
start = micros();
|
||||
for(x=0; x<w; x+=r2) {
|
||||
for(y=0; y<h; y+=r2) {
|
||||
tft.drawCircle(x, y, radius, color);
|
||||
}
|
||||
}
|
||||
|
||||
return micros() - start;
|
||||
}
|
||||
|
||||
unsigned long testTriangles() {
|
||||
unsigned long start;
|
||||
int n, i, cx = tft.width() / 2 - 1,
|
||||
cy = tft.height() / 2 - 1;
|
||||
|
||||
tft.fillScreen(ILI9341_BLACK);
|
||||
n = min(cx, cy);
|
||||
start = micros();
|
||||
for(i=0; i<n; i+=5) {
|
||||
tft.drawTriangle(
|
||||
cx , cy - i, // peak
|
||||
cx - i, cy + i, // bottom left
|
||||
cx + i, cy + i, // bottom right
|
||||
tft.color565(0, 0, i));
|
||||
}
|
||||
|
||||
return micros() - start;
|
||||
}
|
||||
|
||||
unsigned long testFilledTriangles() {
|
||||
unsigned long start, t = 0;
|
||||
int i, cx = tft.width() / 2 - 1,
|
||||
cy = tft.height() / 2 - 1;
|
||||
|
||||
tft.fillScreen(ILI9341_BLACK);
|
||||
start = micros();
|
||||
for(i=min(cx,cy); i>10; i-=5) {
|
||||
start = micros();
|
||||
tft.fillTriangle(cx, cy - i, cx - i, cy + i, cx + i, cy + i,
|
||||
tft.color565(0, i, i));
|
||||
t += micros() - start;
|
||||
tft.drawTriangle(cx, cy - i, cx - i, cy + i, cx + i, cy + i,
|
||||
tft.color565(i, i, 0));
|
||||
}
|
||||
|
||||
return t;
|
||||
}
|
||||
|
||||
unsigned long testRoundRects() {
|
||||
unsigned long start;
|
||||
int w, i, i2,
|
||||
cx = tft.width() / 2 - 1,
|
||||
cy = tft.height() / 2 - 1;
|
||||
|
||||
tft.fillScreen(ILI9341_BLACK);
|
||||
w = min(tft.width(), tft.height());
|
||||
start = micros();
|
||||
for(i=0; i<w; i+=6) {
|
||||
i2 = i / 2;
|
||||
tft.drawRoundRect(cx-i2, cy-i2, i, i, i/8, tft.color565(i, 0, 0));
|
||||
}
|
||||
|
||||
return micros() - start;
|
||||
}
|
||||
|
||||
unsigned long testFilledRoundRects() {
|
||||
unsigned long start;
|
||||
int i, i2,
|
||||
cx = tft.width() / 2 - 1,
|
||||
cy = tft.height() / 2 - 1;
|
||||
|
||||
tft.fillScreen(ILI9341_BLACK);
|
||||
start = micros();
|
||||
for(i=min(tft.width(), tft.height()); i>20; i-=6) {
|
||||
i2 = i / 2;
|
||||
tft.fillRoundRect(cx-i2, cy-i2, i, i, i/8, tft.color565(0, i, 0));
|
||||
}
|
||||
|
||||
return micros() - start;
|
||||
}
|
@ -1,109 +0,0 @@
|
||||
#include "driver/hspi.h"
|
||||
|
||||
/*
|
||||
Pinout:
|
||||
MISO GPIO12
|
||||
MOSI GPIO13
|
||||
CLK GPIO14
|
||||
CS GPIO15
|
||||
DC GPIO2
|
||||
*/
|
||||
|
||||
#define __min(a,b) ((a > b) ? (b):(a))
|
||||
uint32_t *spi_fifo;
|
||||
uint32_t current_spi_port;
|
||||
|
||||
spi_config spi_init(uint32_t spi_port, uint32_t prescaler, spi_mode mode)
|
||||
{
|
||||
spi_config config;
|
||||
|
||||
WRITE_PERI_REG(PERIPHS_IO_MUX, 0x105); //clear bit9
|
||||
|
||||
if (spi_port == SPI)
|
||||
{
|
||||
PIN_FUNC_SELECT(PERIPHS_IO_MUX_SD_DATA0_U, 2); // SD_D0 MISO
|
||||
PIN_FUNC_SELECT(PERIPHS_IO_MUX_SD_DATA1_U, 2); // SD_D1 MOSI
|
||||
PIN_FUNC_SELECT(PERIPHS_IO_MUX_SD_CLK_U, 2); // CLK
|
||||
} else if (spi_port == HSPI)
|
||||
{
|
||||
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U, 2); // HSPIQ MISO GPIO12
|
||||
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U, 2); // HSPID MOSI GPIO13
|
||||
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTMS_U, 2); // CLK GPIO14
|
||||
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, 2); // CS GPIO15
|
||||
}
|
||||
|
||||
|
||||
config.mode = mode;
|
||||
config.spi_port = spi_port;
|
||||
// SPI clock = CPU clock / 10 / 4
|
||||
// time length HIGHT level = (CPU clock / 10 / 2) ^ -1,
|
||||
// time length LOW level = (CPU clock / 10 / 2) ^ -1
|
||||
config.clock_reg_val = (((prescaler - 1) & SPI_CLKDIV_PRE) << SPI_CLKDIV_PRE_S) |
|
||||
((1 & SPI_CLKCNT_N) << SPI_CLKCNT_N_S) |
|
||||
((0 & SPI_CLKCNT_H) << SPI_CLKCNT_H_S) |
|
||||
((1 & SPI_CLKCNT_L) << SPI_CLKCNT_L_S);
|
||||
|
||||
spi_reinit(&config);
|
||||
return config;
|
||||
}
|
||||
|
||||
void spi_reinit(spi_config *config)
|
||||
{
|
||||
current_spi_port = config->spi_port;
|
||||
spi_fifo = (uint32_t*)SPI_FLASH_C0(current_spi_port);
|
||||
|
||||
uint32_t regvalue = SPI_FLASH_DOUT;
|
||||
WRITE_PERI_REG(SPI_FLASH_CLOCK(current_spi_port), config->clock_reg_val);
|
||||
WRITE_PERI_REG(SPI_FLASH_CTRL1(current_spi_port), 0);
|
||||
|
||||
switch(config->mode)
|
||||
{
|
||||
case spi_mode_tx:
|
||||
regvalue &= ~(BIT2 | SPI_FLASH_USR_ADDR | SPI_FLASH_USR_DUMMY | SPI_FLASH_USR_DIN | SPI_USR_COMMAND | SPI_DOUTDIN);
|
||||
break;
|
||||
case spi_mode_txrx:
|
||||
regvalue |= SPI_DOUTDIN | SPI_CK_I_EDGE;
|
||||
regvalue &= ~(BIT2 | SPI_FLASH_USR_ADDR | SPI_FLASH_USR_DUMMY | SPI_FLASH_USR_DIN | SPI_USR_COMMAND);
|
||||
break;
|
||||
}
|
||||
|
||||
WRITE_PERI_REG(SPI_FLASH_USER(current_spi_port), regvalue);
|
||||
}
|
||||
|
||||
void spi_send_uint16_r(uint16_t data, int32_t repeats)
|
||||
{
|
||||
uint32_t i;
|
||||
uint32_t word = data << 16 | data;
|
||||
|
||||
while(repeats > 0)
|
||||
{
|
||||
uint16_t bytes_to_transfer = __min(repeats * sizeof(uint16_t) , SPIFIFOSIZE * sizeof(uint32_t));
|
||||
spi_wait_ready();
|
||||
spi_prepare_tx(bytes_to_transfer);
|
||||
for(i = 0; i < (bytes_to_transfer + 3) / 4;i++)
|
||||
spi_fifo[i] = word;
|
||||
spi_start_tx();
|
||||
repeats -= bytes_to_transfer / 2;
|
||||
}
|
||||
}
|
||||
|
||||
void spi_send_data(const uint8_t * data, uint8_t datasize)
|
||||
{
|
||||
uint32_t *_data = (uint32_t*)data;
|
||||
uint8_t i;
|
||||
|
||||
uint8_t words_to_send = __min((datasize + 3) / 4, SPIFIFOSIZE);
|
||||
spi_prepare_tx(datasize);
|
||||
for(i = 0; i < words_to_send;i++)
|
||||
spi_fifo[i] = _data[i];
|
||||
spi_start_tx();
|
||||
}
|
||||
|
||||
uint16_t spi_send_uint8_receive_13bits(uint8_t to_send)
|
||||
{
|
||||
spi_prepare_txrx_bits(8, 13);
|
||||
*spi_fifo = to_send;
|
||||
spi_start_tx();
|
||||
spi_wait_ready();
|
||||
return (*spi_fifo) & 0x1FFF;
|
||||
}
|
@ -1,199 +0,0 @@
|
||||
/*
|
||||
* The Minimal snprintf() implementation
|
||||
*
|
||||
* Copyright (c) 2013,2014 Michal Ludvig <michal@logix.cz>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of the auhor nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* ----
|
||||
*
|
||||
* This is a minimal snprintf() implementation optimised
|
||||
* for embedded systems with a very limited program memory.
|
||||
* mini_snprintf() doesn't support _all_ the formatting
|
||||
* the glibc does but on the other hand is a lot smaller.
|
||||
* Here are some numbers from my STM32 project (.bin file size):
|
||||
* no snprintf(): 10768 bytes
|
||||
* mini snprintf(): 11420 bytes (+ 652 bytes)
|
||||
* glibc snprintf(): 34860 bytes (+24092 bytes)
|
||||
* Wasting nearly 24kB of memory just for snprintf() on
|
||||
* a chip with 32kB flash is crazy. Use mini_snprintf() instead.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
#include <stdarg.h>
|
||||
#include "mini-printf.h"
|
||||
|
||||
static unsigned int
|
||||
mini_strlen(const char *s)
|
||||
{
|
||||
unsigned int len = 0;
|
||||
while (s[len] != '\0') len++;
|
||||
return len;
|
||||
}
|
||||
|
||||
static unsigned int
|
||||
mini_itoa(int value, unsigned int radix, unsigned int uppercase,
|
||||
char *buffer, unsigned int zero_pad)
|
||||
{
|
||||
char *pbuffer = buffer;
|
||||
int negative = 0;
|
||||
unsigned int i, len;
|
||||
|
||||
/* No support for unusual radixes. */
|
||||
if (radix > 16)
|
||||
return 0;
|
||||
|
||||
if (value < 0) {
|
||||
negative = 1;
|
||||
value = -value;
|
||||
}
|
||||
|
||||
/* This builds the string back to front ... */
|
||||
do {
|
||||
int digit = value % radix;
|
||||
*(pbuffer++) = (digit < 10 ? '0' + digit : (uppercase ? 'A' : 'a') + digit - 10);
|
||||
value /= radix;
|
||||
} while (value > 0);
|
||||
|
||||
for (i = (pbuffer - buffer); i < zero_pad; i++)
|
||||
*(pbuffer++) = '0';
|
||||
|
||||
if (negative)
|
||||
*(pbuffer++) = '-';
|
||||
|
||||
*(pbuffer) = '\0';
|
||||
|
||||
/* ... now we reverse it (could do it recursively but will
|
||||
* conserve the stack space) */
|
||||
len = (pbuffer - buffer);
|
||||
for (i = 0; i < len / 2; i++) {
|
||||
char j = buffer[i];
|
||||
buffer[i] = buffer[len-i-1];
|
||||
buffer[len-i-1] = j;
|
||||
}
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
int
|
||||
mini_vsnprintf(char *buffer, unsigned int buffer_len, const char *fmt, va_list va)
|
||||
{
|
||||
char *pbuffer = buffer;
|
||||
char bf[24];
|
||||
char ch;
|
||||
|
||||
int _putc(char ch)
|
||||
{
|
||||
if ((unsigned int)((pbuffer - buffer) + 1) >= buffer_len)
|
||||
return 0;
|
||||
*(pbuffer++) = ch;
|
||||
*(pbuffer) = '\0';
|
||||
return 1;
|
||||
}
|
||||
|
||||
int _puts(char *s, unsigned int len)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
if (buffer_len - (pbuffer - buffer) - 1 < len)
|
||||
len = buffer_len - (pbuffer - buffer) - 1;
|
||||
|
||||
/* Copy to buffer */
|
||||
for (i = 0; i < len; i++)
|
||||
*(pbuffer++) = s[i];
|
||||
*(pbuffer) = '\0';
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
while ((ch=*(fmt++))) {
|
||||
if ((unsigned int)((pbuffer - buffer) + 1) >= buffer_len)
|
||||
break;
|
||||
if (ch!='%')
|
||||
_putc(ch);
|
||||
else {
|
||||
char zero_pad = 0;
|
||||
char *ptr;
|
||||
unsigned int len;
|
||||
|
||||
ch=*(fmt++);
|
||||
|
||||
/* Zero padding requested */
|
||||
if (ch=='0') {
|
||||
ch=*(fmt++);
|
||||
if (ch == '\0')
|
||||
goto end;
|
||||
if (ch >= '0' && ch <= '9')
|
||||
zero_pad = ch - '0';
|
||||
ch=*(fmt++);
|
||||
}
|
||||
|
||||
switch (ch) {
|
||||
case 0:
|
||||
goto end;
|
||||
|
||||
case 'u':
|
||||
case 'd':
|
||||
len = mini_itoa(va_arg(va, unsigned int), 10, 0, bf, zero_pad);
|
||||
_puts(bf, len);
|
||||
break;
|
||||
|
||||
case 'x':
|
||||
case 'X':
|
||||
len = mini_itoa(va_arg(va, unsigned int), 16, (ch=='X'), bf, zero_pad);
|
||||
_puts(bf, len);
|
||||
break;
|
||||
|
||||
case 'c' :
|
||||
_putc((char)(va_arg(va, int)));
|
||||
break;
|
||||
|
||||
case 's' :
|
||||
ptr = va_arg(va, char*);
|
||||
_puts(ptr, mini_strlen(ptr));
|
||||
break;
|
||||
|
||||
default:
|
||||
_putc(ch);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
end:
|
||||
return pbuffer - buffer;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
mini_snprintf(char* buffer, unsigned int buffer_len, const char *fmt, ...)
|
||||
{
|
||||
int ret;
|
||||
va_list va;
|
||||
va_start(va, fmt);
|
||||
ret = mini_vsnprintf(buffer, buffer_len, fmt, va);
|
||||
va_end(va);
|
||||
|
||||
return ret;
|
||||
}
|
@ -1,41 +0,0 @@
|
||||
/*
|
||||
* The Minimal snprintf() implementation
|
||||
*
|
||||
* Copyright (c) 2013 Michal Ludvig <michal@logix.cz>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of the auhor nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __MINI_PRINTF__
|
||||
#define __MINI_PRINTF__
|
||||
#include <stdarg.h>
|
||||
|
||||
int mini_vsnprintf(char* buffer, unsigned int buffer_len, const char *fmt, va_list va);
|
||||
int mini_snprintf(char* buffer, unsigned int buffer_len, const char *fmt, ...);
|
||||
|
||||
#define vsnprintf mini_vsnprintf
|
||||
#define snprintf mini_snprintf
|
||||
|
||||
#endif
|
@ -1,12 +0,0 @@
|
||||
Port of Adafruit's library for ILI9341 to ESP8266
|
||||
Uses HSPI.
|
||||
Wiring:
|
||||
ILI9341 pin ESP8266 pin
|
||||
MISO GPIO12
|
||||
MOSI GPIO13
|
||||
SCK GPIO14
|
||||
CS GPIO15
|
||||
DC GPIO2
|
||||
|
||||
Reset 3V3
|
||||
LED through 50-60 Ohm resistor to 3V3
|
@ -43,7 +43,6 @@ void SPIClass::begin() {
|
||||
pinMode(MISO, SPECIAL); ///< GPIO12
|
||||
pinMode(MOSI, SPECIAL); ///< GPIO13
|
||||
|
||||
GPMUX = 0x105; // note crash if SPI flash Frequency < 40MHz
|
||||
SPI1C = 0;
|
||||
setFrequency(1000000); ///< 1MHz
|
||||
SPI1U = SPIUMOSI | SPIUDUPLEX | SPIUSSE;
|
||||
@ -124,7 +123,11 @@ void SPIClass::setFrequency(uint32_t freq) {
|
||||
const spiClk_t minFreqReg = { 0x7FFFF000 };
|
||||
uint32_t minFreq = ClkRegToFreq((spiClk_t*) &minFreqReg);
|
||||
if(freq < minFreq) {
|
||||
freq = minFreq;
|
||||
// use minimum possible clock
|
||||
setClockDivider(minFreqReg.regValue);
|
||||
lastSetRegister = SPI1CLK;
|
||||
lastSetFrequency = freq;
|
||||
return;
|
||||
}
|
||||
|
||||
uint8_t calN = 1;
|
||||
@ -187,6 +190,11 @@ void SPIClass::setFrequency(uint32_t freq) {
|
||||
}
|
||||
|
||||
void SPIClass::setClockDivider(uint32_t clockDiv) {
|
||||
if(clockDiv == 0x80000000) {
|
||||
GPMUX |= (1 << 9); // Set bit 9 if sysclock required
|
||||
} else {
|
||||
GPMUX &= ~(1 << 9);
|
||||
}
|
||||
SPI1CLK = clockDiv;
|
||||
}
|
||||
|
||||
|
@ -24,6 +24,8 @@
|
||||
#include <Arduino.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#define SPI_HAS_TRANSACTION
|
||||
|
||||
// This defines are not representing the real Divider of the ESP8266
|
||||
// the Defines match to an AVR Arduino on 16MHz for better compatibility
|
||||
#if F_CPU == 80000000L
|
||||
|
Loading…
x
Reference in New Issue
Block a user