Last active
August 29, 2015 14:14
-
-
Save TorstenC/22ef6078188d33e36dfe to your computer and use it in GitHub Desktop.
Word-Arrays for 24h 18 x 16 Wordclock Deklaration + Definition
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Word-Arrays for 24h Wordclock, see http://www.mikrocontroller.net/articles/WordClock24h | |
// Von-Neumann-Variant, Data from Wc24h1816_1833,16.Mai15-ACHT-VIER CodeGen v0.15 | |
// Code-Generator see https://gist.github.com/TorstenC/aec0724be4afcd1d7545 | |
// tbl_modes[MODES_COUNT]: 1152 bytes | |
// tbl_hours[HOUR_MODES_COUNT][HOUR_COUNT][MAX_HOUR_WORDS]: 800 bytes | |
// tbl_minutes[MINUTE_MODES_COUNT][MINUTE_COUNT]: 5280 bytes | |
// illumination[1][WP_COUNT]: 231 bytes | |
// total (tbl_minutes + tbl_hours + tbl_modes + illumination): 7463 bytes | |
#ifndef TABLES_H | |
#define TABLES_H | |
#include <stdint.h> | |
#define MODES_COUNT 18 // count of different display modes | |
#define MAX_HOUR_WORDS 4 // how many words for hour display (no end token) | |
#define HOUR_COUNT 25 // 24 plus one to distinguish between before and after full hour | |
#define MAX_MINUTE_WORDS 7 // how many words for minute display (no end token) | |
#define MINUTE_COUNT 60 | |
#define WC_COLUMNS 18 | |
#define WC_ROWS 16 | |
struct WordIllu { | |
uint8_t row; | |
uint8_t col; | |
uint8_t len; | |
}; | |
struct Modes { | |
uint8_t minute_txt; // we don´t need minute_txt_last | |
uint8_t hour_txt; | |
const char* description; | |
}; | |
struct MinuteDisplay { | |
uint8_t hourOffset; // offset for hour display | |
uint8_t wordIdx[MAX_MINUTE_WORDS]; | |
}; | |
enum HourMode { | |
HM_0, // 0 = Mode 0: "leer, überspringen" | |
HM_1, // 1 = Mode 1: "MM - HH (12)" | |
HM_2, // 2 = Mode 2: "MM - HH UHR (12)" | |
HM_3, // 3 = Mode 3: "MM - HH UHR (12) NACHTS" | |
HM_4, // 4 = Mode 4: "MM - HH UHR (24)" | |
HM_5, // 5 = Mode 5: "HH UHR (12) - MM" | |
HM_6, // 6 = Mode 6: "HH UHR 24) - MM" | |
HM_7, // 7 = Mode 7: "MITTERNACHT (0 UHR)" | |
HOUR_MODES_COUNT // Number of HourModes | |
}; | |
enum MinuteMode { | |
MM_1, // 0 = Mode 1: "MM NACH" | |
MM_2, // 1 = Mode 2: "MM MINUTEN NACH" | |
MM_3, // 2 = Mode 3: "OSSI - MM MINUTEN NACH (VIERTEL NACH, HALB, VIERTEL VOR)" | |
MM_4, // 3 = Mode 4: "OESI - MINUTEN NACH (VIERTEL NACH, HALB, DREIVIERTEL)" | |
MM_5, // 4 = Mode 5: "RHEIN/ RUHR - MINUTEN NACH (VIERTEL, HALB, DREIVIERTEL)" | |
MM_6, // 5 = Mode 6: "SCHWABEN - MM MINUTEN NACH (VIERTEL NACH, HALB, DREIVIERTEL)" | |
MM_7, // 6 = Mode 7: "WESSI - MM MINUTEN NACH (VIERTEL, HALB, DREIVIERTEL)" | |
MM_8, // 7 = Mode 8: "MM" | |
MM_9, // 8 = Mode 9: "UND MM MINUTEN" | |
MM_10, // 9 = Mode 10: "MM MINUTEN VOR" | |
MM_11, // 10 = Mode 11: "TEMPERATUR "CC GRAD"" | |
MINUTE_MODES_COUNT // Number of MinuteModes | |
}; | |
enum WordPos { | |
WP_END_OF_WORDS, // 0 = "0_END_OF_WORDS" = "" | |
WP_ES, // 1 = "1_ES" = "ES" | |
WP_IST, // 2 = "2_IST" = "IST" | |
WP_VIERTEL_1, // 3 = "3_VIERTEL" = "VIERTEL" | |
WP_EIN_1, // 4 = "4_EIN" = "EIN" | |
WP_EINS_1, // 5 = "5_EINS" = "EINS" | |
WP_IN, // 6 = "6_IN" = "IN" | |
WP_DREI_1, // 7 = "7_DREI" = "DREI" | |
WP_EIN_2, // 8 = "8_EIN" = "EIN" | |
WP_EINE_1, // 9 = "9_EINE" = "EINE" | |
WP_EINER, // 10 = "10_EINER" = "EINER" | |
WP_SECH_1, // 11 = "11_SECH" = "SECH" | |
WP_SECHS_1, // 12 = "12_SECHS" = "SECHS" | |
WP_SIEB_1, // 13 = "13_SIEB" = "SIEB" | |
WP_SIEBEN_1, // 14 = "14_SIEBEN" = "SIEBEN" | |
WP_ELF_1, // 15 = "15_ELF" = "ELF" | |
WP_FUENF_1, // 16 = "16_FUENF" = "FÜNF" | |
WP_NEUN_1, // 17 = "17_NEUN" = "NEUN" | |
WP_VIER_1, // 18 = "18_VIER" = "VIER" | |
WP_ACHT_1, // 19 = "19_ACHT" = "ACHT" | |
WP_NULL_1, // 20 = "20_NULL" = "NULL" | |
WP_ZWEI_1, // 21 = "21_ZWEI" = "ZWEI" | |
WP_ZWOELF_1, // 22 = "22_ZWOELF" = "ZWÖLF" | |
WP_ZEHN_1, // 23 = "23_ZEHN" = "ZEHN" | |
WP_UND_1, // 24 = "24_UND" = "UND" | |
WP_ZWANZIG_1, // 25 = "25_ZWANZIG" = "ZWANZIG" | |
WP_VIERZIG_1, // 26 = "26_VIERZIG" = "VIERZIG" | |
WP_DREISSIG_1, // 27 = "27_DREISSIG" = "DREISSIG" | |
WP_FUENFZIG_1, // 28 = "28_FUENFZIG" = "FÜNFZIG" | |
WP_UHR_1, // 29 = "29_UHR" = "UHR" | |
WP_MINUTE_1, // 30 = "30_MINUTE" = "MINUTE" | |
WP_MINUTEN_1, // 31 = "31_MINUTEN" = "MINUTEN" | |
WP_VOR_1, // 32 = "32_VOR" = "VOR" | |
WP_UND_2, // 33 = "33_UND" = "UND" | |
WP_NACH_1, // 34 = "34_NACH" = "NACH" | |
WP_EIN_3, // 35 = "35_EIN" = "EIN" | |
WP_DREIVIERTEL, // 36 = "36_DREIVIERTEL" = "DREIVIERTEL" | |
WP_VIERTEL_2, // 37 = "37_VIERTEL" = "VIERTEL" | |
WP_HALB, // 38 = "38_HALB" = "HALB" | |
WP_SIEB_2, // 39 = "39_SIEB" = "SIEB" | |
WP_SIEBEN_2, // 40 = "40_SIEBEN" = "SIEBEN" | |
WP_NEUN_2, // 41 = "41_NEUN" = "NEUN" | |
WP_NULL_2, // 42 = "42_NULL" = "NULL" | |
WP_ZWEI_2, // 43 = "43_ZWEI" = "ZWEI" | |
WP_EIN_4, // 44 = "44_EIN" = "EIN" | |
WP_EINE_2, // 45 = "45_EINE" = "EINE" | |
WP_FUENF_2, // 46 = "46_FUENF" = "FÜNF" | |
WP_SECH_2, // 47 = "47_SECH" = "SECH" | |
WP_SECHS_2, // 48 = "48_SECHS" = "SECHS" | |
WP_NACH_2, // 49 = "50_NACH" = "NACH" | |
WP_NACHT, // 50 = "50_NACHT" = "NACHT" | |
WP_ACHT_2, // 51 = "49_ACHT" = "ACHT" | |
WP_VIER_2, // 52 = "50_VIER" = "VIER" | |
WP_DREI_2, // 53 = "51_DREI" = "DREI" | |
WP_EIN_5, // 54 = "52_EIN" = "EIN" | |
WP_EINS_2, // 55 = "53_EINS" = "EINS" | |
WP_UND_3, // 56 = "54_UND" = "UND" | |
WP_ELF_2, // 57 = "55_ELF" = "ELF" | |
WP_ZEHN_2, // 58 = "56_ZEHN" = "ZEHN" | |
WP_ZWANZIG_2, // 59 = "57_ZWANZIG" = "ZWANZIG" | |
WP_GRAD, // 60 = "58_GRAD" = "GRAD" | |
WP_DREISSIG_2, // 61 = "59_DREISSIG" = "DREISSIG" | |
WP_VIERZIG_2, // 62 = "60_VIERZIG" = "VIERZIG" | |
WP_ZWOELF_2, // 63 = "61_ZWÖLF" = "ZWÖLF" | |
WP_FUENFZIG_2, // 64 = "62_FUENFZIG" = "FÜNFZIG" | |
WP_MINUTE_2, // 65 = "63_MINUTE" = "MINUTE" | |
WP_MINUTEN_2, // 66 = "64_MINUTEN" = "MINUTEN" | |
WP_UHR_2, // 67 = "65_UHR" = "UHR" | |
WP_FRUEH, // 68 = "66_FRUEH" = "FRÜH" | |
WP_VOR_2, // 69 = "67_VOR" = "VOR" | |
WP_ABENDS, // 70 = "68_ABENDS" = "ABENDS" | |
WP_MITTERNACHT, // 71 = "69_MITTERNACHT" = "MITTERNACHT" | |
WP_NACH_3, // 72 = "70_NACH" = "NACH" | |
WP_NACHTS, // 73 = "71_NACHTS" = "NACHTS" | |
WP_MORGENS, // 74 = "72_MORGENS" = "MORGENS" | |
WP_WARM, // 75 = "73_WARM" = "WARM" | |
WP_MITTAGS, // 76 = "74_MITTAGS" = "MITTAGS" | |
WP_COUNT, // number of words | |
}; | |
extern const struct Modes tbl_modes[MODES_COUNT]; | |
extern const uint8_t it_is[2]; | |
extern const uint8_t tbl_hours[HOUR_MODES_COUNT][HOUR_COUNT][MAX_HOUR_WORDS]; | |
extern const struct MinuteDisplay tbl_minutes[MINUTE_MODES_COUNT][MINUTE_COUNT]; | |
extern const struct WordIllu illumination[1][WP_COUNT]; // dummy-dimension for screen-saver-variant with capital ß | |
extern const char* display[1][WC_ROWS]; // dummy-dimension for screen-saver-variant with capital ß | |
#endif // TABLES_H |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment