add bitmap conversion from aseprite ico, add boot animation

This commit is contained in:
2020-01-05 16:46:53 +01:00
parent 6db58e14a7
commit d7cd0e9cfa
37 changed files with 593 additions and 81 deletions
+71
View File
@@ -0,0 +1,71 @@
#include "bitmaps.h"
#include <stddef.h>
#include <string.h>
/* 84x48: boot_logo */
// ····················································································
// ·····································································████████·······
// ························································█████████████····█···██·····
// ···················█·······························█████····█·███·····███······█····
// ······█·█····································██████···██·█████··███████·········█···
// ·······█······························███████····██·█████·█·······███··········█····
// ······█·█······················███████·····███·███████··██···················██·····
// ···························██████·██·███·███·███████████·████·············███·······
// ······················████████████·██··███··█████████·█████·············██·██·······
// ··················█████·██·████···█·████···███████·███·············█████···██·······
// ·············███████████·█████████████···██·······█············█████··█·█·█·██······
// ············██████████·██████████··███████·················█████··█·██·█···███······
// ·········██████··█··████·██·███···████·█···············████···█··███··█······██·····
// ······███·████████████████████··██················█████··█···█·█·█···········█·█····
// ···███████····················██··············████·█····█·····█················█····
// ····██··························█·············█···█····██······················█····
// ··██·····························█·······█·█·█···█····██·······················█····
// ·█······························█·······█·█·█···█·█····························█····
// ·█····························██·······█·█·█·····█····················█········█····
// ··██······················████·█·█·█··█·······························█······█··█···
// ····████···················█··█·█·█··█································█······█··█···
// ·······█···················██·█·██··························█·········█······█··█···
// ·······█····················█·██······█·····················█··········█·····█··█···
// ·······█····················█·█········█··········█··········█·········█·····███····
// ········█···················█··········█···········█·········█·····██████████·······
// ········█····················█·········█············█·········█·███·················
// ········█····················█··········█···········█·······████····················
// ········█·····················█·········█············█·█████························
// ········█······················█·········█·········████·····························
// ········█·······················█········█····█████···██················█·█·········
// ·········█······················█·········█·██···························█··········
// ·········█······················█·······████····························█·█·········
// ·········█······················█····███·····················█······················
// ·········█·······················████·······················███·····················
// ·········█·····················███···························█······················
// ·········█········██████████████····················································
// ··········█·██████·····························································█····
// ···········█····························································█······█····
// ··························································█············█·······█····
// ··████·································█··················█······██····█··█····█····
// ··█···█···██████···█████████····█·····███████···███████···█·····█··█····█·██····█···
// ··█···█··██·····█·█·█··········█·█······█····█·█·█·······█·····█····█···█··█····█···
// ··████····█·····██··█··········█·█······█····█···██████··█·····█····█···█··█····█···
// ··█···█···██████··███████·····█···█·····█···█··███·······█·····█···█·····█·██···█···
// ··█····█··██········█········███████····█··█·····█·······█······█·█······█·█·█·█····
// ··█···█···█·██······█·····██··█····█··█████······█········█████··█········█···█·····
// ██████····█···███····█████···█·····██············█··································
// ··········█·····█···································································
static const uint8_t G_BOOT_LOGO_BYTES[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x20, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0x40, 0xc0, 0xc0, 0x40, 0xc0, 0xa0, 0xa0, 0x20, 0xa0, 0xa0, 0xe0, 0x60, 0xd0, 0x90, 0xd0, 0xd0, 0xf0, 0xf0, 0xc8, 0xe8, 0xe8, 0xb8, 0xb8, 0x64, 0xd4, 0xb4, 0x94, 0x9c, 0x14, 0x0c, 0x0c, 0x1c, 0x14, 0x34, 0x34, 0x34, 0x12, 0x1a, 0x0a, 0x0a, 0x06, 0x82, 0x82, 0x82, 0x44, 0x44, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xc0, 0xc0, 0x60, 0x60, 0x60, 0x50, 0x30, 0x30, 0x38, 0x3c, 0x3c, 0x2c, 0x2c, 0x3c, 0x2e, 0x2e, 0x3e, 0x3e, 0x37, 0x3d, 0x2b, 0x3f, 0x3d, 0x2f, 0x3f, 0x3f, 0x5f, 0x4d, 0xad, 0x25, 0x16, 0x1d, 0x1f, 0x1e, 0x0a, 0x1b, 0x09, 0x0d, 0x04, 0x02, 0x03, 0x03, 0xc3, 0x43, 0x43, 0x43, 0xa5, 0x63, 0x23, 0x22, 0x21, 0x91, 0xd1, 0x31, 0x11, 0x08, 0x08, 0x28, 0x58, 0x2c, 0x04, 0x34, 0x1c, 0x16, 0x0a, 0x0a, 0x16, 0x0a, 0x05, 0x01, 0x04, 0x0b, 0x0f, 0x3c, 0x10, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x09, 0x09, 0x10, 0x10, 0x10, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x38, 0xe8, 0x08, 0xf4, 0x4c, 0x32, 0x29, 0x10, 0x08, 0x00, 0x10, 0x48, 0x84, 0x02, 0x05, 0x02, 0x05, 0x02, 0x01, 0x00, 0x00, 0x02, 0x05, 0x82, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x80, 0x87, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x08, 0x10, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x8c, 0xb0, 0xc0, 0x80, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x11, 0x16, 0x18, 0x30, 0x28, 0x08, 0x08, 0x08, 0x08, 0x04, 0x05, 0x06, 0x04, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0xa1, 0x41, 0xa1, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x0f, 0x10, 0x20, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0c, 0x05, 0x06, 0x02, 0x02, 0x02, 0x01, 0x01, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x02, 0x07, 0x02, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x7f, 0x44, 0x44, 0x44, 0x2b, 0x10, 0x00, 0x02, 0xff, 0x19, 0x29, 0x29, 0x49, 0x49, 0xc6, 0x04, 0x0a, 0x09, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x41, 0x21, 0x21, 0x00, 0x50, 0x38, 0x16, 0x11, 0x16, 0x18, 0x70, 0x40, 0x00, 0x21, 0x21, 0x3f, 0x21, 0x21, 0x11, 0x09, 0x06, 0x00, 0x0a, 0x09, 0x7f, 0x05, 0x05, 0x05, 0x05, 0x05, 0x00, 0x00, 0x1e, 0x21, 0x20, 0x20, 0x20, 0x20, 0x0e, 0x11, 0x20, 0x10, 0x09, 0x06, 0x00, 0x00, 0x00, 0x07, 0x18, 0x21, 0x1f, 0x08, 0x10, 0x20, 0x10, 0x0f, 0x00, 0x00, 0x00 };
static const struct BitmapImage bitmaps[] = {
{ .name="boot_logo", .width=84, .height=48, .bytes=G_BOOT_LOGO_BYTES },
{}
};
const struct BitmapImage *Bitmap_Get(const char *name) {
const struct BitmapImage *ptr = &bitmaps[0];
while (ptr->name) {
if (0 == strcmp(ptr->name, name)) {
return ptr;
}
}
return NULL;
}
+21
View File
@@ -0,0 +1,21 @@
/**
* TODO file description
*
* Created on 2020/01/05.
*/
#ifndef BITMAPS_H
#define BITMAPS_H
#include <stdint.h>
struct BitmapImage {
const char *name;
uint8_t width;
uint8_t height;
const uint8_t* bytes;
};
const struct BitmapImage *Bitmap_Get(const char *name);
#endif //BITMAPS_H
+2 -4
View File
@@ -282,12 +282,10 @@ void LCD_setStrEx(const char *dString, int x, int y, enum Color bw, uint8_t styl
// This function will draw an array over the screen. (For now) the
// array must be the same size as the screen, covering the entirety
// of the display.
// Also, the array must reside in FLASH and declared with PROGMEM.
void LCD_setBitmap(const char *bitArray)
void LCD_setBitmap(const uint8_t *bitArray)
{
for (int i = 0; i < (LCD_WIDTH * LCD_HEIGHT / 8); i++) {
char c = bitArray[i];
LCD_displayMap[i] = c;
LCD_displayMap[i] = bitArray[i];
}
}
+5 -3
View File
@@ -4,8 +4,8 @@
* Created on 2020/01/05.
*/
#ifndef REFLOWER_DRAWING_H
#define REFLOWER_DRAWING_H
#ifndef LCD_DRAWING_H
#define LCD_DRAWING_H
#include <stdint.h>
#include <stdbool.h>
@@ -34,6 +34,8 @@ void LCD_setRect(int x0, int y0, int x1, int y1, bool fill, enum Color bw);
// thickness ranging from 1 to the radius of the circle.
void LCD_setCircle (int x0, int y0, int radius, enum Color bw, int lineThickness);
void LCD_setBitmap(const uint8_t *bitArray);
/*
FONT FUNCTIONS
size = 1 ... normal
@@ -72,4 +74,4 @@ void LCD_clearDisplay(enum Color bw);
/* Invert colors (hard change in data; does NOT send to display immediately) */
void LCD_invertDisplayData();
#endif //REFLOWER_DRAWING_H
#endif //LCD_DRAWING_H
+3 -3
View File
@@ -2,8 +2,8 @@
* Driver for Nokia 5110 SPI LCD display
*/
#ifndef GFX_NOKIA
#define GFX_NOKIA
#ifndef GFX_NOKIA_H
#define GFX_NOKIA_H
/* Pin definitions:
Most of these pins can be moved to any digital or analog pin.
@@ -36,4 +36,4 @@ void LCD_invertDisplay(bool invert);
//This sends the magical commands to the PCD8544
void LCD_setup(void);
#endif // GFX_NOKIA
#endif // GFX_NOKIA_H