Files
ESP32-C3-dualboost/doc/librairies/display_constants.h
nicoboy 77f78bb088 Corrige l'init OLED (/CS pendant reset, vitesse SPI) et ajoute la ref MSP430
/CS n'est plus force a LOW avant l'impulsion de reset (seul oled_command/
oled_data le pilotent par octet, comme dans le firmware MSP430 de
reference qui fonctionnait). Vitesse SPI ramenee a 400kHz et delais de
reset alonges a 100ms pour fiabiliser la liaison sur cable ruban IDC.

Ajoute aussi l'ancienne lib MSP430 (doc/librairies/) qui a servi de
reference pour comparer la sequence d'init SSD1322 octet par octet.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01StKu9rqrsdz8CAVt1XMxon
2026-08-01 16:40:47 +02:00

1952 lines
37 KiB
C
Raw Permalink Blame History

/* ============================================================================ */
/* Copyright (c) 2014, LEBEL SAS */
/* 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 LEBEL SAS 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 COPYRIGHT OWNER OR */
/* CONTRIBUTORS 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. */
/* ============================================================================ */
/********************************************************************
*
* Graphic definitions for displays
*
* LEBEL SAS , Version 1.0
*
* Rev. 1.0, Setup
*
********************************************************************/
/*----------------------------------------------------------------------------*/
/* GRAPHIC ELEMENTS */
/*----------------------------------------------------------------------------*/
/************************************************************
* LEBEL logo 2x96x8 1x192x8
************************************************************/
/*#define LOGO {
//
//
//
// #### ### ## ########### ### ########## ## ########### ###
// #### ### ### ########### ### ########### ### ########### ###
// #### ### ### ########### ### ########### ### ########### ###
// #### ### ### ### ### ### ###
// #### ### ############### ############### ############### ###
// #### ### ############### ############### ############### ###
// ### ### ### ### ### ###
// ######### ### ########### ### ########### ### ########### ### ########### ### ###########
// ######### ### ########### ### ########### ### ########### ### ########### ### ###########
// ######### ## ########### ## ########### ### ########## ## ########### ## ###########
//
//
//
0x00, 0x00, 0x08, 0x18, 0x38, 0x78, 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0xF8, 0xF8, 0xF8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF8,
0xF8, 0x80, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0x00, 0x00,
0xF8, 0xF8, 0xF8, 0x80, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xF8, 0xF8, 0xF0,
0x00, 0x00, 0xF0, 0xF8, 0xF8, 0x80, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8,
0xB8, 0xB8, 0x00, 0x00, 0xF8, 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1D, 0x1D, 0x1D, 0x1D, 0x00, 0x0F, 0x1F, 0x1F, 0x00, 0x1C,
0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x00, 0x0F, 0x1F, 0x1F, 0x01, 0x1D, 0x1D,
0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x01, 0x1D, 0x1D,
0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1F, 0x1F, 0x0F, 0x00, 0x00, 0x0F, 0x1F, 0x1F, 0x01, 0x1D, 0x1D,
0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x00, 0x00, 0x0F, 0x1F, 0x1F, 0x00, 0x1C, 0x1C,
0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x00, 0x00,
}*/
/*const unsigned char logolebel0 [] = {
//
//
//
// #### ### ## ########### ### ########## ## ########### ###
// #### ### ### ########### ### ########### ### ########### ###
// #### ### ### ########### ### ########### ### ########### ###
// #### ### ### ### ### ### ###
// #### ### ############### ############### ############### ###
0x00, 0x00, 0x08, 0x18, 0x38, 0x78, 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0xF8, 0xF8, 0xF8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF8,
0xF8, 0x80, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0x00, 0x00,
0xF8, 0xF8, 0xF8, 0x80, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xF8, 0xF8, 0xF0,
0x00, 0x00, 0xF0, 0xF8, 0xF8, 0x80, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8,
0xB8, 0xB8, 0x00, 0x00, 0xF8, 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};*/
/*const unsigned char logolebel1 [] = {
// #### ### ############### ############### ############### ###
// ### ### ### ### ### ###
// ######### ### ########### ### ########### ### ########### ### ########### ### ###########
// ######### ### ########### ### ########### ### ########### ### ########### ### ###########
// ######### ## ########### ## ########### ### ########## ## ########### ## ###########
//
//
//
0x00, 0x00, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1D, 0x1D, 0x1D, 0x1D, 0x00, 0x0F, 0x1F, 0x1F, 0x00, 0x1C,
0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x00, 0x0F, 0x1F, 0x1F, 0x01, 0x1D, 0x1D,
0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x01, 0x1D, 0x1D,
0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1F, 0x1F, 0x0F, 0x00, 0x00, 0x0F, 0x1F, 0x1F, 0x01, 0x1D, 0x1D,
0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x00, 0x00, 0x0F, 0x1F, 0x1F, 0x00, 0x1C, 0x1C,
0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x00, 0x00,
};*/
/************************************************************
* BARGRAPH
************************************************************/
/*
const unsigned char upper_bargraph [] = {
// ### ### # ### ### # ## ### # ## # ### ####
// # # # # # # # # # # # # # # # # #
// ### # # # ### # # # # ### # ### # ### # #
// # # # # # # # # # # # # # # # # #
// ### ### # ### ### # # ### # ### # ### # #
// # # # # # #
// # # # # ####
//
0x15, 0x15, 0x1F, 0x00, 0x1F, 0x11, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x1D, 0x15, 0x17, 0x00, 0x1F, 0x11, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x02, 0x01, 0x1F, 0x00, 0x1D, 0x15, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x1E, 0x15, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x15, 0x15, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x41, 0x41, 0x7F,
};*/
/*----------------------------------------------------------------------------*/
/* ALPHANUMERIC ELEMENTS IN ASCII TABLE */
/*----------------------------------------------------------------------------*/
// Table de 127 caracteres 8x8 pixels, dont les caracteres affichables ASCII standard
// aux emplacements standard 0x20 <20> 0x7E
// stock<63>s en m<>moire flash
static const unsigned char ASCII[][8] = // declar<61>e static ???
{
// characters are defined as bitmaps
// each byte is a column
// b0 b1 b2 b3 b4 b5 b6 b7 hex char, LSB in top
/************************************************************
* SYMBOLES NON ASCII 0x00 -> 0x1F
************************************************************/
{ // 0x00 fleche haut
// ##
// ####
// ######
// ########
// ##
// ##
// ##
// ##
0x08, 0x0C, 0x0E, 0xFF, 0xFF, 0x0E, 0x0C, 0x08,
},
{ // 0x01 fleche bas
// ##
// ##
// ##
// ##
// ########
// ######
// ####
// ##
0x10, 0x30, 0x70, 0xFF, 0xFF, 0x70, 0x30, 0x10,
},
{ // 0x02 fleche gauche
// #
// ##
// ###
// ########
// ########
// ###
// ##
// #
0x18, 0x3C, 0x7E, 0xFF, 0x18, 0x18, 0x18, 0x18,
},
{ //0x03 fleche droite
// #
// ##
// ###
// ########
// ########
// ###
// ##
// #
0x18, 0x18, 0x18, 0x18, 0xFF, 0x7E, 0x3C, 0x18,
},
{ // 0x04 batterie full gauche
// ########
// #
// # # ###
// # ## ###
// # ### ##
// # #### #
// #
// ########
0xFF, 0x81, 0xBD, 0xB9, 0xB5, 0xAD, 0x9D, 0xB9,
},
{ // 0x05 batterie half gauche
// ########
// #
// # #
// # ##
// # ###
// # ####
// #
// ########
0xFF, 0x81, 0xBD, 0xB9, 0xB1, 0xA1, 0x81, 0x81,
},
{ // 0x06 batterie vide gauche
// ########
// #
// #
// #
// #
// #
// #
// ########
0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
},
{ // 0x07 batterie vide droite
// ######
// #
// ###
// #
// #
// ###
// #
// ######
0x81, 0x81, 0x81, 0x81, 0x81, 0xE7, 0x24, 0x3C,
},
{ // 0x08 batterie half droite
// ######
// #
// ###
// #
// # #
// ## ###
// #
// ######
0xB1, 0xA1, 0x81, 0x81, 0x81, 0xE7, 0x24, 0x3C,
},
{ // 0x09 batterie full droite
// ######
// #
// #### ###
// ### ###
// # ## ###
// ## # ###
// #
// ######
0xB5, 0xAD, 0x9D, 0xBD, 0x81, 0xFF, 0x3C, 0x3C,
},
{ // 0x0A batterie vide
// ####
// ## ##
// # #
// # #
// # #
// # #
// # #
// ######
0x00, 0xFE, 0x83, 0x81, 0x81, 0x83, 0xFE, 0x00,
},
{ // 0x0B batterie +
// ####
// ## ##
// # #
// # #
// # #
// # #
// ######
// ######
0x00, 0xFE, 0xC3, 0xC1, 0xC1, 0xC3, 0xFE, 0x00,
},
{ // 0x0C batterie ++
// ####
// ## ##
// # #
// # #
// # #
// ######
// ######
// ######
0x00, 0xFE, 0xE3, 0xE1, 0xE1, 0xE3, 0xFE, 0x00,
},
{ // 0x0D batterie +++
// ####
// ## ##
// # #
// # #
// ######
// ######
// ######
// ######
0x00, 0xFE, 0xF3, 0xF1, 0xF1, 0xF3, 0xFE, 0x00,
},
{ // 0x0E batterie ++++
// ####
// ## ##
// # #
// ######
// ######
// ######
// ######
// ######
0x00, 0xFE, 0xFB, 0xF9, 0xF9, 0xFB, 0xFE, 0x00,
},
{ // 0x0F batterie +++++
// ####
// ## ##
// ######
// ######
// ######
// ######
// ######
// ######
0x00, 0xFE, 0xFF, 0xFD, 0xFD, 0xFF, 0xFE, 0x00
},
{ // 0x10 batterie pleine
// ####
// ######
// ######
// ######
// ######
// ######
// ######
// ######
0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00,
},
{ // 0x11 seed
// ###
// ###
// ###
// ###
//
// ######
// ######
//
0x00, 0x61, 0x63, 0x67, 0x6E, 0x6C, 0x68, 0x00,
},
{ // 0x12 note noire
// ##
// ##
// ##
// ##
// ##
// ####
// #####
// ###
0x00, 0x40, 0xE0, 0xE0, 0xFF, 0x7F, 0x00, 0x00,
},
{ // 0x13 note croche
// ##
// ###
// ####
// ## ##
// ##
// ####
// #####
// ####
0x40, 0xE0, 0xE0, 0xFF, 0xFF, 0x06, 0x0C, 0x08,
},
{ // 0x14 balle droite
//
//
// # ###
// ######
// ######
// # ###
//
//
0x00, 0x3C, 0x18, 0x3C, 0x3C, 0x3C, 0x18, 0x00,
},
{ // 0x15 balle gauche
//
//
// ### #
// ######
// ######
// ### #
//
//
0x00, 0x18, 0x3C, 0x3C, 0x3C, 0x18, 0x3C, 0x00,
},
{ // 0x16 boule
//
// ####
// ######
// ########
// ########
// ######
// ####
//
0x18, 0x3C, 0x7E, 0x7E, 0x7E, 0x7E, 0x3C, 0x18,
},
{ // 0x17 boule creuse
//
// ####
// ## ##
// ## ##
// ## ##
// ## ##
// ####
//
0x18, 0x3C, 0x66, 0x42, 0x42, 0x66, 0x3C, 0x18,
},
{ // 0x18 fusee
// #
// ###
// ###
// ###
// ###
// ###
// #####
// ## # ##
0x80, 0xC0, 0x7E, 0xFF, 0x7E, 0xC0, 0x80, 0x00,
},
{ // 0x19 explosion
// # ## #
// # ## #
// # #
// ## ##
// ## ##
// # #
// # ## #
// # ## #
0x99, 0x5A, 0x24, 0xC3, 0xC3, 0x24, 0x5A, 0x99,
},
{ // 0x1A barre horizontale
//
//
//
// ########
// ########
//
//
//
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
},
{ // 0x1B barre oblique gauche
// ##
// ##
// ##
// ##
// ##
// ##
// ###
// ##
0x03, 0x07, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0xC0,
},
{ // 0x1C barre verticale
// ##
// ##
// ##
// ##
// ##
// ##
// ##
// ##
0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00,
},
{ // 0x1D barre oblique droite
// ##
// ###
// ##
// ##
// ##
// ##
// ##
// ##
0xC0, 0xE0, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x03,
},
{ // 0x1E croix
// ##
// ##
// ##
// ########
// ########
// ##
// ##
// ##
0x18, 0x18, 0x18, 0xFF, 0xFF, 0x18, 0x18, 0x18,
},
{ // 0x1F croix gammee
// ## #####
// ## #####
// ## ##
// ########
// ########
// ## ##
// ##### ##
// ##### ##
0xDF, 0xDF, 0xD8, 0xFF, 0xFF, 0x1B, 0xFB, 0xFB,
},
/************************************************************
* SYMBOLES ASCII
************************************************************/
{ // 0x20 espace
//
//
//
//
//
//
//
//
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
},
{ // 0x21 exclamation !
// ##
// ##
// ##
// ##
// ##
//
// ##
//
0x00, 0x00, 0x00, 0x5F, 0x5F, 0x00, 0x00, 0x00,
},
{ // 0x22 guillemet "
// ## ##
// ## ##
// ## ##
//
//
//
//
//
0x00, 0x07, 0x07, 0x00, 0x07, 0x07, 0x00, 0x00,
},
{ // 0x23 diese #
// ## ##
// ## ##
// #######
// ## ##
// #######
// ## ##
// ## ##
//
0x14, 0x7F, 0x7F, 0x14, 0x7F, 0x7F, 0x14, 0x00,
},
{ // 0x24 dollar $
// ##
// #####
// # ##
// ####
// ## #
// #####
// ##
//
0x00, 0x24, 0x2A, 0x7F, 0x7F, 0x2A, 0x12, 0x00,
},
{ // 0x25 pourcentage %
//
// ## ##
// ## ##
// ##
// ##
// ## ##
// ## ##
//
0x46, 0x66, 0x30, 0x18, 0x0C, 0x66, 0x62, 0x00,
},
{ // 0x26 et &
// ###
// ## ##
// ###
// ### ##
// ## ###
// ## ##
// ### ##
//
0x30, 0x7A, 0x4F, 0x5D, 0x37, 0x7A, 0x48, 0x00,
},
{ // 0x27 apostrophe '
// ##
// ##
// ##
//
//
//
//
//
0x00, 0x00, 0x04, 0x07, 0x03, 0x00, 0x00, 0x00,
},
{ // 0x28 parenthese gauche (
// ##
// ##
// ##
// ##
// ##
// ##
// ##
//
0x00, 0x00, 0x1C, 0x3E, 0x63, 0x41, 0x00, 0x00,
},
{ // 0x29 parenthese droite )
// ##
// ##
// ##
// ##
// ##
// ##
// ##
//
0x00, 0x00, 0x41, 0x63, 0x3E, 0x1C, 0x00, 0x00,
},
{ // 0x2A etoile *
//
// ## ##
// ####
// ########
// ####
// ## ##
//
//
0x08, 0x2A, 0x3E, 0x1C, 0x1C, 0x3E, 0x2A, 0x08,
},
{ // 0x2B plus +
//
// ##
// ##
// ######
// ##
// ##
//
//
0x00, 0x08, 0x08, 0x3E, 0x3E, 0x08, 0x08, 0x00,
},
{ // 0x2C virgule ,
//
//
//
//
//
// ##
// ##
// ##
0x00, 0x00, 0x80, 0xE0, 0x60, 0x00, 0x00, 0x00,
},
{ // 0x2D moins -
//
//
//
// ######
//
//
//
//
0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
},
{ // 0x2E point .
//
//
//
//
//
// ##
// ##
//
0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x00,
},
{ // 0x2F slash /
// ##
// ##
// ##
// ##
// ##
// ##
// #
//
0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x00,
},
/************************************************************
* CHIFFRES
************************************************************/
{ // 0x30 zero 0
// #####
// ## ##
// ## ###
// ## # ##
// ### ##
// ## ##
// #####
//
0x3E, 0x7F, 0x51, 0x49, 0x45, 0x7F, 0x3E, 0x00,
},
{ // 0x31 un 1
// ##
// ###
// ##
// ##
// ##
// ##
// ######
//
0x00, 0x40, 0x42, 0x7F, 0x7F, 0x40, 0x40, 0x00,
},
{ // 0x32 deux 2
// ####
// ## ##
// ##
// ####
// ##
// ## ##
// ######
//
0x00, 0x72, 0x7B, 0x49, 0x49, 0x6F, 0x66, 0x00,
},
{ // 0x33 trois 3
// ####
// # ##
// ##
// ###
// ##
// ## ##
// ####
//
0x00, 0x22, 0x61, 0x49, 0x49, 0x7F, 0x36, 0x00,
},
{ // 0x34 quatre 4
// ##
// ###
// # ##
// # ##
// #######
// ##
// ####
//
0x18, 0x14, 0x52, 0x7F, 0x7F, 0x50, 0x10, 0x00,
},
{ // 0x35 cinq 5
// ######
// ## #
// ##
// ####
// ##
// ## ##
// ####
//
0x00, 0x27, 0x6F, 0x49, 0x49, 0x79, 0x33, 0x00,
},
{ // 0x36 six 6
// ####
// ## ##
// ##
// #####
// ## ##
// ## ##
// ####
//
0x00, 0x3E, 0x7F, 0x49, 0x49, 0x7B, 0x32, 0x00,
},
{ // 0x37 sept 7
// ######
// # ##
// ##
// ##
// ##
// ##
// ##
//
0x00, 0x03, 0x01, 0x71, 0x79, 0x0F, 0x07, 0x00,
},
{ // 0x38 huit 8
// ####
// ## ##
// ## ##
// ####
// ## ##
// ## ##
// ####
//
0x00, 0x36, 0x7F, 0x49, 0x49, 0x7F, 0x36, 0x00,
},
{ // 0x39 neuf 9
// ####
// ## ##
// ## ##
// #####
// ##
// ## ##
// ####
//
0x00, 0x26, 0x6F, 0x49, 0x49, 0x7F, 0x3E, 0x00,
},
{ // 0x3A double point :
//
//
// ##
// ##
//
// ##
// ##
//
0x00, 0x00, 0x00, 0x6C, 0x6C, 0x00, 0x00, 0x00,
},
{ // 0x3B point virgule ;
//
//
// ##
// ##
//
// ##
// ##
// ##
0x00, 0x00, 0x80, 0xEC, 0x6C, 0x00, 0x00, 0x00,
},
{ // 0x3C inferieur <
// ##
// ##
// ##
// ##
// ##
// ##
// ##
//
0x00, 0x08, 0x1C, 0x36, 0x63, 0x41, 0x00, 0x00,
},
{ // 0x3D egale =
//
//
// ######
//
//
// ######
//
//
0x00, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x00,
},
{ // 0x3E superieur >
// ##
// ##
// ##
// ##
// ##
// ##
// ##
//
0x00, 0x41, 0x63, 0x36, 0x1C, 0x08, 0x00, 0x00,
},
{ // 0x3F point interrogation ?
// ####
// ## ##
// ##
// ##
// ##
//
// ##
//
0x00, 0x02, 0x03, 0x51, 0x59, 0x0F, 0x06, 0x00,
},
{ // 0x40 araubas @
// #####
// ## ##
// ## ####
// ## # ##
// ## ####
// ##
// #####
//
0x3E, 0x7F, 0x41, 0x5D, 0x55, 0x5F, 0x1E, 0x00,
},
/************************************************************
* LETTRES MAJUSCULES
************************************************************/
{ // 0x41 A
// ##
// ####
// ## ##
// ## ##
// ######
// ## ##
// ## ##
//
0x00, 0x7C, 0x7E, 0x13, 0x13, 0x7E, 0x7C, 0x00,
},
{ // 0x42 B
// ######
// ## ##
// ## ##
// #####
// ## ##
// ## ##
// ######
//
0x41, 0x7F, 0x7F, 0x49, 0x49, 0x7F, 0x36, 0x00,
},
{ // 0x43 C
// ####
// ## ##
// ##
// ##
// ##
// ## ##
// ####
//
0x1C, 0x3E, 0x63, 0x41, 0x41, 0x63, 0x22, 0x00,
},
{ // 0x44 D
// #####
// ## ##
// ## ##
// ## ##
// ## ##
// ## ##
// #####
//
0x41, 0x7F, 0x7F, 0x41, 0x63, 0x3E, 0x1C, 0x00,
},
{ // 0x45 E
// #######
// ## #
// ## #
// ####
// ## #
// ## #
// #######
//
0x41, 0x7F, 0x7F, 0x49, 0x5D, 0x41, 0x63, 0x00,
},
{ // 0x46 F
// #######
// ## #
// ## #
// ####
// ## #
// ##
// ####
//
0x41, 0x7F, 0x7F, 0x49, 0x1D, 0x01, 0x03, 0x00,
},
{ // 0x47 G
// ####
// ## ##
// ##
// ##
// ## ###
// ## ##
// ######
//
0x3C, 0x7E, 0x43, 0x41, 0x51, 0x73, 0x72, 0x00,
},
{ // 0x48 H
// ## ##
// ## ##
// ## ##
// ######
// ## ##
// ## ##
// ## ##
//
0x00, 0x7F, 0x7F, 0x08, 0x08, 0x7F, 0x7F, 0x00,
},
{ // 0x49 I
// ######
// ##
// ##
// ##
// ##
// ##
// ######
//
0x00, 0x41, 0x41, 0x7F, 0x7F, 0x41, 0x41, 0x00,
},
{ // 0x4A J
// ####
// ##
// ##
// ##
// ## ##
// ## ##
// ####
//
0x30, 0x70, 0x40, 0x41, 0x7F, 0x3F, 0x01, 0x00,
},
{ // 0x4B K
// ### ##
// ## ##
// ## ##
// ####
// ## ##
// ## ##
// ### ##
//
0x41, 0x7F, 0x7F, 0x08, 0x1C, 0x77, 0x63, 0x00,
},
{ // 0x4C L
// ####
// ##
// ##
// ##
// ## #
// ## ##
// #######
//
0x41, 0x7F, 0x7F, 0x41, 0x40, 0x60, 0x70, 0x00,
},
{ // 0x4D M
// ## ##
// ### ###
// #######
// #######
// ## # ##
// ## ##
// ## ##
//
0x7F, 0x7F, 0x0E, 0x1C, 0x0E, 0x7F, 0x7F, 0x00,
},
{ // 0x4E N
// ## ##
// ### ##
// #### ##
// ## ####
// ## ###
// ## ##
// ## ##
//
0x7F, 0x7F, 0x06, 0x0C, 0x18, 0x7F, 0x7F, 0x00,
},
{ // 0x4F O
// ###
// ## ##
// ## ##
// ## ##
// ## ##
// ## ##
// ###
//
0x1C, 0x3E, 0x63, 0x41, 0x63, 0x3E, 0x1C, 0x00,
},
{ // 0x50 P
// ######
// ## ##
// ## ##
// ####
// ##
// ##
// ####
//
0x41, 0x7F, 0x7F, 0x49, 0x09, 0x07, 0x06, 0x00,
},
{ // 0x51 Q
// ###
// ## ##
// ## ##
// ## ##
// ## ## #
// ## ##
// ### ##
//
0x3C, 0x7E, 0x43, 0x51, 0x33, 0x6E, 0x5C, 0x00,
},
{ // 0x52 R
// ######
// ## ##
// ## ##
// #####
// ## ##
// ## ##
// ### #
//
0x41, 0x7F, 0x7F, 0x09, 0x19, 0x3F, 0x66, 0x00,
},
{ // 0x53 S
// ####
// ## ##
// ##
// ####
// ##
// ## ##
// ####
//
0x00, 0x26, 0x6F, 0x49, 0x49, 0x7B, 0x32, 0x00,
},
{ // 0x54 T
// ######
// # ## #
// ##
// ##
// ##
// ##
// ####
//
0x00, 0x03, 0x41, 0x7F, 0x7F, 0x41, 0x03, 0x00,
},
{ // 0x55 U
// ## ##
// ## ##
// ## ##
// ## ##
// ## ##
// ## ##
// ####
//
0x00, 0x3F, 0x7F, 0x40, 0x40, 0x7F, 0x3F, 0x00,
},
{ // 0x56 V
// ## ##
// ## ##
// ## ##
// ## ##
// ## ##
// ####
// ##
//
0x00, 0x1F, 0x3F, 0x60, 0x60, 0x3F, 0x1F, 0x00,
},
{ // 0x57 W
// ## ##
// ## ##
// ## ##
// ## # ##
// #######
// ### ###
// ## ##
//
0x7F, 0x7F, 0x30, 0x18, 0x30, 0x7F, 0x7F, 0x00,
},
{ // 0x58 X
// ## ##
// ## ##
// ###
// ###
// ## ##
// ## ##
// ## ##
//
0x61, 0x73, 0x1E, 0x0C, 0x1E, 0x73, 0x61, 0x00,
},
{ // 0x59 Y
// ## ##
// ## ##
// ## ##
// ####
// ##
// ##
// ####
//
0x00, 0x07, 0x4F, 0x78, 0x78, 0x4F, 0x07, 0x00,
},
{ // 0x5A Z
// #######
// ## ##
// # ##
// ##
// ## #
// ## ##
// #######
//
0x47, 0x63, 0x71, 0x59, 0x4D, 0x67, 0x73, 0x00,
},
/************************************************************/
{ // 0x5B batterie full gauche
// ########
// #
// # # ###
// # ## ###
// # ### ##
// # #### #
// #
// ########
0xFF, 0x81, 0xBD, 0xB9, 0xB5, 0xAD, 0x9D, 0xB9,
},
{ // 0x5C batterie half gauche
// ########
// #
// # #
// # ##
// # ###
// # ####
// #
// ########
0xFF, 0x81, 0xBD, 0xB9, 0xB1, 0xA1, 0x81, 0x81,
},
{ // 0x5D batterie vide gauche
// ########
// #
// #
// #
// #
// #
// #
// ########
0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
},
{ // 0x5E batterie vide droite
// ######
// #
// ###
// #
// #
// ###
// #
// ######
0x81, 0x81, 0x81, 0x81, 0x81, 0xE7, 0x24, 0x3C,
},
{ // 0x5F batterie half droite
// ######
// #
// ###
// #
// # #
// ## ###
// #
// ######
0xB1, 0xA1, 0x81, 0x81, 0x81, 0xE7, 0x24, 0x3C,
},
{ // 0x60 batterie full droite
// ######
// #
// #### ###
// ### ###
// # ## ###
// ## # ###
// #
// ######
0xB5, 0xAD, 0x9D, 0xBD, 0x81, 0xFF, 0x3C, 0x3C,
},
/*
{ // 0x5B crochet gauche [
// ####
// ##
// ##
// ##
// ##
// ##
// ####
//
0x00, 0x00, 0x7F, 0x7F, 0x41, 0x41, 0x00, 0x00,
},
{ // 0x5C anti slash \
// ##
// ##
// ##
// ##
// ##
// ##
// #
//
0x01, 0x03, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x00,
},
{ // 0x5D crochet droit ]
// ####
// ##
// ##
// ##
// ##
// ##
// ####
//
0x00, 0x00, 0x41, 0x41, 0x7F, 0x7F, 0x00, 0x00,
},
{ //0x5E accent circonflexe
// #
// ###
// ## ##
// ## ##
//
//
//
//
0x08, 0x0C, 0x06, 0x03, 0x06, 0x0C, 0x08, 0x00,
},
{ //0x5F tiret bas
//
//
//
//
//
//
//
// ########
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
},
{ //0x60 accent grave
//
// ##
// ##
// ##
//
//
//
//
0x00, 0x00, 0x02, 0x06, 0x0C, 0x08, 0x00, 0x00,
},*/
/************************************************************
* LETTRES MINUSCULES
************************************************************/
{ // 0x61 a
//
//
// ####
// ##
// #####
// ## ##
// ### ##
//
0x20, 0x74, 0x54, 0x54, 0x3C, 0x78, 0x40, 0x00,
},
{ // 0x62 b
// ###
// ###
// #####
// ## ##
// ## ##
// ## ##
// # ####
//
0x43, 0x3F, 0x7F, 0x44, 0x44, 0x7C, 0x38, 0x00,
},
{ // 0x63 c
//
//
// ####
// ## ##
// ##
// ## ##
// ####
//
0x00, 0x38, 0x7C, 0x44, 0x44, 0x6C, 0x28, 0x00,
},
{ // 0x64 d
// ###
// ##
// #####
// ## ##
// ## ##
// ## ##
// ### ##
//
0x38, 0x7C, 0x44, 0x45, 0x3F, 0x7F, 0x40, 0x00,
},
{ // 0x65 e
//
//
// ####
// ## ##
// ######
// ##
// ####
//
0x00, 0x38, 0x7C, 0x54, 0x54, 0x5C, 0x18, 0x00,
},
{ // 0x66 f
// ###
// ## ##
// ##
// ####
// ##
// ##
// ####
//
0x00, 0x48, 0x7E, 0x7F, 0x49, 0x03, 0x02, 0x00,
},
{ // 0x67 g
//
//
// #####
// ## ##
// ## ##
// #####
// ##
// #####
0x00, 0x98, 0xBC, 0xA4, 0xA4, 0xFC, 0x7C, 0x00,
},
{ // 0x68 h
// ###
// ##
// ## ##
// ### ##
// ## ##
// ## ##
// ### ##
//
0x41, 0x7F, 0x7F, 0x08, 0x04, 0x7C, 0x78, 0x00,
},
{ // 0x69 i
// ##
//
// ###
// ##
// ##
// ##
// ####
//
0x00, 0x00, 0x44, 0x7D, 0x7D, 0x40, 0x00, 0x00,
},
{ // 0x6A j
// #
//
// ###
// ##
// ##
// ## ##
// ## ##
// ####
0x00, 0x60, 0xE0, 0x80, 0x84, 0xFC, 0x7D, 0x00,
},
{ // 0x6B k
// ###
// ##
// ## ##
// ## ##
// ####
// ## ##
// ### ##
//
0x41, 0x7F, 0x7F, 0x10, 0x38, 0x6C, 0x44, 0x00,
},
{ // 0x6C l
// ###
// ##
// ##
// ##
// ##
// ##
// ####
//
0x00, 0x00, 0x41, 0x7F, 0x7F, 0x40, 0x00, 0x00,
},
{ // 0x6D m
//
//
// ## ##
// #######
// ## # ##
// ## # ##
// ## ##
//
0x78, 0x7C, 0x0C, 0x38, 0x0C, 0x7C, 0x78, 0x00,
},
{ // 0x6E n
//
//
// ## ##
// ## ##
// ## ##
// ## ##
// ## ##
//
0x04, 0x7C, 0x78, 0x04, 0x04, 0x78, 0x78, 0x00,
},
{ // 0x6F o
//
//
// ####
// ## ##
// ## ##
// ## ##
// ####
//
0x00, 0x38, 0x7C, 0x44, 0x44, 0x7C, 0x38, 0x00,
},
{ // 0x70 p
//
//
// ## ###
// ## ##
// ## ##
// #####
// ##
// ####
0x84, 0xFC, 0xF8, 0xA4, 0x24, 0x3C, 0x18, 0x00,
},
{ // 0x71 q
//
//
// ### ##
// ## ##
// ## ##
// #####
// ##
// ####
0x18, 0x3C, 0x24, 0xA4, 0xF8, 0xFC, 0x84, 0x00
},
{ // 0x72 r
//
//
// ## ##
// ## ##
// ##
// ##
// ####
//
0x44, 0x7C, 0x78, 0x44, 0x0C, 0x08, 0x00, 0x00
},
{ // 0x73 s
//
//
// ####
// ##
// ####
// ##
// #####
//
0x00, 0x48, 0x5C, 0x54, 0x54, 0x74, 0x20, 0x00
},
{ // 0x74 t
// ##
// ##
// #####
// ##
// ##
// ## ##
// ###
//
0x00, 0x04, 0x3F, 0x7F, 0x44, 0x64, 0x20, 0x00
},
{ // 0x75 u
//
//
// ## ##
// ## ##
// ## ##
// ## ##
// #####
//
0x00, 0x3C, 0x7C, 0x40, 0x40, 0x7C, 0x7C, 0x00
},
{ // 0x76 v
//
//
// ## ##
// ## ##
// ## ##
// ####
// ##
//
0x00, 0x1C, 0x3C, 0x60, 0x60, 0x3C, 0x1C, 0x00
},
{ // 0x77 w
//
//
// ## ##
// ## # ##
// ## # ##
// #######
// ## ##
//
0x3C, 0x7C, 0x60, 0x38, 0x60, 0x7C, 0x3C, 0x00
},
{ // 0x78 x
//
//
// ## ##
// ## ##
// ###
// ## ##
// ## ##
//
0x44, 0x6C, 0x38, 0x10, 0x38, 0x6C, 0x44, 0x00
},
{ // 0x79 y
//
//
// ## ##
// ## ##
// ## ##
// #####
// ##
// #####
0x00, 0x9C, 0xBC, 0xA0, 0xA0, 0xFC, 0x7C, 0x00
},
{ // 0x7A z
//
// ######
// # ##
// ##
// ##
// ######
//
//
0x00, 0x26, 0x32, 0x3A, 0x2E, 0x26, 0x22, 0x00
},
/************************************************************/
{ //0x7B bracket gauche
// ###
// ##
// ##
// ###
// ##
// ##
// ###
//
0x00, 0x08, 0x08, 0x3E, 0x77, 0x41, 0x41, 0x00
},
{ //0x7C barre verticale
// ##
// ##
// ##
// ##
// ##
// ##
// ##
//
0x00, 0x00, 0x00, 0x7F, 0x7F, 0x00, 0x00, 0x00
},
{ //0x7D bracket droite
// ###
// ##
// ##
// ###
// ##
// ##
// ###
//
0x00, 0x41, 0x41, 0x77, 0x3E, 0x08, 0x08, 0x00
},
{ //0x7E tilde
// ### ##
// ## ##
//
//
//
//
//
//
0x02, 0x03, 0x01, 0x03, 0x02, 0x01, 0x01, 0x00
}
};
// Table de 50 caracteres 8x8 pixels, servant a afficher le timecode
// stock<63>s en m<>moire flash
static const unsigned char TC[][10] = // declar<61>e static ???
{
// characters are defined as bitmaps
// each byte is a column
// b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 hex char, LSB in top
/************************************************************
* SYMBOLES CHIFFRE 16x16 = 2 caract<63>res de 10x8 **************************************************/
{ // 00 0 up
// #####
// #######
// ### ###
// ## ##
// ## ##
// ## ##
// ## ##
// ## ##
0xFC, 0xFE, 0x07, 0x03, 0x03, 0x03, 0x07, 0xFE, 0xFC, 0x00,
},
{ // 01 0 down
// ## ##
// ## ##
// ## ##
// ## ##
// ## ##
// ### ###
// #######
// #####
0x3F, 0x7F, 0xE0, 0xC0, 0xC0, 0xC0, 0xE0, 0x7F, 0x3F, 0x00,
},
{ // 02 1 up
// ###
// ####
// #####
// ### ##
// ## ##
// ##
// ##
// ##
0x18, 0x1C, 0x0E, 0x07, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
},
{ // 03 1 down
// ##
// ##
// ##
// ##
// ##
// ##
// ########
// ########
0x00, 0xC0, 0xC0, 0xC0, 0xFF, 0xFF, 0xC0, 0xC0, 0xC0, 0x00,
},
{ // 04 2 up
// #####
// #######
// ## ##
// ## ##
// ## ##
// ## ##
// ##
// ###
0x38, 0x3E, 0x07, 0x03, 0x03, 0x03, 0x87, 0xFE, 0xF8, 0x00,
},
{ // 05 2 down
// ###
// ###
// ###
// ###
// ###
// ###
// #########
// #########
0xE0, 0xF0, 0xF8, 0xDC, 0xCE, 0xC7, 0xC3, 0xC1, 0xC0, 0x00,
},
{ // 06 3 up
// ####
// #######
// ### ###
// ## ###
// ##
// ###
// ###
// ####
0x0C, 0x0E, 0x07, 0x83, 0x83, 0xC7, 0xEE, 0x7E, 0x38, 0x00,
},
{ // 07 3 down
// ####
// ###
// ###
// ##
// ## ###
// ### ###
// #######
// ####
0x30, 0x70, 0xE0, 0xC1, 0xC1, 0xE3, 0x77, 0x7E, 0x1C, 0x00,
},
{ // 08 4 up
// ##
// ###
// ####
// #####
// ### ##
// ### ##
// ## ##
// ## ##
0xE0, 0xF0, 0x38, 0x1C, 0x0E, 0xFF, 0xFF, 0x00, 0x00, 0x00,
},
{ // 09 4 down
// ## ##
// #########
// #########
// ##
// ##
// ##
// ##
// ##
0x07, 0x07, 0x06, 0x06, 0x06, 0xFF, 0xFF, 0x06, 0x06, 0x00,
},
{ // 10 5 up
// #########
// #########
// ##
// ##
// ##
// ##
// ######
// ########
0xFF, 0xFF, 0xC3, 0xC3, 0xC3, 0xC3, 0x83, 0x83, 0x03, 0x00,
},
{ // 11 5 down
// ###
// ##
// ##
// ##
// ##
// ####
// ########
// ######
0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xE0, 0x61, 0x7F, 0x3F, 0x00,
},
{ // 12 6 up
// #####
// #######
// ## ###
// ### ##
// ##
// ##
// ##
// #######
0xF8, 0xFE, 0x8F, 0x83, 0x83, 0x83, 0x87, 0x0E, 0x0C, 0x00,
},
{ // 13 6 down
// ########
// ### ###
// ## ##
// ## ##
// ## ##
// ### ###
// #######
// #####
0x3F, 0x7F, 0xE3, 0xC1, 0xC1, 0xC1, 0xE3, 0x7F, 0x3E, 0x00,
},
{ // 14 7 up
// #########
// #########
// ##
// ###
// ###
// ###
// ######
// ######
0x03, 0x03, 0xC3, 0xC3, 0xE3, 0xF3, 0xFB, 0xDF, 0x0F, 0x00,
},
{ // 15 7 down
// ##
// ##
// ##
// ##
// ##
// ##
// ##
// ##
0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
},
{ // 16 8 up
// #####
// #######
// ### ###
// ## ##
// ## ##
// ## ##
// #####
// #######
0x1C, 0xBE, 0xE7, 0xC3, 0xC3, 0xC3, 0xE7, 0xBE, 0x1C, 0x00,
},
{ // 17 8 down
// ### ###
// ## ##
// ## ##
// ## ##
// ## ##
// ### ###
// #######
// #####
0x3F, 0x7F, 0xE1, 0xC0, 0xC0, 0xC0, 0xE1, 0x7F, 0x3F, 0x00,
},
{ // 18 9 up
// #####
// #######
// ### ###
// ## ##
// ## ##
// ## ##
// ### ###
// ########
0x7C, 0xFE, 0xC7, 0x83, 0x83, 0x83, 0xC7, 0xFE, 0xFC, 0x00,
},
{ // 19 9 down
// #######
// ##
// ##
// ##
// ## ###
// ## ###
// #####
// ###
0x10, 0x30, 0x61, 0xC1, 0xC1, 0xE1, 0x71, 0x3F, 0x1F, 0x00,
},
{ // 20 double dot up 4x8
//
//
//
//
// #
// #
//
//
0x00, 0x30, 0x00, 0x00,
},
{ // 21 double dot down 4x8
//
//
// #
// #
//
//
//
//
0x00, 0x0C, 0x00, 0x00,
},
{ // 22 coma up 4x8
//
//
// #
// #
// #
// #
// #
// #
0x00, 0xFC, 0x00, 0x00,
},
{ // 23 coma down 4x8
// #
// #
// #
// #
// #
// #
//
//
0x00, 0x3F, 0x00, 0x00,
},
{ // 24 X up
// ## ##
// ## ##
// ## ##
// ## ##
// ## ##
// ## ##
// ###
// ###
0x03, 0x0F, 0x3C, 0xF0, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0x00,
},
{ // 25 X down
// ###
// ###
// ## ##
// ## ##
// ## ##
// ## ##
// ## ##
// ## ##
0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0x0F, 0x3C, 0xF0, 0xC0, 0x00,
},
{ // 26 NULL
//
//
//
//
//
//
//
//
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
}
};
/************************************************************
* End of Modules
************************************************************/