diff --git a/pov-led-globe/globe-timed-experimental b/pov-led-globe/globe-timed-experimental deleted file mode 160000 index 4eaff23..0000000 --- a/pov-led-globe/globe-timed-experimental +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 4eaff23a1d463fd916f5a983fd202e0707c12af7 diff --git a/pov-led-globe/globe-timed-experimentalsd/Makefile b/pov-led-globe/globe-timed-experimentalsd/Makefile new file mode 100644 index 0000000..6a7defa --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/Makefile @@ -0,0 +1,154 @@ + +MCU = attiny13 + +F_CPU = 9600000 + +LFUSE = 0x7A +HFUSE = 0xFF +EFUSE = 0x00 + +MAIN = main.c + +## If you've split your program into multiple files, +## include the additional .c source (in same directory) here +## (and include the .h files in your foo.c) +LOCAL_SOURCE = + +## Here you can link to one more directory (and multiple .c files) +# EXTRA_SOURCE_DIR = ../AVR-Programming-Library/ +EXTRA_SOURCE_DIR = +EXTRA_SOURCE_FILES = + + + +##########------------------------------------------------------########## +########## Programmer Defaults ########## +########## Set up once, then forget about it ########## +########## (Can override. See bottom of file.) ########## +##########------------------------------------------------------########## + +PROGRAMMER_TYPE = dragon_isp +PROGRAMMER_ARGS = + + +##########------------------------------------------------------########## +########## Makefile Magic! ########## +########## Summary: ########## +########## We want a .hex file ########## +########## Compile source files into .elf ########## +########## Convert .elf file into .hex ########## +########## You shouldn't need to edit below. ########## +##########------------------------------------------------------########## + +## Defined programs / locations +CC = avr-gcc +OBJCOPY = avr-objcopy +OBJDUMP = avr-objdump +AVRSIZE = avr-size +AVRDUDE = sudo avrdude + +## Compilation options, type man avr-gcc if you're curious. +CFLAGS = -std=gnu99 -mmcu=$(MCU) -DF_CPU=$(F_CPU)UL -Os -I. -I$(EXTRA_SOURCE_DIR) +CFLAGS += -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums +CFLAGS += -Wall -Wstrict-prototypes +CFLAGS += -g2 -ggdb +CFLAGS += -ffunction-sections -fdata-sections -Wl,--gc-sections -Wl,--relax +CFLAGS += -std=gnu99 +# CFLAGS += -lm +## CFLAGS += -Wl,-u,vfprintf -lprintf_flt -lm ## for floating-point printf +## CFLAGS += -Wl,-u,vfprintf -lprintf_min ## for smaller printf + +## Lump target and extra source files together +TARGET = $(strip $(basename $(MAIN))) +SRC = $(TARGET).c +EXTRA_SOURCE = $(addprefix $(EXTRA_SOURCE_DIR), $(EXTRA_SOURCE_FILES)) +SRC += $(EXTRA_SOURCE) +SRC += $(LOCAL_SOURCE) + +## List of all header files +HEADERS = $(SRC:.c=.h) + +## For every .c file, compile an .o object file +OBJ = $(SRC:.c=.o) + +## Generic Makefile targets. (Only .hex file is necessary) +all: $(TARGET).hex size + +%.hex: %.elf + $(OBJCOPY) -R .eeprom -O ihex $< $@ + +%.elf: $(SRC) + $(CC) $(CFLAGS) $(SRC) --output $@ + +%.eeprom: %.elf + $(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O ihex $< $@ + +debug: + @echo + @echo "Source files:" $(SRC) + @echo "MCU, F_CPU, BAUD:" $(MCU), $(F_CPU), $(BAUD) + @echo + +# Optionally create listing file from .elf +# This creates approximate assembly-language equivalent of your code. +# Useful for debugging time-sensitive bits, +# or making sure the compiler does what you want. +disassemble: $(TARGET).lst + +dis: disassemble + +eeprom: $(TARGET).eeprom + +%.lst: %.elf + $(OBJDUMP) -S $< > $@ + +# Optionally show how big the resulting program is +size: $(TARGET).elf + $(AVRSIZE) -C --mcu=$(MCU) $(TARGET).elf + +clean: + rm -f $(TARGET).elf $(TARGET).hex $(TARGET).obj \ + $(TARGET).o $(TARGET).d $(TARGET).eep $(TARGET).lst \ + $(TARGET).lss $(TARGET).sym $(TARGET).map $(TARGET)~ \ + $(TARGET).eeprom + +squeaky_clean: + rm -f *.elf *.hex *.obj *.o *.d *.eep *.lst *.lss *.sym *.map *~ + + +##########------------------------------------------------------########## +########## Programmer-specific details ########## +########## Flashing code to AVR using avrdude ########## +##########------------------------------------------------------########## + +flash: $(TARGET).hex + $(AVRDUDE) -c $(PROGRAMMER_TYPE) -p $(MCU) $(PROGRAMMER_ARGS) -U flash:w:$< + +flash_eeprom: $(TARGET).eeprom + $(AVRDUDE) -c $(PROGRAMMER_TYPE) -p $(MCU) $(PROGRAMMER_ARGS) -U eeprom:w:$< + +terminal: + $(AVRDUDE) -c $(PROGRAMMER_TYPE) -p $(MCU) $(PROGRAMMER_ARGS) -nt + + +flash_dragon_isp: PROGRAMMER_TYPE = dragon_isp +flash_dragon_isp: PROGRAMMER_ARGS = +flash_dragon_isp: flash + + +##########------------------------------------------------------########## +########## Fuse settings and suitable defaults ########## +##########------------------------------------------------------########## + +## Generic +FUSE_STRING = -U lfuse:w:$(LFUSE):m -U hfuse:w:$(HFUSE):m -U efuse:w:$(EFUSE):m + +fuses: + $(AVRDUDE) -c $(PROGRAMMER_TYPE) -p $(MCU) \ + $(PROGRAMMER_ARGS) $(FUSE_STRING) +show_fuses: + $(AVRDUDE) -c $(PROGRAMMER_TYPE) -p $(MCU) $(PROGRAMMER_ARGS) -nv + +## Called with no extra definitions, sets to defaults +set_default_fuses: FUSE_STRING = -U lfuse:w:$(LFUSE):m -U hfuse:w:$(HFUSE):m -U efuse:w:$(EFUSE):m +set_default_fuses: fuses diff --git a/pov-led-globe/globe-timed-experimentalsd/image/README.txt b/pov-led-globe/globe-timed-experimentalsd/image/README.txt new file mode 100644 index 0000000..f34df8a --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/image/README.txt @@ -0,0 +1,47 @@ +How to generate image header file +================================= + +(intended for Linux - dunno how it works in Windoze) + + +1. Draw image in Gimp, with height a multiple of 8 (8, 16, 32... - how many + LEDs you have) + +2. Set collor mode to indexed (black & white) - and make sure WHITE is where + you want your leds to light up, black where you want dark. + +3. Export as C header file (eg. snowflake.h) + + +Now use the getbytes.py script to transform it: + + $ python3 getbytes.py snowflake.h + + #define ROWS 2 + #define COLS 15 + + const uint8_t image[COLS][ROWS] PROGMEM = { + { 0b00000001, 0b11000000 }, // ███ + { 0b00010000, 0b10000100 }, // █ █ █ + { 0b00111000, 0b10001110 }, // ███ █ ███ + { 0b00011101, 0b11001100 }, // ███ ███ ██ + { 0b00001100, 0b10011000 }, // ██ █ ██ + { 0b00000010, 0b10100000 }, // █ █ █ + { 0b01001001, 0b11001001 }, // █ █ ███ █ █ + { 0b11111111, 0b11111111 }, //████████████████ + { 0b01001001, 0b11001001 }, // █ █ ███ █ █ + { 0b00000010, 0b10100000 }, // █ █ █ + { 0b00001100, 0b10010000 }, // ██ █ █ + { 0b00011001, 0b11011100 }, // ██ ███ ███ + { 0b00111000, 0b10001110 }, // ███ █ ███ + { 0b00010000, 0b10000100 }, // █ █ █ + { 0b00000001, 0b11000000 }, // ███ + }; + +That will show you the transformed header file. + +To store it: + + $ python3 getbytes.py snowflake.h > ../image_snowflake.h + +Now, in your main.c file, just include it (remove the old image import). diff --git a/pov-led-globe/globe-timed-experimentalsd/image/aliensflip16.h b/pov-led-globe/globe-timed-experimentalsd/image/aliensflip16.h new file mode 100644 index 0000000..d5f559a --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/image/aliensflip16.h @@ -0,0 +1,321 @@ +/* GIMP header image file format (INDEXED): /home/ondra/devel/elektro/avr/projects/c/led-display/image/aliensflip16.h */ + +static unsigned int width = 42; +static unsigned int height = 16; + +/* Call this macro repeatedly. After each use, the pixel data can be extracted */ + +#define HEADER_PIXEL(data,pixel) {\ +pixel[0] = header_data_cmap[(unsigned char)data[0]][0]; \ +pixel[1] = header_data_cmap[(unsigned char)data[0]][1]; \ +pixel[2] = header_data_cmap[(unsigned char)data[0]][2]; \ +data ++; } + +static char header_data_cmap[256][3] = { + { 0, 0, 0}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255} + }; +static char header_data[] = { + 0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0, + 0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0, + 0,0,0,1,0,0,0,1,0,0, + 0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0, + 0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0, + 0,0,0,0,1,0,1,0,0,0, + 0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1, + 1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0, + 0,0,0,1,1,1,1,1,0,0, + 0,1,0,0,1,0,0,1,0,0,0,1,1,0,1,1, + 1,0,1,1,0,0,1,1,0,1,1,1,0,1,1,0, + 0,0,1,0,0,1,0,0,1,0, + 1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 0,1,1,1,1,1,1,1,1,1, + 1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,1, + 1,1,1,0,1,1,0,1,1,1,1,1,1,1,0,1, + 0,1,0,1,1,1,1,1,0,1, + 1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0, + 0,0,1,0,1,1,0,1,0,0,0,0,0,1,0,1, + 0,1,0,1,0,0,0,1,0,1, + 0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0, + 1,1,0,0,0,0,0,0,1,1,0,1,1,0,0,0, + 0,0,0,0,1,0,1,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1, + 1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,1, + 1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0, + 0,0,0,0,1,0,1,0,0,0, + 0,0,1,1,1,1,1,0,0,0,0,0,1,0,0,1, + 0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0, + 0,0,0,1,1,1,1,1,0,0, + 0,0,1,0,1,0,1,0,0,0,0,0,1,1,1,1, + 1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0, + 0,0,0,1,0,1,0,1,0,0, + 0,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1, + 1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0, + 0,0,1,1,1,1,1,1,1,0, + 1,1,0,1,0,1,0,1,1,0,0,0,1,0,1,0, + 1,0,1,0,0,0,0,1,0,1,0,1,0,1,0,0, + 0,1,1,0,1,0,1,0,1,1, + 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0, + 0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0, + 0,0,0,0,0,0,0,0,0,0 + }; diff --git a/pov-led-globe/globe-timed-experimentalsd/image/butt.h b/pov-led-globe/globe-timed-experimentalsd/image/butt.h new file mode 100644 index 0000000..c28118a --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/image/butt.h @@ -0,0 +1,321 @@ +/* GIMP header image file format (INDEXED): /home/ondra/devel/elektro/avr/projects/c/globus/image/butt.h */ + +static unsigned int width = 46; +static unsigned int height = 16; + +/* Call this macro repeatedly. After each use, the pixel data can be extracted */ + +#define HEADER_PIXEL(data,pixel) {\ +pixel[0] = header_data_cmap[(unsigned char)data[0]][0]; \ +pixel[1] = header_data_cmap[(unsigned char)data[0]][1]; \ +pixel[2] = header_data_cmap[(unsigned char)data[0]][2]; \ +data ++; } + +static char header_data_cmap[256][3] = { + { 0, 0, 0}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255} + }; +static char header_data[] = { + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1, + 0,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1, + 1,1,0,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1, + 0,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1, + 1,1,0,1,1,1,1,1,1,1,1,1,1,1, + 0,1,1,1,0,0,1,1,1,0,0,0,0,1,1,1, + 0,0,1,1,1,0,0,1,1,0,0,1,1,1,0,0, + 1,1,0,1,1,0,0,1,1,1,0,0,1,1, + 0,1,1,1,0,0,1,1,1,0,0,0,0,1,1,1, + 0,0,1,1,1,0,0,1,1,0,0,1,1,1,0,0, + 1,1,0,1,1,0,0,1,1,1,0,0,1,1, + 0,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1, + 0,0,1,1,1,0,0,1,1,0,0,1,1,1,0,0, + 1,1,0,1,1,0,0,1,1,1,0,0,1,1, + 0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1, + 0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0, + 0,0,0,0,0,0,0,1,1,1,0,0,0,0, + 0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1, + 0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0, + 0,0,0,0,0,0,0,1,1,1,0,0,0,0, + 0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1, + 0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0, + 0,0,0,0,0,0,0,1,1,1,0,0,0,0, + 0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1, + 0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0, + 0,0,0,0,0,0,0,1,1,1,0,0,0,0, + 1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1, + 1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1, + 0,0,0,0,0,1,1,1,1,1,1,1,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1 + }; diff --git a/pov-led-globe/globe-timed-experimentalsd/image/checker3264.h b/pov-led-globe/globe-timed-experimentalsd/image/checker3264.h new file mode 100644 index 0000000..1281b15 --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/image/checker3264.h @@ -0,0 +1,401 @@ +/* GIMP header image file format (INDEXED): /home/ondra/devel/avr/projects/c/led-display/image/checker3264.h */ + +static unsigned int width = 64; +static unsigned int height = 32; + +/* Call this macro repeatedly. After each use, the pixel data can be extracted */ + +#define HEADER_PIXEL(data,pixel) {\ +pixel[0] = header_data_cmap[(unsigned char)data[0]][0]; \ +pixel[1] = header_data_cmap[(unsigned char)data[0]][1]; \ +pixel[2] = header_data_cmap[(unsigned char)data[0]][2]; \ +data ++; } + +static char header_data_cmap[256][3] = { + { 0, 0, 0}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255} + }; +static char header_data[] = { + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0 + }; diff --git a/pov-led-globe/globe-timed-experimentalsd/image/checker3264.xcf b/pov-led-globe/globe-timed-experimentalsd/image/checker3264.xcf new file mode 100644 index 0000000..3bd511c Binary files /dev/null and b/pov-led-globe/globe-timed-experimentalsd/image/checker3264.xcf differ diff --git a/pov-led-globe/globe-timed-experimentalsd/image/checker3264numbers.h b/pov-led-globe/globe-timed-experimentalsd/image/checker3264numbers.h new file mode 100644 index 0000000..e438a1f --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/image/checker3264numbers.h @@ -0,0 +1,401 @@ +/* GIMP header image file format (INDEXED): /home/ondra/devel/avr/projects/c/led-display/image/checker3264numbers.h */ + +static unsigned int width = 64; +static unsigned int height = 32; + +/* Call this macro repeatedly. After each use, the pixel data can be extracted */ + +#define HEADER_PIXEL(data,pixel) {\ +pixel[0] = header_data_cmap[(unsigned char)data[0]][0]; \ +pixel[1] = header_data_cmap[(unsigned char)data[0]][1]; \ +pixel[2] = header_data_cmap[(unsigned char)data[0]][2]; \ +data ++; } + +static char header_data_cmap[256][3] = { + { 0, 0, 0}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255} + }; +static char header_data[] = { + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,1,0,0,0,0,1,1,0,0,1,1,1,1, + 0,0,1,1,0,0,0,0,1,0,1,1,1,1,1,1, + 0,0,1,1,1,1,0,0,1,1,0,0,0,1,1,1, + 0,1,1,1,1,0,0,0,1,1,0,0,0,0,1,1, + 0,0,1,1,0,0,0,0,1,0,1,1,0,1,1,1, + 0,1,0,0,1,0,0,0,1,0,1,0,1,1,1,1, + 0,0,1,0,0,0,0,0,1,0,1,1,1,1,1,1, + 0,1,0,0,1,0,0,0,1,1,0,1,1,0,1,1, + 0,0,0,1,0,0,0,0,1,1,1,1,0,1,1,1, + 0,0,0,1,1,0,0,0,1,0,0,0,0,1,1,1, + 0,0,1,1,1,1,0,0,1,0,1,1,1,1,1,1, + 0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1, + 0,0,0,1,0,0,0,0,1,1,1,0,1,1,1,1, + 0,0,0,0,1,0,0,0,1,1,1,0,1,1,1,1, + 0,0,0,0,0,1,0,0,1,0,0,0,0,1,1,1, + 0,0,1,1,1,1,1,0,1,0,1,1,1,0,1,1, + 0,0,0,1,0,0,0,0,1,1,0,1,1,1,1,1, + 0,1,0,0,1,0,0,0,1,1,1,0,1,1,1,1, + 0,1,0,0,0,1,0,0,1,0,1,1,0,1,1,1, + 0,0,0,0,1,0,0,0,1,0,1,1,1,0,1,1, + 0,0,1,1,1,0,0,0,1,0,0,0,0,1,1,1, + 0,1,1,1,0,0,0,0,1,1,1,0,1,1,1,1, + 0,0,1,1,1,0,0,0,1,0,0,0,0,1,1,1, + 0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,0, + 1,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,0, + 1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0 + }; diff --git a/pov-led-globe/globe-timed-experimentalsd/image/checker3264numbers.xcf b/pov-led-globe/globe-timed-experimentalsd/image/checker3264numbers.xcf new file mode 100644 index 0000000..c277dfd Binary files /dev/null and b/pov-led-globe/globe-timed-experimentalsd/image/checker3264numbers.xcf differ diff --git a/pov-led-globe/globe-timed-experimentalsd/image/getbytes.py b/pov-led-globe/globe-timed-experimentalsd/image/getbytes.py new file mode 100755 index 0000000..0e72a34 --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/image/getbytes.py @@ -0,0 +1,73 @@ +#!/bin/env python3 + +import sys +import re + +file = open(sys.argv[1], 'r') + +src = file.read() + +matches = re.search(r'static unsigned int width = (\d*);', src) +width = int(matches.groups(1)[0]) + +matches = re.search(r'static unsigned int height = (\d*);', src) +height = int(matches.groups(1)[0]) + + +matches = re.search(r'static char header_data_cmap\[\d+\]\[\d+\] = \{\n\s*(\{.*?\}),\s*(\{.*?\})', src, flags=re.S) +s = matches.groups(1)[0] +t = matches.groups(1)[1] + +if s == '{255,255,255}' and t == '{ 0, 0, 0}': + inverted=True +elif s == '{ 0, 0, 0}' and t == '{255,255,255}': + inverted=False +else: + raise Exception('Wrong colors') + + + + +matches = re.search(r'static char header_data\[\] = \{(.*?)\};', src, flags=re.S) +s = matches.groups(1)[0] + +# clean up - leave only numbers +s = re.sub(r'[\s,]', '', s).strip() + +s = [s[x:x+width] for x in range(0,width*height,width)] + +cols = [''.join(i) for i in zip(*s)] + +bc = 0 + +print(""" +#define ROWS {r} +#define COLS {c} + +const uint8_t image[COLS][ROWS] PROGMEM = {{""".format(r=int(height/8), c=width)) + +for c in cols: + + # convert colors based on pallete + if inverted: + c=c.translate({ + ord('0'): ord('1'), + ord('1'): ord('0') + }) + + + bytz = ['0b{}'.format(c[x:x+8]) for x in range(0,len(c),8)] + + print('\t{ ', end="") + + print(', '.join(bytz), end="") + + print(' }, //', end="") + + print(c.translate({ + ord('0'): ord(' '), + ord('1'): ord('█') + })) + +print('};\n') + diff --git a/pov-led-globe/globe-timed-experimentalsd/image/globus.h b/pov-led-globe/globe-timed-experimentalsd/image/globus.h new file mode 100644 index 0000000..f60bbb6 --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/image/globus.h @@ -0,0 +1,401 @@ +/* GIMP header image file format (INDEXED): /home/ondra/devel/elektro/avr/projects/c/led-display/image/globus.h */ + +static unsigned int width = 58; +static unsigned int height = 32; + +/* Call this macro repeatedly. After each use, the pixel data can be extracted */ + +#define HEADER_PIXEL(data,pixel) {\ +pixel[0] = header_data_cmap[(unsigned char)data[0]][0]; \ +pixel[1] = header_data_cmap[(unsigned char)data[0]][1]; \ +pixel[2] = header_data_cmap[(unsigned char)data[0]][2]; \ +data ++; } + +static char header_data_cmap[256][3] = { + { 0, 0, 0}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255} + }; +static char header_data[] = { + 0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,1,0,0,0,0,1,1,1,1,0,0,0, + 0,1,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,1,1,1,0,1,0,1,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,1,0,0,0,0,1,1,1,1,1,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1, + 1,1,1,0,0,0,0,0,0,0, + 0,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1, + 0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,0,1,0,0,0, + 0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1, + 1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,0, + 0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1, + 1,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,0,0, + 0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1, + 1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,0,0, + 0,1,1,0,1,1,1,1,1,1,1,1,0,0,1,1, + 1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,0,1,1,0,0,0,0, + 0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1, + 1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,0,0,0,1,0,0,0,0,0, + 0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1, + 1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1, + 1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1, + 1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0, + 0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0, + 0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0, + 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, + 1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,1,1,1,0,0,1,0, + 0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,1,0,1,1,1,1,1,1,1,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, + 1,1,1,1,0,0,1,1,0,0,1,1,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1, + 1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1, + 1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1, + 1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1, + 1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1, + 1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1, + 1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0, + 0,1,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1, + 1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1, + 1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, + 1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1, + 1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1, + 1,1,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1, + 1,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1, + 1,1,1,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1, + 1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1, + 1,1,1,1,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1, + 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1, + 1,1,1,1,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,1,1,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, + 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, + 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0 + }; diff --git a/pov-led-globe/globe-timed-experimentalsd/image/globus.xcf b/pov-led-globe/globe-timed-experimentalsd/image/globus.xcf new file mode 100644 index 0000000..2367793 Binary files /dev/null and b/pov-led-globe/globe-timed-experimentalsd/image/globus.xcf differ diff --git a/pov-led-globe/globe-timed-experimentalsd/image/logo16.h b/pov-led-globe/globe-timed-experimentalsd/image/logo16.h new file mode 100644 index 0000000..bf82e2c --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/image/logo16.h @@ -0,0 +1,289 @@ +/* GIMP header image file format (INDEXED): /home/ondra/devel/elektro/avr/projects/c/globus/image/logo16.h */ + +static unsigned int width = 16; +static unsigned int height = 16; + +/* Call this macro repeatedly. After each use, the pixel data can be extracted */ + +#define HEADER_PIXEL(data,pixel) {\ +pixel[0] = header_data_cmap[(unsigned char)data[0]][0]; \ +pixel[1] = header_data_cmap[(unsigned char)data[0]][1]; \ +pixel[2] = header_data_cmap[(unsigned char)data[0]][2]; \ +data ++; } + +static char header_data_cmap[256][3] = { + {255,255,255}, + { 0, 0, 0}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255} + }; +static char header_data[] = { + 1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1, + 1,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1, + 1,1,0,1,0,1,0,1,1,0,1,0,1,0,1,1, + 1,0,1,1,1,0,0,1,1,0,0,1,1,1,0,1, + 1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0, + 1,1,1,0,1,1,1,1,1,0,1,1,0,0,0,1, + 0,0,0,0,1,1,1,1,0,0,1,0,0,0,1,0, + 0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,0, + 0,1,1,0,1,1,0,0,0,0,0,0,1,1,1,0, + 0,0,1,0,1,0,0,1,0,0,0,1,0,0,0,0, + 1,1,1,0,0,0,1,1,0,0,1,1,0,1,1,1, + 1,1,0,0,0,1,1,1,1,1,1,1,1,0,1,1, + 1,1,0,0,0,0,0,1,1,0,0,1,1,1,0,1, + 1,0,0,0,0,1,1,1,1,0,1,0,1,0,1,1, + 1,0,1,1,1,1,0,1,1,0,1,1,0,1,1,1, + 1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1 + }; diff --git a/pov-led-globe/globe-timed-experimentalsd/image/logo16.xcf b/pov-led-globe/globe-timed-experimentalsd/image/logo16.xcf new file mode 100644 index 0000000..ac0cd21 Binary files /dev/null and b/pov-led-globe/globe-timed-experimentalsd/image/logo16.xcf differ diff --git a/pov-led-globe/globe-timed-experimentalsd/image/logo32.h b/pov-led-globe/globe-timed-experimentalsd/image/logo32.h new file mode 100644 index 0000000..0ae3139 --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/image/logo32.h @@ -0,0 +1,337 @@ +/* GIMP header image file format (INDEXED): /home/ondra/devel/elektro/avr/projects/c/globus/image/logo32.h */ + +static unsigned int width = 32; +static unsigned int height = 32; + +/* Call this macro repeatedly. After each use, the pixel data can be extracted */ + +#define HEADER_PIXEL(data,pixel) {\ +pixel[0] = header_data_cmap[(unsigned char)data[0]][0]; \ +pixel[1] = header_data_cmap[(unsigned char)data[0]][1]; \ +pixel[2] = header_data_cmap[(unsigned char)data[0]][2]; \ +data ++; } + +static char header_data_cmap[256][3] = { + { 0, 0, 0}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255} + }; +static char header_data[] = { + 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1, + 1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0, + 0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0, + 0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0, + 0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1, + 1,1,1,1,1,1,0,0,1,1,0,0,0,0,0,0, + 0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0, + 0,1,1,0,0,1,1,1,1,1,1,0,0,0,0,0, + 0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0, + 0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,0, + 0,0,0,1,1,0,0,0,1,1,0,0,0,1,0,0, + 1,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0, + 0,0,1,1,0,0,0,1,1,1,1,0,0,1,0,0, + 1,0,0,0,0,1,1,1,1,0,0,0,1,1,0,0, + 0,1,1,1,0,0,1,1,0,0,1,1,1,1,0,1, + 0,0,0,0,0,1,0,0,1,0,0,0,1,1,0,0, + 0,1,1,0,0,0,0,1,0,0,0,0,0,0,1,0, + 0,0,0,0,1,0,0,0,1,0,0,0,0,1,1,0, + 0,1,1,0,0,0,0,1,1,0,0,0,0,0,1,0, + 0,0,0,1,0,0,0,1,1,0,0,0,0,1,1,0, + 0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0, + 0,0,1,0,0,0,1,1,0,0,0,0,0,0,1,0, + 1,1,0,0,0,0,0,0,1,1,0,0,1,1,0,0, + 0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,1, + 1,1,0,0,0,1,1,1,1,1,1,1,1,0,0,1, + 1,1,1,1,0,0,1,1,1,1,1,0,0,0,1,1, + 1,0,0,0,1,1,0,0,0,0,1,1,0,0,1,0, + 0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1, + 1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0, + 0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1, + 1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0, + 0,1,0,0,1,0,0,0,0,0,0,1,1,0,0,1, + 1,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1, + 1,0,0,1,0,0,0,1,1,1,1,1,0,0,0,1, + 1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,1, + 0,0,1,1,0,0,1,1,1,0,0,0,0,0,1,1, + 1,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0, + 0,0,1,0,0,0,1,1,0,0,0,0,0,0,1,1, + 0,1,0,0,0,0,0,0,1,0,0,0,1,0,1,0, + 0,1,1,0,0,0,0,1,0,0,0,0,0,0,1,0, + 0,1,1,0,0,0,0,1,1,0,0,1,0,1,0,0, + 1,1,1,0,0,0,0,1,1,0,0,0,0,1,1,0, + 0,1,1,0,0,0,1,1,0,0,0,1,0,0,0,0, + 1,0,1,1,1,0,0,0,1,0,0,0,0,1,1,0, + 0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0, + 0,0,1,0,1,1,0,0,1,0,0,0,1,1,0,0, + 0,0,1,1,0,0,0,1,1,1,1,1,0,0,0,0, + 1,1,1,0,0,1,1,1,1,0,0,0,1,1,0,0, + 0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,1, + 1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0, + 0,0,0,0,1,1,0,0,0,0,0,1,0,1,1,0, + 0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0, + 0,0,0,0,0,1,1,0,0,0,0,1,1,1,0,1, + 1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0, + 0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0, + 0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0, + 0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1, + 1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0 + }; diff --git a/pov-led-globe/globe-timed-experimentalsd/image/logo32.xcf b/pov-led-globe/globe-timed-experimentalsd/image/logo32.xcf new file mode 100644 index 0000000..17a843f Binary files /dev/null and b/pov-led-globe/globe-timed-experimentalsd/image/logo32.xcf differ diff --git a/pov-led-globe/globe-timed-experimentalsd/image/pig.h b/pov-led-globe/globe-timed-experimentalsd/image/pig.h new file mode 100644 index 0000000..486df97 --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/image/pig.h @@ -0,0 +1,289 @@ +/* GIMP header image file format (INDEXED): /home/ondra/devel/elektro/avr/projects/c/globus/image/piig.h */ + +static unsigned int width = 16; +static unsigned int height = 16; + +/* Call this macro repeatedly. After each use, the pixel data can be extracted */ + +#define HEADER_PIXEL(data,pixel) {\ +pixel[0] = header_data_cmap[(unsigned char)data[0]][0]; \ +pixel[1] = header_data_cmap[(unsigned char)data[0]][1]; \ +pixel[2] = header_data_cmap[(unsigned char)data[0]][2]; \ +data ++; } + +static char header_data_cmap[256][3] = { + { 0, 0, 0}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255} + }; +static char header_data[] = { + 1,1,1,0,0,0,0,1,0,1,0,0,0,0,0,0, + 1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0, + 1,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, + 1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0, + 0,0,1,1,1,1,0,0,0,0,0,1,0,0,0,0, + 0,0,1,1,0,0,0,1,1,0,0,0,1,1,1,0, + 0,0,1,0,0,0,0,1,1,0,0,1,0,0,0,1, + 0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,1, + 0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1, + 0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1, + 0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,1, + 0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1, + 0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0, + 0,0,1,0,1,0,1,0,0,1,0,0,0,0,0,0, + 0,0,1,0,1,0,1,0,0,1,0,0,0,0,0,0, + 0,1,1,0,1,0,1,1,0,1,1,0,0,0,0,0 + }; diff --git a/pov-led-globe/globe-timed-experimentalsd/image/pig16.h b/pov-led-globe/globe-timed-experimentalsd/image/pig16.h new file mode 100644 index 0000000..f431a21 --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/image/pig16.h @@ -0,0 +1,31 @@ +/* GIMP header image file format (RGB): /home/ondra/devel/elektro/avr/projects/c/globus/image/pig16.h */ + +static unsigned int width = 16; +static unsigned int height = 16; + +/* Call this macro repeatedly. After each use, the pixel data can be extracted */ + +#define HEADER_PIXEL(data,pixel) {\ +pixel[0] = (((data[0] - 33) << 2) | ((data[1] - 33) >> 4)); \ +pixel[1] = ((((data[1] - 33) & 0xF) << 4) | ((data[2] - 33) >> 2)); \ +pixel[2] = ((((data[2] - 33) & 0x3) << 6) | ((data[3] - 33))); \ +data += 4; \ +} +static char *header_data = + "````````````!!!!!!!!!!!!!!!!````!!!!````!!!!!!!!!!!!!!!!!!!!!!!!" + "````!!!!````!!!!!!!!!!!!````!!!!````!!!!````!!!!!!!!!!!!!!!!!!!!" + "````!!!!!!!!!!!!!!!!!!!!````!!!!````!!!!````!!!!!!!!!!!!!!!!!!!!" + "````````````````````````````````````````````````!!!!!!!!!!!!!!!!" + "!!!!!!!!````````````````!!!!!!!!!!!!!!!!!!!!````!!!!!!!!!!!!!!!!" + "!!!!!!!!````````!!!!!!!!!!!!````````!!!!!!!!!!!!````````````!!!!" + "!!!!!!!!````!!!!!!!!!!!!!!!!````````!!!!!!!!````!!!!!!!!!!!!````" + "!!!!!!!!````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````!!!!````!!!!````" + "!!!!!!!!````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````!!!!!!!!!!!!````" + "!!!!!!!!````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````!!!!!!!!!!!!````" + "!!!!!!!!````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````!!!!````!!!!````" + "!!!!!!!!````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````!!!!!!!!!!!!````" + "!!!!!!!!````````````````````````````````````````````````````!!!!" + "!!!!!!!!````!!!!````!!!!````!!!!!!!!````!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!````!!!!````!!!!````!!!!!!!!````!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!````````!!!!````!!!!````````!!!!````````!!!!!!!!!!!!!!!!!!!!" + ""; diff --git a/pov-led-globe/globe-timed-experimentalsd/image/pig16.xcf b/pov-led-globe/globe-timed-experimentalsd/image/pig16.xcf new file mode 100644 index 0000000..5dc9322 Binary files /dev/null and b/pov-led-globe/globe-timed-experimentalsd/image/pig16.xcf differ diff --git a/pov-led-globe/globe-timed-experimentalsd/image/snowflake.h b/pov-led-globe/globe-timed-experimentalsd/image/snowflake.h new file mode 100644 index 0000000..a740627 --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/image/snowflake.h @@ -0,0 +1,289 @@ +/* GIMP header image file format (INDEXED): /home/ondra/devel/elektro/avr/projects/c/globus/image/snowflake.h */ + +static unsigned int width = 15; +static unsigned int height = 16; + +/* Call this macro repeatedly. After each use, the pixel data can be extracted */ + +#define HEADER_PIXEL(data,pixel) {\ +pixel[0] = header_data_cmap[(unsigned char)data[0]][0]; \ +pixel[1] = header_data_cmap[(unsigned char)data[0]][1]; \ +pixel[2] = header_data_cmap[(unsigned char)data[0]][2]; \ +data ++; } + +static char header_data_cmap[256][3] = { + { 0, 0, 0}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255} + }; +static char header_data[] = { + 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, + 0,0,0,0,0,0,1,1,1,0,0,0,0,0,0, + 0,0,1,0,0,0,0,1,0,0,0,0,1,0,0, + 0,1,1,1,0,0,0,1,0,0,0,1,1,1,0, + 0,0,1,1,1,0,1,1,1,0,1,1,1,0,0, + 0,0,0,1,1,0,0,1,0,0,1,0,0,0,0, + 0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, + 1,0,0,1,0,0,1,1,1,0,0,1,0,0,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,0,0,1,0,0,1,1,1,0,0,1,0,0,1, + 0,0,0,0,0,1,0,1,0,1,0,0,0,0,0, + 0,0,0,0,1,0,0,1,0,0,1,1,0,0,0, + 0,0,1,1,1,0,1,1,1,0,0,1,1,0,0, + 0,1,1,1,0,0,0,1,0,0,0,1,1,1,0, + 0,0,1,0,0,0,0,1,0,0,0,0,1,0,0, + 0,0,0,0,0,0,1,1,1,0,0,0,0,0,0 + }; diff --git a/pov-led-globe/globe-timed-experimentalsd/image/snowflake.xcf b/pov-led-globe/globe-timed-experimentalsd/image/snowflake.xcf new file mode 100644 index 0000000..7d3b9d4 Binary files /dev/null and b/pov-led-globe/globe-timed-experimentalsd/image/snowflake.xcf differ diff --git a/pov-led-globe/globe-timed-experimentalsd/image/some-aliens.xcf b/pov-led-globe/globe-timed-experimentalsd/image/some-aliens.xcf new file mode 100644 index 0000000..52d104d Binary files /dev/null and b/pov-led-globe/globe-timed-experimentalsd/image/some-aliens.xcf differ diff --git a/pov-led-globe/globe-timed-experimentalsd/image/test_narrow.h b/pov-led-globe/globe-timed-experimentalsd/image/test_narrow.h new file mode 100644 index 0000000..ec6ba1b --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/image/test_narrow.h @@ -0,0 +1,289 @@ +/* GIMP header image file format (INDEXED): /home/ondra/devel/avr/projects/c/led-display/image/test_narrow.h */ + +static unsigned int width = 4; +static unsigned int height = 16; + +/* Call this macro repeatedly. After each use, the pixel data can be extracted */ + +#define HEADER_PIXEL(data,pixel) {\ +pixel[0] = header_data_cmap[(unsigned char)data[0]][0]; \ +pixel[1] = header_data_cmap[(unsigned char)data[0]][1]; \ +pixel[2] = header_data_cmap[(unsigned char)data[0]][2]; \ +data ++; } + +static char header_data_cmap[256][3] = { + { 0, 0, 0}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255} + }; +static char header_data[] = { + 1,1,0,0, + 0,0,0,0, + 1,1,0,0, + 0,0,0,0, + 1,1,0,0, + 0,0,0,0, + 1,1,1,0, + 0,1,1,0, + 0,1,1,0, + 0,1,1,1, + 0,0,0,0, + 0,0,1,1, + 0,0,0,0, + 0,0,1,1, + 0,0,0,0, + 0,0,1,1 + }; diff --git a/pov-led-globe/globe-timed-experimentalsd/image/test_narrow.xcf b/pov-led-globe/globe-timed-experimentalsd/image/test_narrow.xcf new file mode 100644 index 0000000..35edc44 Binary files /dev/null and b/pov-led-globe/globe-timed-experimentalsd/image/test_narrow.xcf differ diff --git a/pov-led-globe/globe-timed-experimentalsd/image/test_wide.h b/pov-led-globe/globe-timed-experimentalsd/image/test_wide.h new file mode 100644 index 0000000..c9b98b6 --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/image/test_wide.h @@ -0,0 +1,305 @@ +/* GIMP header image file format (INDEXED): /home/ondra/devel/avr/projects/c/led-display/image/test_wide.h */ + +static unsigned int width = 32; +static unsigned int height = 16; + +/* Call this macro repeatedly. After each use, the pixel data can be extracted */ + +#define HEADER_PIXEL(data,pixel) {\ +pixel[0] = header_data_cmap[(unsigned char)data[0]][0]; \ +pixel[1] = header_data_cmap[(unsigned char)data[0]][1]; \ +pixel[2] = header_data_cmap[(unsigned char)data[0]][2]; \ +data ++; } + +static char header_data_cmap[256][3] = { + { 0, 0, 0}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255}, + {255,255,255} + }; +static char header_data[] = { + 1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0, + 1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,1, + 1,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0, + 0,1,0,1,0,1,0,1,0,1,1,0,1,0,0,0, + 1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0, + 0,1,0,1,0,1,0,1,0,1,1,0,1,0,0,0, + 1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0, + 0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,1, + 1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1, + 0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0, + 1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1, + 1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1, + 1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1, + 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0, + 1,0,1,1,1,1,1,0,1,0,0,0,0,0,0,0, + 0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0, + 1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0, + 0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1, + 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, + 0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0, + 1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0, + 0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0, + 1,0,1,1,1,1,1,0,1,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1, + 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1 + }; diff --git a/pov-led-globe/globe-timed-experimentalsd/image/test_wide.xcf b/pov-led-globe/globe-timed-experimentalsd/image/test_wide.xcf new file mode 100644 index 0000000..ea5a657 Binary files /dev/null and b/pov-led-globe/globe-timed-experimentalsd/image/test_wide.xcf differ diff --git a/pov-led-globe/globe-timed-experimentalsd/image_aliensflip16.h b/pov-led-globe/globe-timed-experimentalsd/image_aliensflip16.h new file mode 100644 index 0000000..031b875 --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/image_aliensflip16.h @@ -0,0 +1,49 @@ + +#define ROWS 2 +#define COLS 42 + +const uint8_t image[COLS][ROWS] PROGMEM = { + { 0b00001110, 0b00000010 }, // ███ █ + { 0b00011000, 0b00000110 }, // ██ ██ + { 0b10101110, 0b00011100 }, //█ █ ███ ███ + { 0b01101101, 0b00110110 }, // ██ ██ █ ██ ██ + { 0b00111100, 0b00011100 }, // ████ ███ + { 0b01101101, 0b00110110 }, // ██ ██ █ ██ ██ + { 0b10101110, 0b00011100 }, //█ █ ███ ███ + { 0b00011000, 0b00000110 }, // ██ ██ + { 0b00001110, 0b00000010 }, // ███ █ + { 0b00000000, 0b00000000 }, // + { 0b00001110, 0b00000000 }, // ███ + { 0b00011000, 0b00000001 }, // ██ █ + { 0b10111110, 0b00011010 }, //█ █████ ██ █ + { 0b01101101, 0b00101100 }, // ██ ██ █ █ ██ + { 0b00111101, 0b01101110 }, // ████ █ ██ ███ + { 0b00111100, 0b01111100 }, // ████ █████ + { 0b00111101, 0b01101110 }, // ████ █ ██ ███ + { 0b01101101, 0b00101100 }, // ██ ██ █ █ ██ + { 0b10111110, 0b00011010 }, //█ █████ ██ █ + { 0b00011000, 0b00000001 }, // ██ █ + { 0b00001110, 0b00000000 }, // ███ + { 0b00001110, 0b00000000 }, // ███ + { 0b00011000, 0b00000001 }, // ██ █ + { 0b10111110, 0b00011010 }, //█ █████ ██ █ + { 0b01101101, 0b00101100 }, // ██ ██ █ █ ██ + { 0b00111101, 0b01101110 }, // ████ █ ██ ███ + { 0b00111100, 0b01111100 }, // ████ █████ + { 0b00111101, 0b01101110 }, // ████ █ ██ ███ + { 0b01101101, 0b00101100 }, // ██ ██ █ █ ██ + { 0b10111110, 0b00011010 }, //█ █████ ██ █ + { 0b00011000, 0b00000001 }, // ██ █ + { 0b00001110, 0b00000000 }, // ███ + { 0b00000000, 0b00000000 }, // + { 0b00001110, 0b00000010 }, // ███ █ + { 0b00011000, 0b00000110 }, // ██ ██ + { 0b10101110, 0b00011100 }, //█ █ ███ ███ + { 0b01101101, 0b00110110 }, // ██ ██ █ ██ ██ + { 0b00111100, 0b00011100 }, // ████ ███ + { 0b01101101, 0b00110110 }, // ██ ██ █ ██ ██ + { 0b10101110, 0b00011100 }, //█ █ ███ ███ + { 0b00011000, 0b00000110 }, // ██ ██ + { 0b00001110, 0b00000010 }, // ███ █ +}; + diff --git a/pov-led-globe/globe-timed-experimentalsd/image_chk3264.h b/pov-led-globe/globe-timed-experimentalsd/image_chk3264.h new file mode 100644 index 0000000..f5a611f --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/image_chk3264.h @@ -0,0 +1,71 @@ + +#define ROWS 4 +#define COLS 64 + +const uint8_t image[COLS][ROWS] PROGMEM = { + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ +}; + diff --git a/pov-led-globe/globe-timed-experimentalsd/image_chk3264numbers.h b/pov-led-globe/globe-timed-experimentalsd/image_chk3264numbers.h new file mode 100644 index 0000000..bd2c980 --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/image_chk3264numbers.h @@ -0,0 +1,71 @@ + +#define ROWS 4 +#define COLS 64 + +const uint8_t image[COLS][ROWS] PROGMEM = { + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11110001 }, // ████████ ████ █ + { 0b00100010, 0b11111111, 0b00000000, 0b11110101 }, // █ █ ████████ ████ █ █ + { 0b01111110, 0b11111111, 0b00000000, 0b11110001 }, // ██████ ████████ ████ █ + { 0b00000010, 0b11111111, 0b00000000, 0b11111111 }, // █ ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11011101, 0b00000000, 0b11111111, 0b00000000 }, //██ ███ █ ████████ + { 0b10111001, 0b00000000, 0b11111111, 0b00000000 }, //█ ███ █ ████████ + { 0b10110101, 0b00000000, 0b11111111, 0b00000000 }, //█ ██ █ █ ████████ + { 0b11001101, 0b00000000, 0b11111111, 0b00000000 }, //██ ██ █ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00100110, 0b11111111, 0b00000000, 0b11111111 }, // █ ██ ████████ ████████ + { 0b01000010, 0b11111111, 0b00000000, 0b11111111 }, // █ █ ████████ ████████ + { 0b01010010, 0b11111111, 0b00000000, 0b11111111 }, // █ █ █ ████████ ████████ + { 0b00111100, 0b11111111, 0b00000000, 0b11111111 }, // ████ ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b10001111, 0b00000000, 0b11111111, 0b00000000 }, //█ ████ ████████ + { 0b11101111, 0b00000000, 0b11111111, 0b00000000 }, //███ ████ ████████ + { 0b11000001, 0b00000000, 0b11111111, 0b00000000 }, //██ █ ████████ + { 0b11101111, 0b00000000, 0b11111111, 0b00000000 }, //███ ████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000100, 0b11111111, 0b00000000, 0b11111111 }, // █ ████████ ████████ + { 0b01110010, 0b11111111, 0b00000000, 0b11111111 }, // ███ █ ████████ ████████ + { 0b01010010, 0b11111111, 0b00000000, 0b11111111 }, // █ █ █ ████████ ████████ + { 0b01010010, 0b11111111, 0b00000000, 0b11111111 }, // █ █ █ ████████ ████████ + { 0b01011100, 0b11111111, 0b00000000, 0b11111111 }, // █ ███ ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11000001, 0b00000000, 0b11111111, 0b00000000 }, //██ █ ████████ + { 0b10110101, 0b00000000, 0b11111111, 0b00000000 }, //█ ██ █ █ ████████ + { 0b10110101, 0b00000000, 0b11111111, 0b00000000 }, //█ ██ █ █ ████████ + { 0b10110001, 0b00000000, 0b11111111, 0b00000000 }, //█ ██ █ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b01100000, 0b11111111, 0b00000000, 0b11111111 }, // ██ ████████ ████████ + { 0b01001000, 0b11111111, 0b00000000, 0b11111111 }, // █ █ ████████ ████████ + { 0b01001000, 0b11111111, 0b00000000, 0b11111111 }, // █ █ ████████ ████████ + { 0b01111110, 0b11111111, 0b00000000, 0b11111111 }, // ██████ ████████ ████████ + { 0b00001000, 0b11111111, 0b00000000, 0b11111111 }, // █ ████████ ████████ + { 0b00001000, 0b11111111, 0b00000000, 0b11111111 }, // █ ████████ ████████ + { 0b00000000, 0b11111111, 0b00000000, 0b11111111 }, // ████████ ████████ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ + { 0b11100001, 0b00000000, 0b11111111, 0b00000000 }, //███ █ ████████ + { 0b10001101, 0b00000000, 0b11111111, 0b00000000 }, //█ ██ █ ████████ + { 0b10101101, 0b00000000, 0b11111111, 0b00000000 }, //█ █ ██ █ ████████ + { 0b10101101, 0b00000000, 0b11111111, 0b00001110 }, //█ █ ██ █ ████████ ███ + { 0b10000001, 0b00000000, 0b11111111, 0b00001010 }, //█ █ ████████ █ █ + { 0b11111111, 0b00000000, 0b11111111, 0b00001110 }, //████████ ████████ ███ + { 0b11111111, 0b00000000, 0b11111111, 0b00000000 }, //████████ ████████ +}; + diff --git a/pov-led-globe/globe-timed-experimentalsd/image_globus32.h b/pov-led-globe/globe-timed-experimentalsd/image_globus32.h new file mode 100644 index 0000000..8906024 --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/image_globus32.h @@ -0,0 +1,65 @@ + +#define ROWS 4 +#define COLS 58 + +const uint8_t image[COLS][ROWS] PROGMEM = { + { 0b00000000, 0b00000000, 0b00000000, 0b00000000 }, // + { 0b00001111, 0b10000000, 0b00000000, 0b00000000 }, // █████ + { 0b00001111, 0b10000000, 0b00000000, 0b00000000 }, // █████ + { 0b00001111, 0b00000000, 0b00000000, 0b00000000 }, // ████ + { 0b00001111, 0b10000000, 0b00000000, 0b00000000 }, // █████ + { 0b00000111, 0b10000000, 0b00000000, 0b00000000 }, // ████ + { 0b00001111, 0b11100000, 0b00000000, 0b00000000 }, // ███████ + { 0b00111111, 0b11111000, 0b00000000, 0b00000000 }, // ███████████ + { 0b11111111, 0b11111110, 0b00000000, 0b00000000 }, //███████████████ + { 0b01111111, 0b11111111, 0b00000000, 0b00000000 }, // ███████████████ + { 0b01011111, 0b11111111, 0b10000000, 0b00000000 }, // █ ██████████████ + { 0b11110111, 0b11111111, 0b11000000, 0b00000000 }, //████ █████████████ + { 0b11011111, 0b01111110, 0b01000000, 0b00000000 }, //██ █████ ██████ █ + { 0b01111110, 0b01111110, 0b00100000, 0b00000000 }, // ██████ ██████ █ + { 0b00011001, 0b11111111, 0b00011100, 0b00000000 }, // ██ █████████ ███ + { 0b00001111, 0b11111000, 0b00111110, 0b00011000 }, // █████████ █████ ██ + { 0b00000111, 0b11111000, 0b00111111, 0b11111110 }, // ████████ █████████████ + { 0b00000000, 0b01110000, 0b00111111, 0b11100000 }, // ███ █████████ + { 0b00000000, 0b00100000, 0b00011111, 0b11000000 }, // █ ███████ + { 0b00000000, 0b00000000, 0b00001111, 0b10000000 }, // █████ + { 0b00000000, 0b00000000, 0b00001111, 0b00000000 }, // ████ + { 0b00000000, 0b00000000, 0b00000100, 0b00000000 }, // █ + { 0b00000000, 0b00000000, 0b00000000, 0b00000000 }, // + { 0b00000010, 0b00000000, 0b00000000, 0b00000000 }, // █ + { 0b00000010, 0b00000000, 0b11000000, 0b00000000 }, // █ ██ + { 0b00000000, 0b00000001, 0b11110000, 0b00000000 }, // █████ + { 0b00000000, 0b01101111, 0b11110000, 0b00000000 }, // ██ ████████ + { 0b00000000, 0b00111111, 0b11110000, 0b00000000 }, // ██████████ + { 0b00000001, 0b10111011, 0b11110000, 0b00000000 }, // ██ ███ ██████ + { 0b00000111, 0b10111001, 0b11111111, 0b10000000 }, // ████ ███ ██████████ + { 0b00001111, 0b01111011, 0b11111111, 0b11000000 }, // ████ ████ ████████████ + { 0b00001111, 0b11111101, 0b11111111, 0b11000000 }, // ██████████ ███████████ + { 0b00000111, 0b11111101, 0b11111111, 0b10000000 }, // █████████ ██████████ + { 0b00000111, 0b11111111, 0b11111110, 0b00000000 }, // ██████████████████ + { 0b00000111, 0b11111111, 0b11110011, 0b00000000 }, // ███████████████ ██ + { 0b00110111, 0b11111111, 0b11000000, 0b00000000 }, // ██ █████████████ + { 0b01001111, 0b11111111, 0b10000000, 0b00000000 }, // █ █████████████ + { 0b00001111, 0b11111111, 0b00000000, 0b00000000 }, // ████████████ + { 0b00011111, 0b11111111, 0b11000000, 0b00000000 }, // ███████████████ + { 0b00011111, 0b11111111, 0b11100000, 0b00000000 }, // ████████████████ + { 0b00111111, 0b11111111, 0b10000000, 0b00000000 }, // ███████████████ + { 0b01111111, 0b11111111, 0b10000000, 0b00000000 }, // ████████████████ + { 0b01111111, 0b11111111, 0b11000000, 0b00000000 }, // █████████████████ + { 0b11111111, 0b11111111, 0b11101000, 0b00000000 }, //███████████████████ █ + { 0b01111111, 0b11111111, 0b10011000, 0b00000000 }, // ████████████████ ██ + { 0b00011111, 0b11111111, 0b00011101, 0b11000000 }, // █████████████ ███ ███ + { 0b00011111, 0b11111111, 0b00000101, 0b11000000 }, // █████████████ █ ███ + { 0b00011111, 0b11111100, 0b00000011, 0b11000000 }, // ███████████ ████ + { 0b00011111, 0b11111110, 0b00000011, 0b11000000 }, // ████████████ ████ + { 0b01011111, 0b10110100, 0b00001011, 0b11100000 }, // █ ██████ ██ █ █ █████ + { 0b00011111, 0b10000000, 0b00000001, 0b11100000 }, // ██████ ████ + { 0b00001111, 0b00000000, 0b00000000, 0b11000000 }, // ████ ██ + { 0b00001111, 0b11000000, 0b00000000, 0b00000000 }, // ██████ + { 0b00000111, 0b10000000, 0b00000000, 0b00000000 }, // ████ + { 0b00001111, 0b00000000, 0b00000000, 0b00000000 }, // ████ + { 0b00000111, 0b00000000, 0b00000000, 0b00000000 }, // ███ + { 0b00000100, 0b00000000, 0b00000000, 0b00000000 }, // █ + { 0b00000000, 0b00000000, 0b00000000, 0b00000000 }, // +}; + diff --git a/pov-led-globe/globe-timed-experimentalsd/image_logo16.h b/pov-led-globe/globe-timed-experimentalsd/image_logo16.h new file mode 100644 index 0000000..f47401d --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/image_logo16.h @@ -0,0 +1,23 @@ + +#define ROWS 2 +#define COLS 16 + +const uint8_t image[COLS][ROWS] PROGMEM = { + { 0b00000011, 0b11000000 }, // ████ + { 0b00010010, 0b01000110 }, // █ █ █ ██ + { 0b00101010, 0b00011100 }, // █ █ █ ███ + { 0b01000110, 0b11111100 }, // █ ██ ██████ + { 0b00100000, 0b00111100 }, // █ ████ + { 0b00010000, 0b01101000 }, // █ ██ █ + { 0b11110000, 0b11001011 }, //████ ██ █ ██ + { 0b10000001, 0b10000001 }, //█ ██ █ + { 0b10000011, 0b11100001 }, //█ █████ █ + { 0b11110111, 0b11101111 }, //████ ██████ ████ + { 0b00010001, 0b11001000 }, // █ ███ █ + { 0b00100011, 0b10000100 }, // █ ███ █ + { 0b01000111, 0b01100010 }, // █ ███ ██ █ + { 0b00101110, 0b01010100 }, // █ ███ █ █ █ + { 0b00011100, 0b01001000 }, // ███ █ █ + { 0b00001011, 0b11000000 }, // █ ████ +}; + diff --git a/pov-led-globe/globe-timed-experimentalsd/image_logo32.h b/pov-led-globe/globe-timed-experimentalsd/image_logo32.h new file mode 100644 index 0000000..476a4fc --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/image_logo32.h @@ -0,0 +1,39 @@ + +#define ROWS 4 +#define COLS 32 + +const uint8_t image[COLS][ROWS] PROGMEM = { + { 0b00000000, 0b00001111, 0b11110000, 0b00000000 }, // ████████ + { 0b00000000, 0b11111100, 0b01111110, 0b00000000 }, // ██████ ██████ + { 0b00000001, 0b11100000, 0b00000111, 0b10000000 }, // ████ ████ + { 0b00000011, 0b10000001, 0b10000001, 0b11000000 }, // ███ ██ ███ + { 0b00000110, 0b00000010, 0b01000000, 0b01100000 }, // ██ █ █ ██ + { 0b00001100, 0b00000110, 0b01000000, 0b00110000 }, // ██ ██ █ ██ + { 0b00011000, 0b10000100, 0b01000011, 0b00011000 }, // ██ █ █ █ ██ ██ + { 0b00110001, 0b11100100, 0b01100111, 0b10001100 }, // ██ ████ █ ██ ████ ██ + { 0b01100011, 0b00111100, 0b00111100, 0b10001100 }, // ██ ██ ████ ████ █ ██ + { 0b01100011, 0b00001100, 0b00000000, 0b10000110 }, // ██ ██ ██ █ ██ + { 0b01000001, 0b10000111, 0b10000001, 0b10000110 }, // █ ██ ████ ██ ██ + { 0b01000000, 0b10000110, 0b01000111, 0b11110110 }, // █ █ ██ █ ███████ ██ + { 0b11000000, 0b10001100, 0b01001000, 0b00010010 }, //██ █ ██ █ █ █ █ + { 0b10000111, 0b10011000, 0b01000100, 0b00110011 }, //█ ████ ██ █ █ ██ ██ + { 0b10001100, 0b01100010, 0b01011000, 0b00100011 }, //█ ██ ██ █ █ ██ █ ██ + { 0b10010000, 0b10000100, 0b01100000, 0b01010011 }, //█ █ █ █ ██ █ █ ██ + { 0b10010011, 0b00000100, 0b01000110, 0b11010011 }, //█ █ ██ █ █ ██ ██ █ ██ + { 0b10011100, 0b00001100, 0b10001100, 0b10010011 }, //█ ███ ██ █ ██ █ █ ██ + { 0b10011000, 0b00010100, 0b00111111, 0b11100011 }, //█ ██ █ █ █████████ ██ + { 0b11010000, 0b00100110, 0b01100010, 0b00000010 }, //██ █ █ ██ ██ █ █ + { 0b01010000, 0b01000010, 0b10000011, 0b00000010 }, // █ █ █ █ █ ██ █ + { 0b01011001, 0b10000011, 0b00000001, 0b10000110 }, // █ ██ ██ ██ ██ ██ + { 0b01101011, 0b00011110, 0b00110000, 0b10000110 }, // ██ █ ██ ████ ██ █ ██ + { 0b00101111, 0b00110110, 0b01111100, 0b10001100 }, // █ ████ ██ ██ █████ █ ██ + { 0b00111101, 0b11100100, 0b01100111, 0b10001100 }, // ████ ████ █ ██ ████ ██ + { 0b00011000, 0b00000100, 0b01000000, 0b00011000 }, // ██ █ █ ██ + { 0b00001100, 0b00000100, 0b01000000, 0b00110000 }, // ██ █ █ ██ + { 0b00000110, 0b00000011, 0b11000000, 0b01100000 }, // ██ ████ ██ + { 0b00000011, 0b10000001, 0b10000001, 0b11000000 }, // ███ ██ ███ + { 0b00000001, 0b11100000, 0b00000111, 0b10000000 }, // ████ ████ + { 0b00000000, 0b01111100, 0b00111110, 0b00000000 }, // █████ █████ + { 0b00000000, 0b00001111, 0b11110000, 0b00000000 }, // ████████ +}; + diff --git a/pov-led-globe/globe-timed-experimentalsd/image_pig16.h b/pov-led-globe/globe-timed-experimentalsd/image_pig16.h new file mode 100644 index 0000000..be20409 --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/image_pig16.h @@ -0,0 +1,23 @@ + +#define ROWS 2 +#define COLS 16 + +const uint8_t image[COLS][ROWS] PROGMEM = { + { 0b11110000, 0b00000000 }, //████ + { 0b10010000, 0b00000001 }, //█ █ █ + { 0b11011111, 0b11111111 }, //██ █████████████ + { 0b00011100, 0b00001000 }, // ███ █ + { 0b00011000, 0b00001111 }, // ██ ████ + { 0b00011000, 0b00001000 }, // ██ █ + { 0b01110000, 0b00001111 }, // ███ ████ + { 0b10010110, 0b00001001 }, //█ █ ██ █ █ + { 0b01110110, 0b00001000 }, // ███ ██ █ + { 0b10010000, 0b00001111 }, //█ █ ████ + { 0b01110000, 0b00001001 }, // ███ █ █ + { 0b00011011, 0b11111000 }, // ██ ███████ + { 0b00000100, 0b00001000 }, // █ █ + { 0b00000101, 0b00101000 }, // █ █ █ █ + { 0b00000100, 0b00001000 }, // █ █ + { 0b00000011, 0b11110000 }, // ██████ +}; + diff --git a/pov-led-globe/globe-timed-experimentalsd/image_snowflake16.h b/pov-led-globe/globe-timed-experimentalsd/image_snowflake16.h new file mode 100644 index 0000000..22e73fd --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/image_snowflake16.h @@ -0,0 +1,22 @@ + +#define ROWS 2 +#define COLS 15 + +const uint8_t image[COLS][ROWS] PROGMEM = { + { 0b00000001, 0b11000000 }, // ███ + { 0b00010000, 0b10000100 }, // █ █ █ + { 0b00111000, 0b10001110 }, // ███ █ ███ + { 0b00011101, 0b11001100 }, // ███ ███ ██ + { 0b00001100, 0b10011000 }, // ██ █ ██ + { 0b00000010, 0b10100000 }, // █ █ █ + { 0b01001001, 0b11001001 }, // █ █ ███ █ █ + { 0b11111111, 0b11111111 }, //████████████████ + { 0b01001001, 0b11001001 }, // █ █ ███ █ █ + { 0b00000010, 0b10100000 }, // █ █ █ + { 0b00001100, 0b10010000 }, // ██ █ █ + { 0b00011001, 0b11011100 }, // ██ ███ ███ + { 0b00111000, 0b10001110 }, // ███ █ ███ + { 0b00010000, 0b10000100 }, // █ █ █ + { 0b00000001, 0b11000000 }, // ███ +}; + diff --git a/pov-led-globe/globe-timed-experimentalsd/image_test_narrow16.h b/pov-led-globe/globe-timed-experimentalsd/image_test_narrow16.h new file mode 100644 index 0000000..a2c835e --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/image_test_narrow16.h @@ -0,0 +1,11 @@ + +#define ROWS 2 +#define COLS 4 + +const uint8_t image[COLS][ROWS] PROGMEM = { + { 0b10101010, 0b00000000 }, //█ █ █ █ + { 0b10101011, 0b11000000 }, //█ █ █ ████ + { 0b00000011, 0b11010101 }, // ████ █ █ █ + { 0b00000000, 0b01010101 }, // █ █ █ █ +}; + diff --git a/pov-led-globe/globe-timed-experimentalsd/image_test_wide16.h b/pov-led-globe/globe-timed-experimentalsd/image_test_wide16.h new file mode 100644 index 0000000..535907a --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/image_test_wide16.h @@ -0,0 +1,39 @@ + +#define ROWS 2 +#define COLS 32 + +const uint8_t image[COLS][ROWS] PROGMEM = { + { 0b11111111, 0b11111111 }, //████████████████ + { 0b11000000, 0b00000000 }, //██ + { 0b11100000, 0b00111110 }, //███ █████ + { 0b11100000, 0b00100010 }, //███ █ █ + { 0b01110000, 0b00101010 }, // ███ █ █ █ + { 0b01110000, 0b00100010 }, // ███ █ █ + { 0b00111000, 0b00111110 }, // ███ █████ + { 0b00111000, 0b00000000 }, // ███ + { 0b00011100, 0b00111110 }, // ███ █████ + { 0b00011100, 0b00000000 }, // ███ + { 0b00001110, 0b00011100 }, // ███ ███ + { 0b00001110, 0b00000000 }, // ███ + { 0b00000111, 0b00001000 }, // ███ █ + { 0b00000111, 0b00000000 }, // ███ + { 0b00000011, 0b10001000 }, // ███ █ + { 0b00000011, 0b10000000 }, // ███ + { 0b00000001, 0b11000000 }, // ███ + { 0b00011001, 0b11000000 }, // ██ ███ + { 0b00000000, 0b11100000 }, // ███ + { 0b00011000, 0b11100000 }, // ██ ███ + { 0b00000000, 0b01110000 }, // ███ + { 0b00111100, 0b01110000 }, // ████ ███ + { 0b00000000, 0b00111000 }, // ███ + { 0b01111110, 0b00111000 }, // ██████ ███ + { 0b01000010, 0b00011100 }, // █ █ ███ + { 0b01011010, 0b00011100 }, // █ ██ █ ███ + { 0b01011010, 0b00001110 }, // █ ██ █ ███ + { 0b01000010, 0b00001110 }, // █ █ ███ + { 0b01111110, 0b00000111 }, // ██████ ███ + { 0b00000000, 0b00000111 }, // ███ + { 0b00000000, 0b00000011 }, // ██ + { 0b00100100, 0b10010011 }, // █ █ █ █ ██ +}; + diff --git a/pov-led-globe/globe-timed-experimentalsd/main.c b/pov-led-globe/globe-timed-experimentalsd/main.c new file mode 100644 index 0000000..aa9774e --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/main.c @@ -0,0 +1,212 @@ +#include +#include +#include +#include +#include +#include + +#include "utils.h" + +// Change to the image you want: +#include "image_chk3264numbers.h" + +#define DEBOUNCE_MS 3 + + +/** + * +--u--+ + * RST --| |-- Vcc + * TRIGGER : PB3 --| t13 |-- PB2 : CLOCK -> + * N.C. : PB4 --| |-- PB1 : STROBE -> to chained 74HC4094's + * GND --| |-- PB0 : DATA -> + * +-----+ + * + * TRIGGER is connected to ground by spring switch + * that gets activated at start of swing to right. + * (It's a metal contact with weight) + * + * LEDs are connected to 74HC4094 outputs by anodes. + * To use cathodes, invert byte in send_byte function. + */ + + + +// pins config +#define PIN_DATA PB0 +#define PIN_STROBE PB1 +#define PIN_CLOCK PB2 +#define PIN_TRIGGER PB3 + + +#define trigger_on() (0 == get_bit(PINB, PIN_TRIGGER)) + + + +/** Measure counter 10 usec */ +volatile uint16_t measure_counter; + +volatile uint8_t waiting_for_trigger = 1; + +/** Computed pixel timing */ +uint16_t t_light = 50; // 5 ms +uint16_t t_gap = 10; // 1 ms + + +void measure_start(void); +void measure_stop(void); +void send_byte(uint8_t); +void display(void); +int main(void); + +/** Initialize IO ports. */ +// void init_io(void) ; + +void SECTION(".init8") init_io(void) +{ + // set output pins + DDRB = _BV(PIN_DATA) | _BV(PIN_STROBE) | _BV(PIN_CLOCK); + + // pullups + PORTB = _BV(PIN_TRIGGER); + + // initialize the timer + + TCCR0B = _BV(CS00); // prescaler 0 + OCR0A = 96; // interrupt every 10 us + sbi(TIMSK0, OCIE0A); + + // initialize external interrupt + + PCMSK = _BV(PCINT3); + sbi(GIMSK, PCIE); // pin change interrupt enable +} + + +/** timer 0 interrupt vector */ +ISR(PCINT0_vect) +{ + if (waiting_for_trigger && trigger_on()) { + measure_stop(); + } +} + + +/** timer 0 interrupt vector */ +ISR(TIM0_COMPA_vect) +{ + // increment only if not too high + if (waiting_for_trigger && measure_counter < 0xFFFF) { + measure_counter++; + } +} + + + +/** Start counting time of interval */ +void +measure_start() +{ + measure_counter = 0; // reset the counter + waiting_for_trigger = 1; // start waiting for trigger -> stop. + + // enable CompMatch A interrupt +} + + +/** Stop measuring, compute timing values */ +void +measure_stop() +{ + uint16_t prec = (measure_counter / (COLS)); + t_light = ((prec*7)/100); + t_gap = ((prec*3)/100); + + // if (t_light == 0) t_light=25; + // if (t_gap == 0) t_gap=5; + + waiting_for_trigger = 0; // stop waiting for trigger (new loop may start) +} + + + + + +/** send one byte into registers */ +void +send_byte(uint8_t b) +{ + for (uint8_t i=0; i<8; i++) { + set_bit(PORTB, PIN_DATA, get_bit(b, i)); + + bus_pulse(PORTB, PIN_CLOCK); // strobe + } +} + + +/** send STROBE pulse */ +void +display() +{ + bus_pulse(PORTB, PIN_STROBE); +} + + +/** + * Main function + */ +int +main() +{ + sei(); + + while (1) { + + // while (waiting_for_trigger); // wait for interrupt on TRIGGER + // _delay_ms(DEBOUNCE_MS); // debounce + // while (trigger_on()); // wait for trigger to turn off + // _delay_ms(DEBOUNCE_MS); // debounce + // measure_start(); + + for(uint8_t i = DEBOUNCE_MS; i > 0; i--) { + while (trigger_on()); + _delay_ms(1); + } + measure_start(); + + for (uint8_t col = 0; col < COLS; col++) { + + if(trigger_on()) break; // emergency exit + + // +++ light +++ + + // send light values + for(uint8_t row = ROWS; row > 0; row--) { + send_byte(pgm_read_byte(&image[col][row-1])); + } + + // send STROBE + display(); + + // Wait + for(uint16_t i = t_light; i > 0; i--) { + _delay_us(100); + } + + + // +++ dark +++ + + // send zeros + for(uint8_t row = ROWS; row > 0; row--) { + send_byte(0); + } + + // send STROBE + display(); + + // Wait + for(uint16_t i = t_gap; i > 0; i--) { + _delay_us(100); + } + } + } +} diff --git a/pov-led-globe/globe-timed-experimentalsd/test_narrow16.h b/pov-led-globe/globe-timed-experimentalsd/test_narrow16.h new file mode 100644 index 0000000..a2c835e --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/test_narrow16.h @@ -0,0 +1,11 @@ + +#define ROWS 2 +#define COLS 4 + +const uint8_t image[COLS][ROWS] PROGMEM = { + { 0b10101010, 0b00000000 }, //█ █ █ █ + { 0b10101011, 0b11000000 }, //█ █ █ ████ + { 0b00000011, 0b11010101 }, // ████ █ █ █ + { 0b00000000, 0b01010101 }, // █ █ █ █ +}; + diff --git a/pov-led-globe/globe-timed-experimentalsd/utils.h b/pov-led-globe/globe-timed-experimentalsd/utils.h new file mode 100644 index 0000000..4ab82a1 --- /dev/null +++ b/pov-led-globe/globe-timed-experimentalsd/utils.h @@ -0,0 +1,14 @@ +#pragma once + +// general macros +#define SECTION(pos) __attribute__((naked, used, section(pos))) + + +// pin manipulation +#define sbi(port, bit) (port) |= _BV(bit) +#define cbi(port, bit) (port) &= ~ _BV(bit) + +#define set_bit(port, bit, value) (port) = (((port) & ~_BV(bit)) | ((value) << (bit))) +#define get_bit(port, bit) (((port) >> (bit)) & 1) + +#define bus_pulse(port, bit) { sbi(port, bit); cbi(port, bit); }