V1
This commit is contained in:
parent
68a9d64990
commit
469eaad23c
12 changed files with 1302 additions and 155 deletions
Binary file not shown.
|
|
@ -30,41 +30,21 @@
|
|||
"zones": true
|
||||
},
|
||||
"visible_items": [
|
||||
"vias",
|
||||
"footprint_text",
|
||||
"footprint_anchors",
|
||||
"ratsnest",
|
||||
"grid",
|
||||
"footprints_front",
|
||||
"footprints_back",
|
||||
"footprint_values",
|
||||
"footprint_references",
|
||||
"tracks",
|
||||
"drc_errors",
|
||||
"drawing_sheet",
|
||||
"bitmaps",
|
||||
"pads",
|
||||
"zones",
|
||||
"drc_warnings",
|
||||
"drc_exclusions",
|
||||
"locked_item_shadows",
|
||||
"conflict_shadows",
|
||||
"shapes",
|
||||
"board_outline_area",
|
||||
"ly_points"
|
||||
12
|
||||
],
|
||||
"visible_layers": "ffffffff_ffffffff_ffffffff_ffffffff",
|
||||
"visible_layers": "fffffff_ffffffff",
|
||||
"zone_display_mode": 0
|
||||
},
|
||||
"git": {
|
||||
"integration_disabled": false,
|
||||
"repo_password": "",
|
||||
"repo_type": "",
|
||||
"repo_username": "",
|
||||
"ssh_key": ""
|
||||
},
|
||||
"meta": {
|
||||
"filename": "KugelmühleSchaltplan.kicad_prl",
|
||||
"version": 5
|
||||
"version": 3
|
||||
},
|
||||
"net_inspector_panel": {
|
||||
"col_hidden": [],
|
||||
|
|
|
|||
|
|
@ -1,6 +1,205 @@
|
|||
{
|
||||
"board": {
|
||||
"3dviewports": [],
|
||||
"design_settings": {
|
||||
"defaults": {
|
||||
"apply_defaults_to_fp_fields": false,
|
||||
"apply_defaults_to_fp_shapes": false,
|
||||
"apply_defaults_to_fp_text": false,
|
||||
"board_outline_line_width": 0.05,
|
||||
"copper_line_width": 0.2,
|
||||
"copper_text_italic": false,
|
||||
"copper_text_size_h": 1.5,
|
||||
"copper_text_size_v": 1.5,
|
||||
"copper_text_thickness": 0.3,
|
||||
"copper_text_upright": false,
|
||||
"courtyard_line_width": 0.05,
|
||||
"dimension_precision": 4,
|
||||
"dimension_units": 3,
|
||||
"dimensions": {
|
||||
"arrow_length": 1270000,
|
||||
"extension_offset": 500000,
|
||||
"keep_text_aligned": true,
|
||||
"suppress_zeroes": false,
|
||||
"text_position": 0,
|
||||
"units_format": 1
|
||||
},
|
||||
"fab_line_width": 0.1,
|
||||
"fab_text_italic": false,
|
||||
"fab_text_size_h": 1.0,
|
||||
"fab_text_size_v": 1.0,
|
||||
"fab_text_thickness": 0.15,
|
||||
"fab_text_upright": false,
|
||||
"other_line_width": 0.1,
|
||||
"other_text_italic": false,
|
||||
"other_text_size_h": 1.0,
|
||||
"other_text_size_v": 1.0,
|
||||
"other_text_thickness": 0.15,
|
||||
"other_text_upright": false,
|
||||
"pads": {
|
||||
"drill": 0.762,
|
||||
"height": 1.524,
|
||||
"width": 1.524
|
||||
},
|
||||
"silk_line_width": 0.1,
|
||||
"silk_text_italic": false,
|
||||
"silk_text_size_h": 1.0,
|
||||
"silk_text_size_v": 1.0,
|
||||
"silk_text_thickness": 0.1,
|
||||
"silk_text_upright": false,
|
||||
"zones": {
|
||||
"min_clearance": 0.5
|
||||
}
|
||||
},
|
||||
"diff_pair_dimensions": [],
|
||||
"drc_exclusions": [],
|
||||
"meta": {
|
||||
"version": 2
|
||||
},
|
||||
"rule_severities": {
|
||||
"annular_width": "error",
|
||||
"clearance": "error",
|
||||
"connection_width": "warning",
|
||||
"copper_edge_clearance": "error",
|
||||
"copper_sliver": "warning",
|
||||
"courtyards_overlap": "error",
|
||||
"diff_pair_gap_out_of_range": "error",
|
||||
"diff_pair_uncoupled_length_too_long": "error",
|
||||
"drill_out_of_range": "error",
|
||||
"duplicate_footprints": "warning",
|
||||
"extra_footprint": "warning",
|
||||
"footprint": "error",
|
||||
"footprint_symbol_mismatch": "warning",
|
||||
"footprint_type_mismatch": "ignore",
|
||||
"hole_clearance": "error",
|
||||
"hole_near_hole": "error",
|
||||
"invalid_outline": "error",
|
||||
"isolated_copper": "warning",
|
||||
"item_on_disabled_layer": "error",
|
||||
"items_not_allowed": "error",
|
||||
"length_out_of_range": "error",
|
||||
"lib_footprint_issues": "warning",
|
||||
"lib_footprint_mismatch": "warning",
|
||||
"malformed_courtyard": "error",
|
||||
"microvia_drill_out_of_range": "error",
|
||||
"missing_courtyard": "ignore",
|
||||
"missing_footprint": "warning",
|
||||
"net_conflict": "warning",
|
||||
"npth_inside_courtyard": "ignore",
|
||||
"padstack": "warning",
|
||||
"pth_inside_courtyard": "ignore",
|
||||
"shorting_items": "error",
|
||||
"silk_edge_clearance": "warning",
|
||||
"silk_over_copper": "warning",
|
||||
"silk_overlap": "warning",
|
||||
"skew_out_of_range": "error",
|
||||
"solder_mask_bridge": "error",
|
||||
"starved_thermal": "error",
|
||||
"text_height": "warning",
|
||||
"text_thickness": "warning",
|
||||
"through_hole_pad_without_hole": "error",
|
||||
"too_many_vias": "error",
|
||||
"track_dangling": "warning",
|
||||
"track_width": "error",
|
||||
"tracks_crossing": "error",
|
||||
"unconnected_items": "error",
|
||||
"unresolved_variable": "error",
|
||||
"via_dangling": "warning",
|
||||
"zones_intersect": "error"
|
||||
},
|
||||
"rules": {
|
||||
"max_error": 0.005,
|
||||
"min_clearance": 0.0,
|
||||
"min_connection": 0.0,
|
||||
"min_copper_edge_clearance": 0.5,
|
||||
"min_hole_clearance": 0.25,
|
||||
"min_hole_to_hole": 0.25,
|
||||
"min_microvia_diameter": 0.2,
|
||||
"min_microvia_drill": 0.1,
|
||||
"min_resolved_spokes": 2,
|
||||
"min_silk_clearance": 0.0,
|
||||
"min_text_height": 0.8,
|
||||
"min_text_thickness": 0.08,
|
||||
"min_through_hole_diameter": 0.3,
|
||||
"min_track_width": 0.0,
|
||||
"min_via_annular_width": 0.1,
|
||||
"min_via_diameter": 0.5,
|
||||
"solder_mask_to_copper_clearance": 0.0,
|
||||
"use_height_for_length_calcs": true
|
||||
},
|
||||
"teardrop_options": [
|
||||
{
|
||||
"td_onpadsmd": true,
|
||||
"td_onroundshapesonly": false,
|
||||
"td_ontrackend": false,
|
||||
"td_onviapad": true
|
||||
}
|
||||
],
|
||||
"teardrop_parameters": [
|
||||
{
|
||||
"td_allow_use_two_tracks": true,
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_on_pad_in_zone": false,
|
||||
"td_target_name": "td_round_shape",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
},
|
||||
{
|
||||
"td_allow_use_two_tracks": true,
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_on_pad_in_zone": false,
|
||||
"td_target_name": "td_rect_shape",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
},
|
||||
{
|
||||
"td_allow_use_two_tracks": true,
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_on_pad_in_zone": false,
|
||||
"td_target_name": "td_track_end",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
}
|
||||
],
|
||||
"track_widths": [],
|
||||
"tuning_pattern_settings": {
|
||||
"diff_pair_defaults": {
|
||||
"corner_radius_percentage": 80,
|
||||
"corner_style": 1,
|
||||
"max_amplitude": 1.0,
|
||||
"min_amplitude": 0.2,
|
||||
"single_sided": false,
|
||||
"spacing": 1.0
|
||||
},
|
||||
"diff_pair_skew_defaults": {
|
||||
"corner_radius_percentage": 80,
|
||||
"corner_style": 1,
|
||||
"max_amplitude": 1.0,
|
||||
"min_amplitude": 0.2,
|
||||
"single_sided": false,
|
||||
"spacing": 0.6
|
||||
},
|
||||
"single_track_defaults": {
|
||||
"corner_radius_percentage": 80,
|
||||
"corner_style": 1,
|
||||
"max_amplitude": 1.0,
|
||||
"min_amplitude": 0.2,
|
||||
"single_sided": false,
|
||||
"spacing": 0.6
|
||||
}
|
||||
},
|
||||
"via_dimensions": [],
|
||||
"zones_allow_external_fillets": false
|
||||
},
|
||||
"ipc2581": {
|
||||
"bom_rev": "",
|
||||
"dist": "",
|
||||
|
|
@ -207,6 +406,7 @@
|
|||
"bus_entry_needed": "error",
|
||||
"bus_to_bus_conflict": "error",
|
||||
"bus_to_net_conflict": "error",
|
||||
"conflicting_netclasses": "error",
|
||||
"different_unit_footprint": "error",
|
||||
"different_unit_net": "error",
|
||||
"duplicate_reference": "error",
|
||||
|
|
@ -217,6 +417,7 @@
|
|||
"footprint_filter": "ignore",
|
||||
"footprint_link_issues": "warning",
|
||||
"four_way_junction": "ignore",
|
||||
"global_label_dangling": "warning",
|
||||
"ground_pin_not_ground": "warning",
|
||||
"hier_label_mismatch": "error",
|
||||
"isolated_pin_label": "warning",
|
||||
|
|
@ -257,7 +458,7 @@
|
|||
},
|
||||
"meta": {
|
||||
"filename": "KugelmühleSchaltplan.kicad_pro",
|
||||
"version": 3
|
||||
"version": 1
|
||||
},
|
||||
"net_settings": {
|
||||
"classes": [
|
||||
|
|
@ -272,17 +473,15 @@
|
|||
"microvia_drill": 0.1,
|
||||
"name": "Default",
|
||||
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||
"priority": 2147483647,
|
||||
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
||||
"track_width": 0.2,
|
||||
"tuning_profile": "",
|
||||
"via_diameter": 0.6,
|
||||
"via_drill": 0.3,
|
||||
"wire_width": 6
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"version": 5
|
||||
"version": 3
|
||||
},
|
||||
"net_colors": null,
|
||||
"netclass_assignments": null,
|
||||
|
|
@ -290,11 +489,14 @@
|
|||
},
|
||||
"pcbnew": {
|
||||
"last_paths": {
|
||||
"gencad": "",
|
||||
"idf": "",
|
||||
"netlist": "",
|
||||
"plot": "",
|
||||
"pos_files": "",
|
||||
"specctra_dsn": "",
|
||||
"step": "",
|
||||
"svg": "",
|
||||
"vrml": ""
|
||||
},
|
||||
"page_layout_descr_file": ""
|
||||
|
|
@ -417,9 +619,16 @@
|
|||
"meta": {
|
||||
"version": 1
|
||||
},
|
||||
"net_format_name": "",
|
||||
"page_layout_descr_file": "",
|
||||
"plot_directory": "",
|
||||
"reuse_designators": true,
|
||||
"spice_current_sheet_as_root": false,
|
||||
"spice_external_command": "spice \"%I\"",
|
||||
"spice_model_current_sheet_as_root": true,
|
||||
"spice_save_all_currents": false,
|
||||
"spice_save_all_dissipations": false,
|
||||
"spice_save_all_voltages": false,
|
||||
"subpart_first_id": 65,
|
||||
"subpart_id_separator": 0,
|
||||
"top_level_sheets": [
|
||||
|
|
|
|||
1
KugelmühleSchaltplan/fp-info-cache
Normal file
1
KugelmühleSchaltplan/fp-info-cache
Normal file
|
|
@ -0,0 +1 @@
|
|||
0
|
||||
BIN
clock.gif
Normal file
BIN
clock.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.8 MiB |
725
clock_frames.h
Normal file
725
clock_frames.h
Normal file
|
|
@ -0,0 +1,725 @@
|
|||
#pragma once
|
||||
#include <Arduino.h>
|
||||
|
||||
// Abmessungen: 21x21, 143 Frames
|
||||
#define CLOCK_WIDTH 21
|
||||
#define CLOCK_HEIGHT 21
|
||||
#define CLOCK_FRAME_COUNT 143
|
||||
|
||||
const unsigned char clock_frame_0[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x84, 0x01, 0x90, 0x44, 0x03, 0x08, 0x04, 0x06, 0x0C, 0x04, 0x04, 0x14, 0x04, 0x0A, 0x04, 0x04, 0x08, 0x02, 0x04, 0x08, 0x02, 0x04, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_1[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x01, 0x90, 0x40, 0x03, 0x08, 0x40, 0x06, 0x0C, 0x24, 0x04, 0x14, 0x14, 0x0A, 0x04, 0x14, 0x08, 0x02, 0x0C, 0x08, 0x02, 0x0C, 0x08, 0x02, 0x00, 0x08, 0x06, 0x40, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_2[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x01, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x04, 0x04, 0x14, 0x04, 0x0A, 0x04, 0x84, 0x09, 0x02, 0x64, 0x08, 0x02, 0x1C, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x02, 0x00, 0x00, 0x08
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_3[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x01, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x08, 0x04, 0x14, 0x08, 0x0A, 0x04, 0x08, 0x08, 0x02, 0x08, 0x08, 0x02, 0xFC, 0x0F, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_4[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x01, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x08, 0x04, 0x14, 0x08, 0x0A, 0x04, 0x08, 0x08, 0x02, 0x08, 0x08, 0x02, 0x04, 0x08, 0x02, 0x18, 0x08, 0x06, 0x60, 0x08, 0x04, 0x80, 0x09, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_5[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x01, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x08, 0x06, 0x14, 0x08, 0x0A, 0x04, 0x08, 0x08, 0x02, 0x08, 0x08, 0x02, 0x04, 0x08, 0x02, 0x08, 0x08, 0x06, 0x08, 0x08, 0x04, 0x10, 0x08, 0x14, 0x20, 0x0A, 0x2C, 0x20, 0x04, 0x18, 0x40, 0x06, 0x30, 0x44, 0x03, 0x60, 0x90, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_6[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x08, 0x0A, 0x04, 0x08, 0x08, 0x02, 0x08, 0x08, 0x02, 0x04, 0x08, 0x02, 0x04, 0x08, 0x06, 0x04, 0x08, 0x04, 0x04, 0x08, 0x14, 0x05, 0x0A, 0x0C, 0x04, 0x04, 0x98, 0x44, 0x06, 0x30, 0x04, 0x03, 0x60, 0x84, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_7[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x08, 0x0A, 0x04, 0x08, 0x08, 0x02, 0x08, 0x08, 0x02, 0x04, 0x08, 0x02, 0x04, 0x08, 0x06, 0x02, 0x08, 0x04, 0x02, 0x08, 0x14, 0x01, 0x0A, 0x0C, 0x01, 0x04, 0x98, 0x40, 0x06, 0xB0, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_8[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x08, 0x0A, 0x04, 0x08, 0x08, 0x02, 0x08, 0x08, 0x02, 0x04, 0x08, 0x02, 0x06, 0x08, 0x86, 0x01, 0x08, 0x64, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_9[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x10, 0x04, 0x14, 0x10, 0x0A, 0x04, 0x08, 0x08, 0x02, 0x08, 0x08, 0xFA, 0x0F, 0x08, 0x02, 0x10, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x14, 0x18, 0x40, 0x06, 0x30, 0x00, 0x13, 0x60, 0xA0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_10[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x10, 0x04, 0x14, 0x10, 0x0A, 0x64, 0x08, 0x08, 0x82, 0x09, 0x08, 0x02, 0x0E, 0x08, 0x02, 0x10, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x14, 0x98, 0x40, 0x06, 0x30, 0x00, 0x13, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_11[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x88, 0x00, 0x06, 0x0C, 0x11, 0x04, 0x14, 0x11, 0x0A, 0x04, 0x0A, 0x08, 0x02, 0x0C, 0x08, 0x02, 0x0C, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x54, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_12[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x84, 0x05, 0x90, 0x44, 0x03, 0x08, 0x04, 0x06, 0x0C, 0x24, 0x04, 0x14, 0x14, 0x0A, 0x04, 0x14, 0x08, 0x02, 0x0C, 0x08, 0x02, 0x0C, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x02, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_13[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x40, 0x06, 0x0C, 0x20, 0x06, 0x14, 0x10, 0x0B, 0x04, 0x10, 0x08, 0x02, 0x08, 0x08, 0x02, 0x08, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x02, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x04
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_14[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x10, 0x0A, 0x04, 0x90, 0x09, 0x02, 0x68, 0x08, 0x02, 0x18, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x20, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x02, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_15[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x20, 0x0A, 0x04, 0x10, 0x08, 0x02, 0x18, 0x08, 0x02, 0xF8, 0x0F, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x02, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_16[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x20, 0x0A, 0x04, 0x10, 0x08, 0x02, 0x18, 0x08, 0x02, 0x08, 0x08, 0x02, 0x18, 0x08, 0x06, 0x60, 0x08, 0x04, 0x80, 0x09, 0x14, 0x00, 0x0A, 0x0C, 0x02, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_17[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x20, 0x0A, 0x04, 0x10, 0x08, 0x02, 0x18, 0x08, 0x02, 0x08, 0x08, 0x02, 0x08, 0x08, 0x06, 0x08, 0x08, 0x04, 0x10, 0x08, 0x14, 0x20, 0x0A, 0x0C, 0x22, 0x04, 0x18, 0x40, 0x06, 0x30, 0x40, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_18[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x40, 0x0A, 0x04, 0x20, 0x08, 0x02, 0x10, 0x08, 0x02, 0x08, 0x08, 0x02, 0x04, 0x08, 0x06, 0x04, 0x09, 0x04, 0x04, 0x08, 0x14, 0x04, 0x0A, 0x0C, 0x04, 0x04, 0x18, 0x44, 0x06, 0x30, 0x04, 0x03, 0x60, 0x84, 0x01, 0x80, 0x7F, 0x02, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_19[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x40, 0x0A, 0x04, 0x20, 0x08, 0x02, 0x10, 0x08, 0x02, 0x08, 0x08, 0x02, 0x04, 0x08, 0x06, 0x02, 0x09, 0x04, 0x02, 0x08, 0x14, 0x01, 0x0A, 0x0C, 0x01, 0x04, 0x98, 0x40, 0x06, 0xB0, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_20[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x40, 0x0A, 0x04, 0x20, 0x08, 0x02, 0x10, 0x08, 0x02, 0x08, 0x08, 0x02, 0x06, 0x08, 0x86, 0x01, 0x09, 0x64, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0xD8, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_21[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x60, 0x08, 0x02, 0x10, 0x08, 0xFA, 0x0F, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_22[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x64, 0x60, 0x08, 0x82, 0x11, 0x08, 0x02, 0x0E, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_23[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x88, 0x00, 0x06, 0x0C, 0x01, 0x04, 0x14, 0x01, 0x0A, 0x04, 0x62, 0x08, 0x02, 0x34, 0x08, 0x02, 0x0C, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_24[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x84, 0x05, 0x90, 0x44, 0x03, 0x08, 0x04, 0x06, 0x0C, 0x04, 0x06, 0x14, 0x04, 0x0A, 0x04, 0x04, 0x08, 0x02, 0x64, 0x08, 0x02, 0x1C, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_25[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x40, 0x06, 0x0C, 0x20, 0x04, 0x14, 0x30, 0x0A, 0x04, 0x10, 0x08, 0x02, 0x68, 0x08, 0x02, 0x18, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_26[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x80, 0x09, 0x02, 0x60, 0x08, 0x02, 0x18, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x01
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_27[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0xE0, 0x08, 0x02, 0xF8, 0x0F, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_28[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0xE0, 0x08, 0x02, 0x18, 0x08, 0x02, 0x18, 0x08, 0x06, 0x60, 0x08, 0x04, 0x80, 0x09, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_29[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0xE0, 0x08, 0x02, 0x18, 0x08, 0x02, 0x08, 0x08, 0x06, 0x08, 0x08, 0x04, 0x10, 0x08, 0x14, 0x30, 0x0A, 0x0C, 0x20, 0x04, 0x18, 0x40, 0x06, 0x30, 0x40, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_30[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x80, 0x08, 0x02, 0x78, 0x08, 0x02, 0x04, 0x08, 0x06, 0x04, 0x08, 0x04, 0x04, 0x08, 0x14, 0x04, 0x0A, 0x0C, 0x04, 0x04, 0x18, 0x44, 0x06, 0x30, 0x04, 0x03, 0x60, 0xC4, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_31[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x80, 0x08, 0x02, 0x78, 0x08, 0x02, 0x04, 0x08, 0x06, 0x02, 0x08, 0x04, 0x02, 0x08, 0x14, 0x01, 0x0A, 0x0C, 0x01, 0x04, 0x98, 0x40, 0x06, 0xB0, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_32[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x80, 0x08, 0x02, 0x78, 0x08, 0x02, 0x06, 0x08, 0x86, 0x01, 0x08, 0x64, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x41, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_33[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0xFA, 0xFF, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_34[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x64, 0x00, 0x08, 0x82, 0x01, 0x08, 0x02, 0xFE, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_35[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x88, 0x00, 0x06, 0x0C, 0x01, 0x04, 0x14, 0x01, 0x0A, 0x04, 0x02, 0x08, 0x02, 0x04, 0x08, 0x02, 0xFC, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x01
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_36[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x44, 0x03, 0x08, 0x04, 0x06, 0x0C, 0x04, 0x04, 0x14, 0x04, 0x0A, 0x04, 0x04, 0x08, 0x02, 0x04, 0x08, 0x02, 0xFC, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_37[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x40, 0x06, 0x0C, 0x20, 0x04, 0x14, 0x10, 0x0A, 0x04, 0x10, 0x08, 0x02, 0x08, 0x08, 0x02, 0xF8, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x08, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_38[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x80, 0x09, 0x02, 0x60, 0x08, 0x02, 0xF8, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_39[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0xF8, 0x0F, 0x02, 0xF0, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x08
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_40[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x40, 0x0C, 0x02, 0xF8, 0x08, 0x06, 0x60, 0x08, 0x04, 0x80, 0x09, 0x14, 0x40, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x11, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_41[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x40, 0x0C, 0x02, 0xF8, 0x08, 0x06, 0x08, 0x08, 0x04, 0x10, 0x08, 0x14, 0x10, 0x0E, 0x0C, 0x20, 0x04, 0x98, 0x40, 0x06, 0x30, 0x40, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_42[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x7C, 0x08, 0x06, 0x84, 0x08, 0x04, 0x04, 0x08, 0x14, 0x04, 0x0A, 0x0C, 0x04, 0x04, 0x98, 0x44, 0x06, 0x30, 0x04, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x80, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_43[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x7C, 0x08, 0x06, 0x82, 0x08, 0x04, 0x02, 0x08, 0x14, 0x01, 0x0A, 0x0C, 0x01, 0x04, 0x98, 0x40, 0x06, 0xB0, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_44[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x7E, 0x08, 0x86, 0x81, 0x08, 0x64, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x4C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_45[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0xFA, 0x07, 0x08, 0x02, 0x38, 0x08, 0x06, 0xC0, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_46[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x64, 0x00, 0x08, 0x82, 0x01, 0x08, 0x02, 0x06, 0x08, 0x02, 0x38, 0x08, 0x06, 0xC0, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_47[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x88, 0x00, 0x06, 0x0C, 0x01, 0x04, 0x14, 0x01, 0x0A, 0x04, 0x02, 0x08, 0x02, 0x04, 0x08, 0x02, 0x84, 0x08, 0x02, 0x38, 0x08, 0x06, 0xC0, 0x08, 0x04, 0x00, 0x08, 0x14, 0x20, 0x0A, 0x0C, 0x02, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_48[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x84, 0x05, 0x90, 0x44, 0x03, 0x08, 0x04, 0x06, 0x0C, 0x04, 0x04, 0x14, 0x04, 0x0A, 0x04, 0x04, 0x08, 0x02, 0x04, 0x08, 0x02, 0x04, 0x08, 0x02, 0x18, 0x08, 0x06, 0x60, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_49[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x40, 0x06, 0x0C, 0x20, 0x06, 0x14, 0x30, 0x0A, 0x04, 0x10, 0x08, 0x02, 0x08, 0x08, 0x02, 0x08, 0x08, 0x02, 0x18, 0x08, 0x06, 0x60, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_50[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x80, 0x09, 0x02, 0x60, 0x08, 0x02, 0x18, 0x08, 0x02, 0x18, 0x08, 0x06, 0x60, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_51[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0xF8, 0x0F, 0x02, 0x18, 0x08, 0x06, 0x30, 0x08, 0x04, 0x40, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_52[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x18, 0x08, 0x06, 0x70, 0x08, 0x04, 0xC0, 0x09, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_53[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x18, 0x08, 0x06, 0x38, 0x08, 0x04, 0x50, 0x08, 0x14, 0x20, 0x0A, 0x0C, 0x20, 0x04, 0x98, 0x40, 0x06, 0x30, 0x40, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_54[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x0A, 0x02, 0x0C, 0x08, 0x06, 0x14, 0x08, 0x04, 0x64, 0x0A, 0x14, 0x04, 0x0A, 0x2C, 0x04, 0x04, 0x18, 0x44, 0x06, 0x30, 0x04, 0x03, 0x60, 0x84, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_55[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x0A, 0x02, 0x0C, 0x08, 0x06, 0x12, 0x08, 0x04, 0x62, 0x0A, 0x14, 0x01, 0x0A, 0x2C, 0x01, 0x04, 0x98, 0x40, 0x06, 0xB0, 0x00, 0x03, 0x60, 0xC2, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_56[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x0A, 0x02, 0x0E, 0x08, 0x86, 0x11, 0x08, 0x64, 0x60, 0x0A, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC1, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_57[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0xFA, 0x07, 0x0A, 0x02, 0x08, 0x08, 0x06, 0x10, 0x08, 0x04, 0x20, 0x0A, 0x14, 0x20, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x10, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_58[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x1C, 0x00, 0x0A, 0x64, 0x00, 0x08, 0x82, 0x01, 0x08, 0x02, 0x06, 0x0A, 0x02, 0x08, 0x08, 0x06, 0x10, 0x08, 0x04, 0x20, 0x0A, 0x14, 0x20, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x48, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x10, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_59[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x88, 0x00, 0x06, 0x0C, 0x01, 0x04, 0x14, 0x01, 0x0A, 0x04, 0x02, 0x08, 0x02, 0x04, 0x08, 0x02, 0x04, 0x0A, 0x02, 0x08, 0x08, 0x06, 0x10, 0x08, 0x04, 0x20, 0x08, 0x14, 0x20, 0x0A, 0x0C, 0x00, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_60[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x84, 0x05, 0x90, 0x44, 0x03, 0x08, 0x04, 0x06, 0x0C, 0x04, 0x04, 0x14, 0x04, 0x0A, 0x04, 0x04, 0x08, 0x02, 0x04, 0x08, 0x02, 0x04, 0x08, 0x02, 0x08, 0x08, 0x06, 0x08, 0x08, 0x04, 0x10, 0x08, 0x14, 0x20, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_61[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x40, 0x06, 0x0C, 0x20, 0x04, 0x14, 0x10, 0x0A, 0x04, 0x10, 0x08, 0x02, 0x08, 0x08, 0x02, 0x08, 0x08, 0x02, 0x08, 0x08, 0x06, 0x08, 0x08, 0x04, 0x10, 0x08, 0x14, 0x20, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_62[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x80, 0x09, 0x02, 0x60, 0x08, 0x02, 0x18, 0x08, 0x02, 0x08, 0x08, 0x06, 0x08, 0x08, 0x04, 0x10, 0x08, 0x14, 0x20, 0x0A, 0x0C, 0x00, 0x05, 0x98, 0x40, 0x06, 0x30, 0x00, 0x13, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_63[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0xF8, 0x0F, 0x02, 0x08, 0x08, 0x06, 0x08, 0x08, 0x04, 0x10, 0x08, 0x14, 0x10, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_64[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x18, 0x08, 0x06, 0x68, 0x08, 0x04, 0x90, 0x09, 0x14, 0x10, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x60, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_65[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x08, 0x08, 0x06, 0x28, 0x08, 0x04, 0x10, 0x08, 0x14, 0x30, 0x0A, 0x0C, 0x20, 0x04, 0x98, 0x40, 0x06, 0x30, 0x40, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_66[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x0C, 0x08, 0x06, 0x0C, 0x08, 0x04, 0x0C, 0x08, 0x14, 0x0C, 0x0A, 0x0C, 0x14, 0x04, 0x98, 0x44, 0x06, 0x30, 0x04, 0x03, 0x60, 0x84, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_67[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x0C, 0x08, 0x06, 0x0A, 0x08, 0x04, 0x0A, 0x08, 0x14, 0x09, 0x0A, 0x0C, 0x11, 0x04, 0x98, 0x40, 0x06, 0xB0, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_68[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x0E, 0x08, 0x86, 0x09, 0x08, 0x64, 0x08, 0x08, 0x14, 0x08, 0x0A, 0x0C, 0x10, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_69[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0xFA, 0x07, 0x08, 0x02, 0x00, 0x08, 0x06, 0x08, 0x08, 0x04, 0x08, 0x08, 0x14, 0x08, 0x0A, 0x0C, 0x08, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_70[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x1C, 0x00, 0x0A, 0x64, 0x00, 0x08, 0x82, 0x01, 0x08, 0x02, 0x06, 0x08, 0x22, 0x04, 0x08, 0x06, 0x08, 0x08, 0x04, 0x08, 0x08, 0x14, 0x08, 0x0A, 0x0C, 0x08, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_71[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x88, 0x00, 0x06, 0x0C, 0x01, 0x04, 0x14, 0x01, 0x0A, 0x04, 0x02, 0x08, 0x02, 0x04, 0x08, 0x02, 0x04, 0x08, 0x02, 0x04, 0x08, 0x06, 0x08, 0x08, 0x04, 0x08, 0x08, 0x14, 0x08, 0x0A, 0x0C, 0x08, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_72[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x84, 0x05, 0x90, 0x44, 0x03, 0x08, 0x04, 0x06, 0x0C, 0x04, 0x04, 0x14, 0x04, 0x0A, 0x04, 0x04, 0x08, 0x02, 0x04, 0x08, 0x02, 0x04, 0x08, 0x02, 0x04, 0x08, 0x06, 0x04, 0x08, 0x04, 0x04, 0x08, 0x14, 0x04, 0x0A, 0x0C, 0x04, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_73[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x40, 0x06, 0x0C, 0x20, 0x04, 0x14, 0x10, 0x0A, 0x04, 0x10, 0x08, 0x02, 0x08, 0x08, 0x02, 0x08, 0x08, 0x02, 0x04, 0x08, 0x06, 0x04, 0x08, 0x04, 0x04, 0x08, 0x14, 0x04, 0x0A, 0x0C, 0x04, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x02, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_74[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x80, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x80, 0x09, 0x02, 0x60, 0x08, 0x02, 0x18, 0x08, 0x02, 0x04, 0x08, 0x06, 0x04, 0x08, 0x04, 0x04, 0x08, 0x14, 0x04, 0x0A, 0x0C, 0x04, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_75[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x80, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0xF8, 0x0F, 0x02, 0x04, 0x08, 0x06, 0x04, 0x08, 0x04, 0x04, 0x08, 0x14, 0x04, 0x0A, 0x0C, 0x04, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_76[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x80, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x3C, 0x08, 0x06, 0x64, 0x08, 0x04, 0x84, 0x09, 0x14, 0x04, 0x0A, 0x0C, 0x04, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x90, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_77[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x80, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x2C, 0x08, 0x06, 0x0C, 0x08, 0x04, 0x14, 0x08, 0x14, 0x24, 0x0A, 0x0C, 0x24, 0x04, 0x98, 0x40, 0x06, 0x30, 0x40, 0x13, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x04
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_78[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x0C, 0x02, 0x04, 0x08, 0x06, 0x06, 0x08, 0x04, 0x04, 0x08, 0x14, 0x04, 0x0A, 0x0C, 0x06, 0x04, 0x98, 0x54, 0x06, 0x30, 0x04, 0x03, 0x60, 0x84, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_79[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x0C, 0x02, 0x04, 0x08, 0x06, 0x06, 0x08, 0x04, 0x06, 0x08, 0x14, 0x01, 0x0A, 0x0C, 0x03, 0x04, 0x98, 0x40, 0x06, 0xB0, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_80[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x0C, 0x02, 0x06, 0x08, 0x86, 0x05, 0x08, 0x64, 0x04, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x02, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_81[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0xFA, 0x07, 0x0C, 0x02, 0x04, 0x08, 0x06, 0x04, 0x08, 0x04, 0x02, 0x08, 0x14, 0x02, 0x0A, 0x0C, 0x02, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_82[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x64, 0x00, 0x08, 0x82, 0x01, 0x08, 0x02, 0x06, 0x0C, 0x02, 0x04, 0x08, 0x06, 0x04, 0x08, 0x04, 0x02, 0x08, 0x14, 0x02, 0x0A, 0x0C, 0x02, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_83[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x88, 0x00, 0x06, 0x0C, 0x01, 0x04, 0x14, 0x01, 0x0A, 0x04, 0x02, 0x08, 0x02, 0x04, 0x08, 0x02, 0x04, 0x0C, 0x02, 0x04, 0x08, 0x06, 0x04, 0x0C, 0x04, 0x02, 0x08, 0x14, 0x02, 0x0A, 0x0C, 0x02, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_84[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x84, 0x05, 0x90, 0x44, 0x03, 0x08, 0x04, 0x06, 0x0C, 0x04, 0x04, 0x14, 0x04, 0x0A, 0x04, 0x04, 0x08, 0x02, 0x04, 0x08, 0x02, 0x04, 0x08, 0x02, 0x04, 0x08, 0x06, 0x04, 0x08, 0x04, 0x02, 0x08, 0x14, 0x02, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_85[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x40, 0x06, 0x0C, 0x20, 0x04, 0x14, 0x10, 0x0A, 0x04, 0x10, 0x08, 0x02, 0x08, 0x08, 0x02, 0x08, 0x08, 0x02, 0x04, 0x08, 0x06, 0x04, 0x08, 0x04, 0x02, 0x08, 0x14, 0x02, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_86[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x06, 0x14, 0x00, 0x0A, 0x04, 0x80, 0x09, 0x02, 0x60, 0x08, 0x02, 0x18, 0x08, 0x02, 0x04, 0x08, 0x06, 0x04, 0x08, 0x04, 0x02, 0x08, 0x14, 0x02, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_87[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0xF8, 0x0F, 0x02, 0x04, 0x08, 0x06, 0x02, 0x08, 0x04, 0x01, 0x08, 0x14, 0x01, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_88[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x1C, 0x08, 0x06, 0x62, 0x08, 0x04, 0x81, 0x09, 0x14, 0x01, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_89[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x0C, 0x08, 0x06, 0x0A, 0x08, 0x04, 0x11, 0x08, 0x14, 0x21, 0x0A, 0x0C, 0x20, 0x05, 0x98, 0x40, 0x06, 0x30, 0x40, 0x03, 0x60, 0xD0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_90[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x04, 0x08, 0x06, 0x06, 0x08, 0x04, 0x05, 0x08, 0x94, 0x04, 0x0A, 0x0C, 0x04, 0x04, 0x98, 0x44, 0x06, 0x30, 0x04, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_91[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x04, 0x08, 0x06, 0x02, 0x08, 0x04, 0x03, 0x08, 0x94, 0x01, 0x0A, 0x0C, 0x01, 0x04, 0x98, 0x40, 0x06, 0xB0, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_92[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x06, 0x08, 0x86, 0x03, 0x08, 0x64, 0x01, 0x08, 0x94, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_93[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0xFA, 0x07, 0x08, 0x02, 0x06, 0x08, 0x06, 0x01, 0x08, 0x84, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x18, 0x40, 0x06, 0x30, 0x04, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_94[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x64, 0x00, 0x08, 0x82, 0x01, 0x08, 0x02, 0x06, 0x08, 0x02, 0x06, 0x08, 0x06, 0x01, 0x08, 0x84, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_95[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x88, 0x00, 0x06, 0x0C, 0x01, 0x04, 0x14, 0x01, 0x0A, 0x04, 0x02, 0x08, 0x02, 0x04, 0x08, 0x02, 0x04, 0x08, 0x02, 0x26, 0x08, 0x06, 0x01, 0x08, 0x84, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_96[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x84, 0x05, 0x90, 0x44, 0x03, 0x08, 0x04, 0x06, 0x0C, 0x04, 0x04, 0x14, 0x04, 0x0A, 0x04, 0x04, 0x08, 0x02, 0x04, 0x08, 0x02, 0x04, 0x08, 0x02, 0x06, 0x08, 0x86, 0x01, 0x08, 0x04, 0x00, 0x08, 0x14, 0x04, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_97[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x40, 0x06, 0x0C, 0x20, 0x04, 0x14, 0x10, 0x0A, 0x04, 0x10, 0x08, 0x02, 0x08, 0x08, 0x02, 0x08, 0x08, 0x02, 0x06, 0x08, 0x86, 0x01, 0x08, 0x04, 0x00, 0x08, 0x14, 0x04, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_98[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x80, 0x09, 0x02, 0x60, 0x0C, 0x02, 0x18, 0x08, 0x02, 0x06, 0x08, 0x86, 0x01, 0x08, 0x04, 0x00, 0x08, 0x14, 0x04, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_99[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0xF8, 0x0F, 0x02, 0x03, 0x08, 0xC6, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_100[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x1B, 0x08, 0xC6, 0x60, 0x08, 0x04, 0x80, 0x09, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x18, 0x60, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_101[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x0B, 0x08, 0xC6, 0x08, 0x08, 0x04, 0x10, 0x08, 0x14, 0x30, 0x0A, 0x0C, 0x20, 0x04, 0x18, 0x40, 0x06, 0x30, 0x40, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_102[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x04, 0x08, 0xC2, 0x07, 0x08, 0x06, 0x04, 0x08, 0x04, 0x44, 0x08, 0x14, 0x04, 0x0A, 0x0C, 0x04, 0x04, 0x98, 0x44, 0x06, 0x30, 0x04, 0x03, 0x60, 0x84, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_103[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x04, 0x08, 0xC2, 0x07, 0x08, 0x06, 0x02, 0x08, 0x04, 0x02, 0x08, 0x14, 0x01, 0x0A, 0x0C, 0x01, 0x04, 0x98, 0x40, 0x06, 0xF0, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_104[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0x02, 0x04, 0x08, 0xC2, 0x07, 0x08, 0x86, 0x01, 0x08, 0x64, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x18, 0x40, 0x06, 0x30, 0x04, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_105[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0xFA, 0x07, 0x08, 0xC2, 0x03, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_106[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x64, 0x00, 0x08, 0x82, 0x01, 0x08, 0x02, 0x06, 0x08, 0xC2, 0x03, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_107[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x88, 0x00, 0x06, 0x0C, 0x01, 0x04, 0x14, 0x01, 0x0A, 0x04, 0x02, 0x08, 0x02, 0x04, 0x08, 0x02, 0x04, 0x08, 0xC2, 0x03, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_108[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x84, 0x05, 0x90, 0x44, 0x03, 0x08, 0x04, 0x06, 0x0C, 0x04, 0x04, 0x14, 0x04, 0x0A, 0x04, 0x04, 0x08, 0x02, 0x04, 0x08, 0xC2, 0x07, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_109[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x40, 0x06, 0x0C, 0x20, 0x06, 0x14, 0x10, 0x0A, 0x04, 0x10, 0x08, 0x02, 0x08, 0x08, 0xC2, 0x0F, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_110[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x80, 0x09, 0x02, 0x60, 0x08, 0xC2, 0x1F, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_111[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0xC2, 0xFF, 0x0F, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_112[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0xC2, 0x07, 0x08, 0x02, 0x18, 0x08, 0x06, 0x60, 0x08, 0x04, 0x80, 0x0D, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_113[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x02, 0x00, 0x08, 0xC2, 0x07, 0x08, 0x02, 0x08, 0x08, 0x06, 0x08, 0x08, 0x04, 0x10, 0x0C, 0x14, 0x20, 0x0A, 0x0C, 0x20, 0x04, 0x98, 0x40, 0x06, 0x30, 0x40, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_114[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x42, 0x00, 0x08, 0x82, 0x87, 0x08, 0x02, 0x04, 0x08, 0x06, 0x04, 0x08, 0x04, 0x04, 0x08, 0x14, 0x04, 0x0A, 0x0C, 0x04, 0x04, 0x98, 0x44, 0x06, 0x30, 0x04, 0x03, 0x60, 0xC4, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_115[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x42, 0x00, 0x08, 0x82, 0x87, 0x08, 0x02, 0x04, 0x08, 0x06, 0x02, 0x08, 0x04, 0x02, 0x08, 0x14, 0x01, 0x0A, 0x0C, 0x01, 0x04, 0x98, 0x40, 0x06, 0xB0, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_116[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0x42, 0x00, 0x08, 0x82, 0x87, 0x08, 0x02, 0x06, 0x08, 0x86, 0x01, 0x08, 0x64, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x01
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_117[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x04, 0x00, 0x08, 0xC2, 0x00, 0x08, 0xFA, 0x87, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_118[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x64, 0x00, 0x08, 0xC2, 0x01, 0x08, 0x02, 0x87, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x02, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_119[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x88, 0x00, 0x06, 0x0C, 0x01, 0x04, 0x14, 0x01, 0x0A, 0x04, 0x02, 0x08, 0xC2, 0x04, 0x08, 0x02, 0x07, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_120[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x84, 0x05, 0x90, 0x44, 0x03, 0x08, 0x04, 0x06, 0x0C, 0x04, 0x04, 0x14, 0x04, 0x0A, 0x44, 0x44, 0x08, 0x82, 0x05, 0x08, 0x02, 0x06, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x04, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_121[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x40, 0x06, 0x0C, 0x20, 0x06, 0x14, 0x30, 0x0A, 0x44, 0x10, 0x08, 0x82, 0x09, 0x08, 0x02, 0x0E, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x04, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_122[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x44, 0x80, 0x09, 0x82, 0x61, 0x08, 0x02, 0x1E, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_123[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x84, 0x00, 0x08, 0x02, 0x03, 0x08, 0x02, 0x04, 0x08, 0x02, 0x18, 0x08, 0x06, 0x60, 0x08, 0x04, 0x80, 0x09, 0x14, 0x40, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_124[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x14, 0x00, 0x0A, 0x84, 0x00, 0x08, 0x02, 0x03, 0x08, 0x02, 0x04, 0x08, 0x02, 0x18, 0x08, 0x06, 0x08, 0x08, 0x04, 0x10, 0x08, 0x14, 0x20, 0x0A, 0x0C, 0x20, 0x04, 0x98, 0x40, 0x06, 0x30, 0x40, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_125[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x94, 0x00, 0x0A, 0x04, 0x01, 0x08, 0x02, 0x02, 0x08, 0x02, 0x04, 0x08, 0x02, 0x04, 0x08, 0x06, 0x04, 0x08, 0x04, 0x04, 0x08, 0x14, 0x04, 0x0A, 0x0C, 0x14, 0x04, 0x98, 0x44, 0x06, 0x30, 0x04, 0x03, 0x60, 0x84, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_126[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x94, 0x00, 0x0A, 0x04, 0x01, 0x08, 0x02, 0x02, 0x08, 0x02, 0x04, 0x08, 0x02, 0x04, 0x08, 0x06, 0x02, 0x08, 0x04, 0x02, 0x08, 0x14, 0x01, 0x0A, 0x0C, 0x01, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_127[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x94, 0x00, 0x0A, 0x04, 0x01, 0x08, 0x02, 0x02, 0x08, 0x02, 0x04, 0x08, 0x02, 0x06, 0x08, 0x86, 0x01, 0x08, 0x64, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_128[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x94, 0x01, 0x0A, 0x04, 0x01, 0x08, 0x02, 0x02, 0x08, 0xFA, 0x07, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x20, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_129[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x00, 0x04, 0x94, 0x01, 0x0A, 0x64, 0x01, 0x08, 0x82, 0x03, 0x08, 0x02, 0x06, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x02, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_130[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x88, 0x00, 0x06, 0x0C, 0x01, 0x04, 0x94, 0x01, 0x0A, 0x04, 0x03, 0x08, 0x02, 0x06, 0x08, 0x02, 0x04, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x08, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC1, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_131[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x84, 0x05, 0x90, 0x44, 0x03, 0x08, 0x04, 0x06, 0x0C, 0x05, 0x04, 0x14, 0x05, 0x0A, 0x04, 0x06, 0x08, 0x02, 0x04, 0x08, 0x02, 0x04, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x54, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_132[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x40, 0x06, 0x0C, 0x21, 0x04, 0x14, 0x11, 0x0A, 0x04, 0x12, 0x08, 0x02, 0x0C, 0x08, 0x02, 0x0C, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x54, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_133[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x01, 0x04, 0x14, 0x01, 0x0A, 0x04, 0x82, 0x09, 0x02, 0x74, 0x08, 0x02, 0x1C, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x54, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_134[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x02, 0x04, 0x14, 0x02, 0x0A, 0x04, 0x02, 0x08, 0x02, 0x04, 0x08, 0x02, 0xFC, 0x0F, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x54, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_135[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x02, 0x04, 0x14, 0x02, 0x0A, 0x04, 0x02, 0x08, 0x02, 0x04, 0x08, 0x02, 0x04, 0x08, 0x02, 0x18, 0x08, 0x06, 0x60, 0x0C, 0x04, 0x80, 0x09, 0x54, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_136[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x02, 0x04, 0x14, 0x02, 0x0A, 0x04, 0x02, 0x08, 0x02, 0x04, 0x08, 0x02, 0x04, 0x08, 0x02, 0x08, 0x08, 0x06, 0x08, 0x0C, 0x04, 0x10, 0x09, 0x54, 0x30, 0x0A, 0x0C, 0x20, 0x04, 0x18, 0x40, 0x06, 0x30, 0x40, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_137[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x02, 0x04, 0x14, 0x04, 0x0A, 0x04, 0x04, 0x08, 0x02, 0x04, 0x08, 0x02, 0x04, 0x08, 0x02, 0x04, 0x08, 0x06, 0x04, 0x08, 0x04, 0x04, 0x08, 0x54, 0x04, 0x0A, 0x0C, 0x04, 0x04, 0x18, 0x44, 0x06, 0x30, 0x04, 0x03, 0x60, 0xC4, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_138[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x02, 0x04, 0x14, 0x04, 0x0A, 0x04, 0x04, 0x08, 0x02, 0x04, 0x08, 0x02, 0x04, 0x08, 0x02, 0x04, 0x08, 0x06, 0x02, 0x08, 0x04, 0x02, 0x08, 0x54, 0x01, 0x0A, 0x0C, 0x01, 0x04, 0x98, 0x40, 0x06, 0xB0, 0x00, 0x03, 0x60, 0xC0, 0x05, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_139[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x02, 0x04, 0x14, 0x04, 0x0A, 0x04, 0x04, 0x08, 0x02, 0x04, 0x08, 0x02, 0x04, 0x08, 0x02, 0x06, 0x08, 0x86, 0x01, 0x08, 0x64, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_140[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x04, 0x04, 0x14, 0x04, 0x0A, 0x04, 0x44, 0x08, 0x02, 0x04, 0x08, 0xFA, 0x07, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x05, 0x18, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0xC0, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_141[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x08, 0x00, 0x06, 0x0C, 0x04, 0x04, 0x14, 0x04, 0x0A, 0x64, 0x44, 0x08, 0x82, 0x05, 0x08, 0x02, 0x06, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x44, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x10
|
||||
};
|
||||
|
||||
const unsigned char clock_frame_142[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0xF1, 0x00, 0x60, 0x80, 0x05, 0x90, 0x40, 0x03, 0x88, 0x00, 0x06, 0x0C, 0x05, 0x04, 0x14, 0x05, 0x0A, 0x04, 0x46, 0x08, 0x02, 0x04, 0x08, 0x02, 0x04, 0x08, 0x02, 0x00, 0x08, 0x06, 0x00, 0x08, 0x04, 0x00, 0x08, 0x14, 0x00, 0x0A, 0x0C, 0x00, 0x04, 0x98, 0x40, 0x06, 0x30, 0x00, 0x03, 0x60, 0x80, 0x01, 0x80, 0x7F, 0x10, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char* const clock_frames[] PROGMEM = {
|
||||
clock_frame_0,
|
||||
clock_frame_1,
|
||||
clock_frame_2,
|
||||
clock_frame_3,
|
||||
clock_frame_4,
|
||||
clock_frame_5,
|
||||
clock_frame_6,
|
||||
clock_frame_7,
|
||||
clock_frame_8,
|
||||
clock_frame_9,
|
||||
clock_frame_10,
|
||||
clock_frame_11,
|
||||
clock_frame_12,
|
||||
clock_frame_13,
|
||||
clock_frame_14,
|
||||
clock_frame_15,
|
||||
clock_frame_16,
|
||||
clock_frame_17,
|
||||
clock_frame_18,
|
||||
clock_frame_19,
|
||||
clock_frame_20,
|
||||
clock_frame_21,
|
||||
clock_frame_22,
|
||||
clock_frame_23,
|
||||
clock_frame_24,
|
||||
clock_frame_25,
|
||||
clock_frame_26,
|
||||
clock_frame_27,
|
||||
clock_frame_28,
|
||||
clock_frame_29,
|
||||
clock_frame_30,
|
||||
clock_frame_31,
|
||||
clock_frame_32,
|
||||
clock_frame_33,
|
||||
clock_frame_34,
|
||||
clock_frame_35,
|
||||
clock_frame_36,
|
||||
clock_frame_37,
|
||||
clock_frame_38,
|
||||
clock_frame_39,
|
||||
clock_frame_40,
|
||||
clock_frame_41,
|
||||
clock_frame_42,
|
||||
clock_frame_43,
|
||||
clock_frame_44,
|
||||
clock_frame_45,
|
||||
clock_frame_46,
|
||||
clock_frame_47,
|
||||
clock_frame_48,
|
||||
clock_frame_49,
|
||||
clock_frame_50,
|
||||
clock_frame_51,
|
||||
clock_frame_52,
|
||||
clock_frame_53,
|
||||
clock_frame_54,
|
||||
clock_frame_55,
|
||||
clock_frame_56,
|
||||
clock_frame_57,
|
||||
clock_frame_58,
|
||||
clock_frame_59,
|
||||
clock_frame_60,
|
||||
clock_frame_61,
|
||||
clock_frame_62,
|
||||
clock_frame_63,
|
||||
clock_frame_64,
|
||||
clock_frame_65,
|
||||
clock_frame_66,
|
||||
clock_frame_67,
|
||||
clock_frame_68,
|
||||
clock_frame_69,
|
||||
clock_frame_70,
|
||||
clock_frame_71,
|
||||
clock_frame_72,
|
||||
clock_frame_73,
|
||||
clock_frame_74,
|
||||
clock_frame_75,
|
||||
clock_frame_76,
|
||||
clock_frame_77,
|
||||
clock_frame_78,
|
||||
clock_frame_79,
|
||||
clock_frame_80,
|
||||
clock_frame_81,
|
||||
clock_frame_82,
|
||||
clock_frame_83,
|
||||
clock_frame_84,
|
||||
clock_frame_85,
|
||||
clock_frame_86,
|
||||
clock_frame_87,
|
||||
clock_frame_88,
|
||||
clock_frame_89,
|
||||
clock_frame_90,
|
||||
clock_frame_91,
|
||||
clock_frame_92,
|
||||
clock_frame_93,
|
||||
clock_frame_94,
|
||||
clock_frame_95,
|
||||
clock_frame_96,
|
||||
clock_frame_97,
|
||||
clock_frame_98,
|
||||
clock_frame_99,
|
||||
clock_frame_100,
|
||||
clock_frame_101,
|
||||
clock_frame_102,
|
||||
clock_frame_103,
|
||||
clock_frame_104,
|
||||
clock_frame_105,
|
||||
clock_frame_106,
|
||||
clock_frame_107,
|
||||
clock_frame_108,
|
||||
clock_frame_109,
|
||||
clock_frame_110,
|
||||
clock_frame_111,
|
||||
clock_frame_112,
|
||||
clock_frame_113,
|
||||
clock_frame_114,
|
||||
clock_frame_115,
|
||||
clock_frame_116,
|
||||
clock_frame_117,
|
||||
clock_frame_118,
|
||||
clock_frame_119,
|
||||
clock_frame_120,
|
||||
clock_frame_121,
|
||||
clock_frame_122,
|
||||
clock_frame_123,
|
||||
clock_frame_124,
|
||||
clock_frame_125,
|
||||
clock_frame_126,
|
||||
clock_frame_127,
|
||||
clock_frame_128,
|
||||
clock_frame_129,
|
||||
clock_frame_130,
|
||||
clock_frame_131,
|
||||
clock_frame_132,
|
||||
clock_frame_133,
|
||||
clock_frame_134,
|
||||
clock_frame_135,
|
||||
clock_frame_136,
|
||||
clock_frame_137,
|
||||
clock_frame_138,
|
||||
clock_frame_139,
|
||||
clock_frame_140,
|
||||
clock_frame_141,
|
||||
clock_frame_142,
|
||||
};
|
||||
130
display_ui.cpp
130
display_ui.cpp
|
|
@ -1,11 +1,11 @@
|
|||
#include "display_ui.h"
|
||||
#include <Wire.h>
|
||||
#include <U8g2lib.h>
|
||||
#include "fire_frames.h"
|
||||
#include "clock_frames.h"
|
||||
|
||||
// Bitmaps & Animation-Dateien aus Lopaka
|
||||
//#include "Clock.h"
|
||||
//#include "Clock.h"
|
||||
//#include "fire_flames.h"
|
||||
static uint8_t fire_flames_frame = 0;
|
||||
static uint8_t clock_frame = 0;
|
||||
|
||||
uint32_t lastDispTime = 0;
|
||||
|
||||
|
|
@ -21,11 +21,6 @@ static const unsigned char image_paint_27_bits[] U8X8_PROGMEM = {
|
|||
static const unsigned char image_checked_bits[] U8X8_PROGMEM = {0x00,0x00,0x40,0x21,0x13,0x0e,0x04,0x00};
|
||||
static const unsigned char image_crossed_bits[] U8X8_PROGMEM = {0x00,0x21,0x12,0x0c,0x1e,0x33,0x00,0x00};
|
||||
|
||||
|
||||
// Animations-Zähler
|
||||
//static uint8_t fire_flames_frame = 0;
|
||||
//static uint8_t Clock_frame = 0;
|
||||
|
||||
// U8g2-Display-Objekt
|
||||
static U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
|
||||
|
||||
|
|
@ -39,18 +34,21 @@ void initDisplay() {
|
|||
// ANIMATIONEN BERECHNEN & ZEICHNEN
|
||||
// #############################################################
|
||||
static void updateAnimations() {
|
||||
//fire_flames_frame = (millis() / 77) % 8;
|
||||
//Clock_frame = (millis() / 200) % 143;
|
||||
// 8 Frames: Wechsel alle 77 ms
|
||||
fire_flames_frame = (millis() / 77) % FIRE_FLAMES_FRAME_COUNT;
|
||||
|
||||
// 143 Frames: Wechsel alle 50 ms (ca. 7 Sekunden Gesamt-Umlaufzeit)
|
||||
clock_frame = (millis() / 50) % CLOCK_FRAME_COUNT;
|
||||
}
|
||||
|
||||
static void drawAnimation_fire_flames() {
|
||||
//u8g2.setDrawColor(1);
|
||||
// u8g2.drawXBMP(80, 30, 21, 32, fire_flames_frames[fire_flames_frame]);
|
||||
u8g2.setDrawColor(1);
|
||||
u8g2.drawXBMP(80, 30, FIRE_FLAMES_WIDTH, FIRE_FLAMES_HEIGHT, fire_flames_frames[fire_flames_frame]);
|
||||
}
|
||||
|
||||
static void drawAnimation_Clock() {
|
||||
//u8g2.setDrawColor(1);
|
||||
// u8g2.drawXBMP(104, 40, 21, 21, Clock_frames[Clock_frame]);
|
||||
u8g2.setDrawColor(1);
|
||||
u8g2.drawXBMP(104, 40, CLOCK_WIDTH, CLOCK_HEIGHT, clock_frames[clock_frame]);
|
||||
}
|
||||
|
||||
// #############################################################
|
||||
|
|
@ -61,103 +59,116 @@ static void drawHomeScreen(int currentSpeed, int curH, int curM, bool timeValid,
|
|||
u8g2.setBitmapMode(1);
|
||||
u8g2.setDrawColor(1); // 1 = Weiß (an)
|
||||
|
||||
// 1. Feste Beschriftungen
|
||||
// Aktuelle Geschwindigkeit
|
||||
u8g2.setFont(u8g2_font_helvB08_tr);
|
||||
u8g2.drawStr(5, 9, "Geschw");
|
||||
u8g2.drawStr(5, 20, "Zeituhr");
|
||||
u8g2.drawStr(5, 31, "Temp");
|
||||
|
||||
// 2. Dynamischer Wert: Geschwindigkeit
|
||||
char speedBuf[10];
|
||||
snprintf(speedBuf, sizeof(speedBuf), "%d", currentSpeed);
|
||||
u8g2.drawStr(51, 8, speedBuf);
|
||||
u8g2.drawStr(2, 10, "Geschw:");
|
||||
char speedBuf[16];
|
||||
snprintf(speedBuf, sizeof(speedBuf), "%d U/min", currentSpeed);
|
||||
u8g2.drawStr(52, 10, speedBuf);
|
||||
|
||||
// Zeitschaltuhr
|
||||
u8g2.drawStr(2, 21, "Zeituhr");
|
||||
// 3. Dynamische Zeitschaltuhr: Start- und Endzeit
|
||||
char startBuf[8];
|
||||
char endBuf[8];
|
||||
snprintf(startBuf, sizeof(startBuf), "%02d:%02d", settings.startHour, settings.startMin);
|
||||
snprintf(endBuf, sizeof(endBuf), "%02d:%02d", settings.endHour, settings.endMin);
|
||||
char timerBuf[16];
|
||||
if (settings.timerEnabled) {
|
||||
snprintf(timerBuf, sizeof(timerBuf), "%02d:%02d-%02d:%02d",
|
||||
settings.startHour, settings.startMin, settings.endHour, settings.endMin);
|
||||
} else {
|
||||
snprintf(timerBuf, sizeof(timerBuf), "Deaktiviert");
|
||||
}
|
||||
u8g2.drawStr(52, 21, timerBuf);
|
||||
|
||||
u8g2.drawStr(51, 19, startBuf);
|
||||
u8g2.drawLine(79, 16, 83, 16); // Bindestrich zwischen Zeiten
|
||||
u8g2.drawStr(89, 19, endBuf);
|
||||
// Aktuelle Temperatur
|
||||
u8g2.drawStr(2, 32, "Temp");
|
||||
char tempBuf[16];
|
||||
snprintf(tempBuf, sizeof(tempBuf), "%d / %d \xb0""C", curTemp, settings.maxTemp); // \xb0 = Grad-Zeichen
|
||||
u8g2.drawStr(52, 32, tempBuf);
|
||||
|
||||
// 4. Dynamische Temperatur (Ist & Soll/Max)
|
||||
char curTempBuf[10];
|
||||
snprintf(curTempBuf, sizeof(curTempBuf), "%d", curTemp);
|
||||
u8g2.drawStr(52, 30, curTempBuf);
|
||||
u8g2.drawLine(67, 24, 67, 29); // Trennstrich
|
||||
|
||||
char maxTempBuf[8];
|
||||
snprintf(maxTempBuf, sizeof(maxTempBuf), "%d", settings.maxTemp);
|
||||
u8g2.drawStr(74, 30, maxTempBuf);
|
||||
// =========================================================
|
||||
// 2. HORIZONTALE TRENNLINIE
|
||||
// =========================================================
|
||||
u8g2.drawHLine(0, 36, 128);
|
||||
|
||||
// 5. Große aktuelle Uhrzeit unten links
|
||||
u8g2.setFont(u8g2_font_helvB08_tr);
|
||||
u8g2.setFont(u8g2_font_helvB14_tr);
|
||||
char timeBuf[10];
|
||||
if (timeValid) {
|
||||
snprintf(timeBuf, sizeof(timeBuf), "%02d:%02d", curH, curM);
|
||||
} else {
|
||||
snprintf(timeBuf, sizeof(timeBuf), "--:--");
|
||||
}
|
||||
u8g2.drawStr(4, 60, timeBuf);
|
||||
u8g2.drawStr(2, 58, timeBuf);
|
||||
|
||||
// 6. Lopaka Deko-Bitmap
|
||||
u8g2.drawXBMP(32, 4, 16, 26, image_paint_27_bits);
|
||||
// Icon 1: Zeitschaltuhr aktiv (z. B. bei X = 90)
|
||||
if (timerActive) {
|
||||
drawAnimation_Clock();
|
||||
}
|
||||
|
||||
// 7. Lopaka Animationen abspielen
|
||||
//drawAnimation_fire_flames();
|
||||
//drawAnimation_Clock();
|
||||
// Icon 2: Überhitzungs-Warnung (z. B. bei X = 110)
|
||||
if (curTemp >= settings.maxTemp) {
|
||||
drawAnimation_fire_flames();
|
||||
}
|
||||
}
|
||||
|
||||
// #############################################################
|
||||
// Zeitschaltuhr
|
||||
// #############################################################
|
||||
static void drawTimerScreen(TimeEditStep timeEditStep, uint8_t settingIdx, const SystemSettings& settings){
|
||||
const uint8_t* Font = u8g2_font_helvB10_tr;
|
||||
u8g2.setFontMode(1);
|
||||
u8g2.setBitmapMode(1);
|
||||
// Von
|
||||
u8g2.setFont(u8g2_font_6x12_tr);
|
||||
u8g2.drawStr(31, 26, "Von:");
|
||||
u8g2.setFont(Font);
|
||||
u8g2.drawStr(30, 18, "Von:");
|
||||
|
||||
// Start Time
|
||||
u8g2.setFont(u8g2_font_6x10_tr);
|
||||
char startBuf[10];
|
||||
snprintf(startBuf, sizeof(startBuf), "%02d:%02d", settings.startHour, settings.startMin);
|
||||
u8g2.drawStr(66, 26, startBuf);
|
||||
u8g2.drawStr(66, 18, startBuf);
|
||||
|
||||
// string 23
|
||||
u8g2.setFont(u8g2_font_6x12_tr);
|
||||
u8g2.drawStr(31, 44, "Bis:");
|
||||
u8g2.drawStr(30, 36, "Bis:");
|
||||
|
||||
// End Time
|
||||
u8g2.setFont(u8g2_font_6x10_tr);
|
||||
char endBuf[10];
|
||||
snprintf(endBuf, sizeof(endBuf), "%02d:%02d", settings.endHour, settings.endMin);
|
||||
u8g2.drawStr(66, 44, endBuf);
|
||||
u8g2.drawStr(66, 36, endBuf);
|
||||
|
||||
// AutoSpeed
|
||||
u8g2.drawStr(18, 54, "Speed:");
|
||||
char speedBuf[10];
|
||||
snprintf(speedBuf, sizeof(speedBuf), "%d", settings.autoSpeed);
|
||||
u8g2.drawStr(66, 54, speedBuf);
|
||||
|
||||
// Auswahlbox Zeichnen
|
||||
switch (timeEditStep) {
|
||||
case EDIT_START_HOUR:
|
||||
u8g2.setDrawColor(2); // Invertierungs mode
|
||||
u8g2.drawBox(66, 17, 11, 11);
|
||||
u8g2.drawBox(65, 7, 16, 13);
|
||||
u8g2.setDrawColor(1); // Wieder zurück auf normal
|
||||
break;
|
||||
case EDIT_START_MIN:
|
||||
u8g2.setDrawColor(2); // Invertierungs mode
|
||||
u8g2.drawBox((66+18), 17, 11, 11);
|
||||
u8g2.drawBox(65 + 19, 7, 16, 13);
|
||||
u8g2.setDrawColor(1); // Wieder zurück auf normal
|
||||
break;
|
||||
case EDIT_END_HOUR:
|
||||
u8g2.setDrawColor(2); // Invertierungs mode
|
||||
u8g2.drawBox(66, 35, 11, 11);
|
||||
u8g2.drawBox(65, 25, 16, 13);
|
||||
u8g2.setDrawColor(1); // Wieder zurück auf normal
|
||||
break;
|
||||
case EDIT_END_MIN:
|
||||
u8g2.setDrawColor(2); // Invertierungs mode
|
||||
u8g2.drawBox((66+18), 35, 11, 11);
|
||||
u8g2.drawBox(65 + 19, 25, 16, 13);
|
||||
u8g2.setDrawColor(1); // Wieder zurück auf normal
|
||||
break;
|
||||
case EDIT_SPEED:{
|
||||
int widthSpeedBuf = u8g2.getStrWidth(speedBuf);
|
||||
u8g2.setDrawColor(2);
|
||||
u8g2.drawBox(64, 43, widthSpeedBuf + 4, 13); // Umschließt den gesamten Wert
|
||||
u8g2.setDrawColor(1);
|
||||
break;
|
||||
}
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
|
@ -273,6 +284,7 @@ void updateDisplay(bool inSettings,
|
|||
lastDispTime = millis();
|
||||
|
||||
u8g2.clearBuffer();
|
||||
updateAnimations();
|
||||
|
||||
if (inSettings) {
|
||||
drawSettingsScreen(settingIdx, editStep, settings);
|
||||
|
|
|
|||
BIN
fire.gif
Normal file
BIN
fire.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 70 KiB |
50
fire_frames.h
Normal file
50
fire_frames.h
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
#pragma once
|
||||
#include <Arduino.h>
|
||||
|
||||
// Abmessungen: 21x32, 8 Frames
|
||||
#define FIRE_FLAMES_WIDTH 21
|
||||
#define FIRE_FLAMES_HEIGHT 32
|
||||
#define FIRE_FLAMES_FRAME_COUNT 8
|
||||
|
||||
const unsigned char fire_flames_frame_0[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x4C, 0x00, 0x00, 0xCE, 0x00, 0x00, 0x40, 0x00, 0x20, 0xC8, 0x00, 0x20, 0xB4, 0x00, 0x80, 0x5A, 0x00, 0x80, 0x24, 0x00, 0x20, 0x74, 0x00, 0x00, 0x20, 0x00, 0x80, 0x0A, 0x00, 0x00, 0x21, 0x00, 0x80, 0x30, 0x00, 0x80, 0x25, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char fire_flames_frame_1[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x4C, 0x00, 0x00, 0xCE, 0x00, 0x00, 0x40, 0x00, 0x20, 0xC8, 0x00, 0x20, 0xB4, 0x00, 0x80, 0x5A, 0x00, 0x80, 0x24, 0x00, 0x20, 0x74, 0x00, 0x00, 0x20, 0x00, 0x80, 0x0A, 0x00, 0x00, 0x21, 0x00, 0x80, 0x30, 0x00, 0x80, 0x25, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char fire_flames_frame_2[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x05, 0x00, 0x00, 0x0F, 0x00, 0x80, 0x0C, 0x00, 0x80, 0x4D, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07, 0x00, 0x00, 0x05, 0x00, 0x00, 0x4E, 0x00, 0x40, 0xC7, 0x00, 0x40, 0xC8, 0x00, 0x40, 0xC3, 0x00, 0x20, 0x58, 0x00, 0x00, 0x15, 0x00, 0xA0, 0x24, 0x00, 0x80, 0x34, 0x00, 0xE0, 0x00, 0x00, 0x40, 0x49, 0x00, 0xA0, 0x57, 0x00, 0x40, 0x30, 0x00, 0xC0, 0x09, 0x00, 0x00, 0x24, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char fire_flames_frame_3[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x05, 0x00, 0x00, 0x0F, 0x00, 0x80, 0x0C, 0x00, 0x80, 0x4D, 0x00, 0x00, 0x01, 0x00, 0x00, 0x07, 0x00, 0x00, 0x05, 0x00, 0x00, 0x4E, 0x00, 0x40, 0xC7, 0x00, 0x40, 0xC8, 0x00, 0x40, 0xC3, 0x00, 0x20, 0x58, 0x00, 0x00, 0x15, 0x00, 0xA0, 0x24, 0x00, 0x80, 0x34, 0x00, 0xE0, 0x00, 0x00, 0x40, 0x49, 0x00, 0xA0, 0x57, 0x00, 0x40, 0x30, 0x00, 0xC0, 0x09, 0x00, 0x00, 0x24, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char fire_flames_frame_4[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x08, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x20, 0x40, 0x00, 0x00, 0x24, 0x00, 0x40, 0xEC, 0x00, 0x00, 0xB0, 0x00, 0x00, 0xD6, 0x00, 0x00, 0x38, 0x00, 0x60, 0xE0, 0x00, 0x60, 0xDA, 0x00, 0xA0, 0x18, 0x00, 0x20, 0xAF, 0x00, 0xE0, 0x05, 0x00, 0x80, 0xCD, 0x00, 0xE0, 0x0A, 0x00, 0xC0, 0x40, 0x00, 0x80, 0x31, 0x00, 0x80, 0x14, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char fire_flames_frame_5[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x02, 0x00, 0x00, 0x62, 0x00, 0x00, 0x60, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x58, 0x00, 0x60, 0xE9, 0x00, 0x20, 0x04, 0x00, 0x20, 0x82, 0x00, 0x60, 0xA0, 0x00, 0xA0, 0x40, 0x00, 0xA0, 0xA7, 0x00, 0xE0, 0xFA, 0x00, 0x60, 0x41, 0x00, 0x00, 0x29, 0x00, 0x40, 0x0A, 0x00, 0x80, 0x0D, 0x00, 0x00, 0x04, 0x00
|
||||
};
|
||||
|
||||
const unsigned char fire_flames_frame_6[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x02, 0x00, 0x00, 0x62, 0x00, 0x00, 0x60, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x58, 0x00, 0x60, 0xE9, 0x00, 0x20, 0x04, 0x00, 0x20, 0x82, 0x00, 0x60, 0xA0, 0x00, 0xA0, 0x40, 0x00, 0xA0, 0xA7, 0x00, 0xE0, 0xFA, 0x00, 0x60, 0x41, 0x00, 0x00, 0x29, 0x00, 0x40, 0x0A, 0x00, 0x80, 0x0D, 0x00, 0x00, 0x04, 0x00
|
||||
};
|
||||
|
||||
const unsigned char fire_flames_frame_7[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x04, 0x00, 0x00, 0x06, 0x00, 0x00, 0x42, 0x00, 0x20, 0x46, 0x00, 0x00, 0x44, 0x00, 0x00, 0x06, 0x00, 0x00, 0xE4, 0x00, 0x00, 0x3C, 0x00, 0x40, 0xE6, 0x00, 0x40, 0x46, 0x00, 0x60, 0xB8, 0x00, 0x60, 0x12, 0x00, 0x00, 0x47, 0x00, 0xA0, 0xD4, 0x00, 0x00, 0x2E, 0x00, 0x80, 0x79, 0x00, 0x00, 0x38, 0x00, 0x80, 0x6B, 0x00, 0x00, 0x79, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
const unsigned char* const fire_flames_frames[] PROGMEM = {
|
||||
fire_flames_frame_0,
|
||||
fire_flames_frame_1,
|
||||
fire_flames_frame_2,
|
||||
fire_flames_frame_3,
|
||||
fire_flames_frame_4,
|
||||
fire_flames_frame_5,
|
||||
fire_flames_frame_6,
|
||||
fire_flames_frame_7,
|
||||
};
|
||||
60
gif2u8g2.py
Normal file
60
gif2u8g2.py
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
import os
|
||||
import sys
|
||||
from PIL import Image, ImageSequence
|
||||
|
||||
def gif_to_xbm(gif_path, output_h_path, var_name, target_w=None, target_h=None):
|
||||
im = Image.open(gif_path)
|
||||
frames = []
|
||||
|
||||
for frame in ImageSequence.Iterator(im):
|
||||
f = frame.convert('RGBA')
|
||||
# Weißer Hintergrund für transparente GIFs
|
||||
bg = Image.new('RGBA', f.size, (255, 255, 255))
|
||||
f = Image.alpha_composite(bg, f).convert('1') # 1-Bit Schwarz/Weiß
|
||||
|
||||
if target_w and target_h:
|
||||
f = f.resize((target_w, target_h), Image.Resampling.NEAREST)
|
||||
frames.append(f)
|
||||
|
||||
w, h = frames[0].size
|
||||
bytes_per_row = (w + 7) // 8
|
||||
|
||||
with open(output_h_path, 'w') as out:
|
||||
out.write(f"#pragma once\n#include <Arduino.h>\n\n")
|
||||
out.write(f"// Abmessungen: {w}x{h}, {len(frames)} Frames\n")
|
||||
out.write(f"#define {var_name.upper()}_WIDTH {w}\n")
|
||||
out.write(f"#define {var_name.upper()}_HEIGHT {h}\n")
|
||||
out.write(f"#define {var_name.upper()}_FRAME_COUNT {len(frames)}\n\n")
|
||||
|
||||
# 1. Einzelne Frames als XBM-Arrays schreiben (LSB-first)
|
||||
for idx, frame in enumerate(frames):
|
||||
out.write(f"const unsigned char {var_name}_frame_{idx}[] PROGMEM = {{\n ")
|
||||
pixels = frame.load()
|
||||
byte_list = []
|
||||
|
||||
for y in range(h):
|
||||
for byte_idx in range(bytes_per_row):
|
||||
byte_val = 0
|
||||
for bit in range(8):
|
||||
x = byte_idx * 8 + bit
|
||||
if x < w:
|
||||
# 0 = Schwarz (Pixel an bei XBM), 1 = Weiß
|
||||
if pixels[x, y] == 0:
|
||||
byte_val |= (1 << bit)
|
||||
byte_list.append(f"0x{byte_val:02X}")
|
||||
|
||||
out.write(", ".join(byte_list))
|
||||
out.write("\n};\n\n")
|
||||
|
||||
# 2. Master-Array aller Frame-Pointer
|
||||
out.write(f"const unsigned char* const {var_name}_frames[] PROGMEM = {{\n")
|
||||
for idx in range(len(frames)):
|
||||
out.write(f" {var_name}_frame_{idx},\n")
|
||||
out.write("};\n")
|
||||
|
||||
print(f"Fertig! {len(frames)} Frames exportiert nach: {output_h_path}")
|
||||
|
||||
# Aufruf: Datei, Ausgabedatei, Arrayname, Breite, Höhe
|
||||
if __name__ == "__main__":
|
||||
gif_to_xbm("fire.gif", "fire_frames.h", "fire_flames", 21, 32)
|
||||
gif_to_xbm("clock.gif", "clock_frames.h", "clock", 21, 21)
|
||||
216
kugelmuehle.ino
216
kugelmuehle.ino
|
|
@ -15,7 +15,8 @@ FastAccelStepper *stepper = NULL;
|
|||
|
||||
// ################ Variabeln ################
|
||||
const uint32_t MAX_SPEED_HZ = 106000;
|
||||
const int32_t COLDTEMP_C = 50;
|
||||
const int32_t COLDTEMP_C = 70;
|
||||
const int32_t MIKROSTEPS = 1600;
|
||||
|
||||
bool clickPlus = 0;
|
||||
bool clickMinus = 0;
|
||||
|
|
@ -52,7 +53,7 @@ SystemSettings settings;
|
|||
|
||||
// Überladung des Präfix-Operators (++timeEditStep)
|
||||
TimeEditStep& operator++(TimeEditStep& step) {
|
||||
step = (step == EDIT_END_MIN) ? EDIT_NONE : static_cast<TimeEditStep>(step + 1);
|
||||
step = (step == EDIT_SPEED) ? EDIT_NONE : static_cast<TimeEditStep>(step + 1);
|
||||
return step;
|
||||
}
|
||||
|
||||
|
|
@ -208,6 +209,51 @@ int getTempInC(uint8_t senTemp){
|
|||
return ((milliVolt - 500)/10);
|
||||
}
|
||||
|
||||
int getFilteredTemp(int rawSensorPin) {
|
||||
constexpr uint8_t FILTER_SAMPLES = 10; // Puffergröße (10 Messwerte)
|
||||
static int readings[FILTER_SAMPLES];
|
||||
static uint8_t readIndex = 0;
|
||||
static int32_t total = 0;
|
||||
static int average = 0;
|
||||
static bool initialized = false;
|
||||
static uint32_t lastSampleTime = 0;
|
||||
|
||||
// Abtastrate: Alle 100 ms einen neuen Messwert erfassen
|
||||
if (millis() - lastSampleTime >= 100 || !initialized) {
|
||||
lastSampleTime = millis();
|
||||
|
||||
int rawVal = getTempInC(rawSensorPin); // Messwert in mV
|
||||
|
||||
// Kaltstart: Puffer beim ersten Aufruf vollflächig vorbefüllen
|
||||
if (!initialized) {
|
||||
for (uint8_t i = 0; i < FILTER_SAMPLES; i++) {
|
||||
readings[i] = rawVal;
|
||||
}
|
||||
total = (int32_t)rawVal * FILTER_SAMPLES;
|
||||
average = rawVal;
|
||||
initialized = true;
|
||||
return average;
|
||||
}
|
||||
|
||||
// Ältesten Wert abziehen, neuen Wert einfügen und addieren
|
||||
total -= readings[readIndex];
|
||||
readings[readIndex] = rawVal;
|
||||
total += rawVal;
|
||||
|
||||
// Index weiterschalten
|
||||
readIndex = (readIndex + 1) % FILTER_SAMPLES;
|
||||
|
||||
// Ganzzahlige Division mit kaufmännischer Rundung (+ 5 bei 10 Werten)
|
||||
if (total >= 0) {
|
||||
average = (total + (FILTER_SAMPLES / 2)) / FILTER_SAMPLES;
|
||||
} else {
|
||||
average = (total - (FILTER_SAMPLES / 2)) / FILTER_SAMPLES;
|
||||
}
|
||||
}
|
||||
|
||||
return average;
|
||||
}
|
||||
|
||||
// Liefert true wenn der Timer aktuell Active ist und false wenn nicht aktiv
|
||||
bool isTimerActiveNow(int curH, int curM, int startH, int startM, int endH, int endM) {
|
||||
int current = curH * 60 + curM;
|
||||
|
|
@ -243,6 +289,11 @@ void setting(){
|
|||
case EDIT_END_MIN:
|
||||
settings.endMin = (settings.endMin + 5) % 60;
|
||||
break;
|
||||
case EDIT_SPEED:
|
||||
if(settings.autoSpeed < ((MAX_SPEED_HZ * 60)/MIKROSTEPS) - 50){
|
||||
settings.autoSpeed += 50;
|
||||
}
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
|
@ -262,6 +313,11 @@ void setting(){
|
|||
case EDIT_END_MIN:
|
||||
settings.endMin = (settings.endMin < 5) ? 55 : settings.endMin - 5;
|
||||
break;
|
||||
case EDIT_SPEED:
|
||||
if(settings.autoSpeed >= 50){
|
||||
settings.autoSpeed -= 50;
|
||||
}
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
|
@ -291,6 +347,7 @@ if (settings.editMaxTemp) {
|
|||
}
|
||||
|
||||
if (clickStop) {
|
||||
settings.coldTemp = settings.maxTemp - 20;
|
||||
settings.editMaxTemp = false;
|
||||
}
|
||||
return; // Wichtig: Rest der Funktion überspringen, solange editiert wird!
|
||||
|
|
@ -390,60 +447,123 @@ void loop() {
|
|||
return;
|
||||
}
|
||||
|
||||
// Inputs
|
||||
// 1. Eingaben & Sensoren lesen
|
||||
getInputs(clickPlus, clickMinus, clickStop, holdPlus, holdMinus, holdStop);
|
||||
curTemp = getTempInC(senTemp);
|
||||
curTemp = getFilteredTemp(senTemp);
|
||||
|
||||
// Discord nachricht // BEGREZUNG AUF EINE NACVHRICHT TODO
|
||||
// 2. Discord Überhitzungs-Alarm
|
||||
static bool send = false;
|
||||
if (curTemp >= settings.maxTemp && !send) {
|
||||
String message = "⚠️ **Kugelmuehle ueberhitzt!** Aktuelle Temp: " + String(curTemp) + " °C";
|
||||
sendDiscordNotification(message);
|
||||
send = true;
|
||||
|
||||
// Plus 5 als puffer
|
||||
}else if(curTemp + 5 < settings.maxTemp){
|
||||
} else if (curTemp < settings.coldTemp) {
|
||||
send = false;
|
||||
}
|
||||
|
||||
// zeitschaltuhr prüfen
|
||||
// 3. Zeitschaltuhr & NTP prüfen
|
||||
int curH, curM, curS;
|
||||
if (settings.timerEnabled && getCurrentTime(curH, curM, curS)) {
|
||||
bool timeIsValid = getCurrentTime(curH, curM, curS);
|
||||
|
||||
if (settings.timerEnabled && timeIsValid) {
|
||||
shouldRun = isTimerActiveNow(curH, curM, settings.startHour, settings.startMin, settings.endHour, settings.endMin);
|
||||
} else {
|
||||
shouldRun = false;
|
||||
}
|
||||
|
||||
// Not-Stopp aktivieren bei Überhitzung ODER Zeitschaltuhr aus
|
||||
if(curTemp >= settings.maxTemp || (!shouldRun && settings.timerEnabled)){
|
||||
autoStop = true;
|
||||
|
||||
// Entsperren NUR wenn abgekühlt UND Zeitschaltuhr aktiv
|
||||
}else if(curTemp <= COLDTEMP_C && shouldRun){
|
||||
autoStop = false;
|
||||
// 4. Schutz-Verriegelung (Überhitzung)
|
||||
static bool tempOverheat = false;
|
||||
if (curTemp >= settings.maxTemp) {
|
||||
tempOverheat = true;
|
||||
} else if (curTemp <= settings.coldTemp) {
|
||||
tempOverheat = false;
|
||||
}
|
||||
|
||||
// Zeitschaltuhr start
|
||||
if(settings.timerEnabled && shouldRun){
|
||||
|
||||
// TODO
|
||||
// 1. Ziel-Geschwindigkeit vorgeben (z. B. 3200 Steps/s = 120 U/min bei 1/8 Schritt)
|
||||
//stepper->setSpeedInHz(3200);
|
||||
|
||||
// 2. Beschleunigungsrampe festlegen
|
||||
//stepper->setAcceleration(settings.accelRate);
|
||||
|
||||
// 3. Dauerfahrt starten (beschleunigt automatisch bis zur Ziel-Geschwindigkeit)
|
||||
// stepper->runForward(); // oder stepper->runBackward();
|
||||
}
|
||||
|
||||
// Main Control
|
||||
|
||||
// 5. Menü aufrufen
|
||||
if (holdStop && clickPlus) {
|
||||
bSettings = true;
|
||||
}
|
||||
|
||||
// HotKey Timer Toggeln
|
||||
if (holdStop && clickMinus) {
|
||||
if(settings.timerEnabled){
|
||||
settings.timerEnabled = false;
|
||||
}else{
|
||||
settings.timerEnabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Sperr-Flag, falls der Nutzer im aktiven Timer-Fenster bewusst Stopp gedrückt hat
|
||||
static bool manualTimerStopped = false;
|
||||
if (!shouldRun) {
|
||||
manualTimerStopped = false; // Reset für den nächsten regulären Zeitzyklus
|
||||
}
|
||||
|
||||
// 6. Betriebsmodi steuern
|
||||
if (bSettings) {
|
||||
setting();
|
||||
}else if(clickStop){
|
||||
stopMove = true;
|
||||
}
|
||||
// NOT-AUS BEI ÜBERHITZUNG
|
||||
else if (tempOverheat) {
|
||||
if (stepper->isRunning()) {
|
||||
stepper->setAcceleration(10000);
|
||||
stepper->applySpeedAcceleration();
|
||||
stepper->stopMove();
|
||||
lastSpeed = 0;
|
||||
}
|
||||
}
|
||||
// AUTOMATIK-BETRIEB (Zeitschaltuhr)
|
||||
else if (settings.timerEnabled) {
|
||||
|
||||
// Druch drücken von plus den Timer betrieb vortsetzen
|
||||
if (manualTimerStopped && clickPlus) {
|
||||
manualTimerStopped = false;
|
||||
}
|
||||
|
||||
if (shouldRun && !manualTimerStopped) {
|
||||
if (!stepper->isRunning()) {
|
||||
uint32_t autoHz = ((uint32_t)settings.autoSpeed * MIKROSTEPS) / 60;
|
||||
stepper->setSpeedInHz(autoHz);
|
||||
stepper->setAcceleration(settings.accelRate);
|
||||
stepper->runForward();
|
||||
}
|
||||
|
||||
// Manuelles Anhalten im laufenden Timer erlauben
|
||||
if (clickStop) {
|
||||
manualTimerStopped = true;
|
||||
stepper->setAcceleration(10000);
|
||||
stepper->applySpeedAcceleration();
|
||||
stepper->stopMove();
|
||||
lastSpeed = 0;
|
||||
}
|
||||
} else {
|
||||
// Außerhalb des Fensters oder manuell gestoppt
|
||||
if (stepper->isRunning()) {
|
||||
stepper->setAcceleration(10000);
|
||||
stepper->applySpeedAcceleration();
|
||||
stepper->stopMove();
|
||||
lastSpeed = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
// MANUELLER BETRIEB (Zeitschaltuhr aus)
|
||||
else {
|
||||
static bool manualStopped = false;
|
||||
|
||||
if (clickStop) {
|
||||
if (stepper->isRunning()) {
|
||||
stepper->setAcceleration(10000);
|
||||
stepper->applySpeedAcceleration(); // <-- macht die neue Rampe sofort wirksam
|
||||
stepper->stopMove();
|
||||
}
|
||||
speed = 0;
|
||||
lastSpeed = 0;
|
||||
manualStopped = true;
|
||||
} else if (manualStopped) {
|
||||
if (!holdPlus && !holdMinus) {
|
||||
manualStopped = false; // erst freigeben wenn Tasten los sind
|
||||
}
|
||||
speed = 0; // während Sperre: nichts tun
|
||||
} else if (holdPlus) {
|
||||
speed = settings.accelRate;
|
||||
} else if (holdMinus) {
|
||||
|
|
@ -452,32 +572,18 @@ void loop() {
|
|||
speed = 0;
|
||||
}
|
||||
|
||||
// STOPP
|
||||
if(stopMove || autoStop){
|
||||
// stopp befehl nur senden wenn sich der Motor bewegt
|
||||
if (stepper->isRunning()) {
|
||||
stepper->moveByAcceleration(10000, true);
|
||||
stepper->stopMove();
|
||||
}
|
||||
// MOVE
|
||||
}else if (speed != lastSpeed ) {
|
||||
if (speed != lastSpeed) {
|
||||
stepper->setSpeedInHz(MAX_SPEED_HZ);
|
||||
stepper->setAcceleration(settings.accelRate);
|
||||
stepper->moveByAcceleration(speed, true);
|
||||
lastSpeed = speed;
|
||||
}
|
||||
|
||||
// Reset der Brems beschleunigung
|
||||
if (!stepper->isRunning()) {
|
||||
stepper->setAcceleration(settings.accelRate);
|
||||
stopMove = false;
|
||||
}
|
||||
|
||||
int32_t currentSpeed_HZ = stepper->getCurrentSpeedInUs() == 0 ? 0 : (1000000 / stepper->getCurrentSpeedInUs());
|
||||
int32_t currentSpeed = (currentSpeed_HZ * 60)/1600;
|
||||
// 7. Geschwindigkeitsberechnung & UI
|
||||
int32_t currentSpeed_HZ = (stepper->getCurrentSpeedInUs() == 0) ? 0 : (1000000 / stepper->getCurrentSpeedInUs());
|
||||
int32_t currentSpeed = (currentSpeed_HZ * 60) / MIKROSTEPS;
|
||||
|
||||
bool timeIsValid = getCurrentTime(curH, curM, curS);
|
||||
updateDisplay(bSettings, settings.settingIdx, timeEditStep, settings, currentSpeed, curH, curM, timeIsValid, curTemp);
|
||||
|
||||
// Status ausgabe auf Terminal
|
||||
printStatus(stepper, speed, clickPlus, clickMinus);
|
||||
|
||||
}
|
||||
10
types.h
10
types.h
|
|
@ -28,7 +28,8 @@ struct settingsALT{
|
|||
int endMin = 0;
|
||||
bool timerEnabled = false;
|
||||
bool editMaxTemp = false;
|
||||
int16_t maxTemp = 70; //in °C
|
||||
int16_t maxTemp = 100; //in °C
|
||||
int16_t coldTemp = 0;
|
||||
bool editAcc = false;
|
||||
int32_t accelRate = 2000; // einheit
|
||||
};
|
||||
|
|
@ -38,7 +39,8 @@ enum TimeEditStep {
|
|||
EDIT_START_HOUR, // 1. Start-Stunde einstellen (0-23)
|
||||
EDIT_START_MIN, // 2. Start-Minute einstellen (0-59)
|
||||
EDIT_END_HOUR, // 3. End-Stunde einstellen (0-23)
|
||||
EDIT_END_MIN // 4. End-Minute einstellen (0-59)
|
||||
EDIT_END_MIN, // 4. End-Minute einstellen (0-59)
|
||||
EDIT_SPEED
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -52,9 +54,11 @@ struct SystemSettings {
|
|||
int endMin = 0;
|
||||
bool timerEnabled = false;
|
||||
bool editMaxTemp = false;
|
||||
int16_t maxTemp = 70; //in °C
|
||||
int16_t maxTemp = 100; //in °C
|
||||
int16_t coldTemp = 0;
|
||||
bool editAcc = false;
|
||||
int32_t accelRate = 20000;
|
||||
int32_t autoSpeed = 100;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue