You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// TODO Do basically the same as in loop, but just note down the actual window widths if not specified. or edit them in EEPROM (maybe this is preferred as EEPROM is read continuously in the loop function, but 00 00 widths can be edited easily, so it will save computing power)
99
+
// Check connected displays? if backlink is active, don't think so because it wouldn't be necessary if stored in EEPROM as it won't be changed much
100
+
// Load EEPROM Content into RAM
101
+
// Edit 00 00 Widths to matching displays connected - calculate the width once.
102
+
// Allocate variable memory. This will be: 2 for each marquee, W*H/64 for each console
103
+
// - for each marquee: preset xpos for centered strings, so it must only be checked if the width is fitting into the window's width
104
+
// Start Clock timer
83
105
}
84
106
107
+
// Timer Interrupt for exactly 1s counts uptime higher and if overflows adds value to the time (each ~18hrs, so it is not as important by now)
108
+
109
+
uint16_txOffset=0, windowWidth;
110
+
uint8_t*data, *variable, *tmp_pointer;
111
+
uint8_ttmp[16];
85
112
voidloop() {
86
113
// TODO code this
87
114
/*
88
-
- check connected displays? maybe, if it does not take too long and if backlink is active or just do this at setup
89
115
- Go through storeData (start cnt...)
90
116
- ignore 1st byte (PANELS)
91
117
- read 2nd byte into WindowCount
@@ -107,15 +133,22 @@ void loop() {
107
133
- next i
108
134
- if PixelDataHasChanged: shiftPixelData
109
135
*/
110
-
uint8_t*data=&storeData[1];
111
-
uint8_twindowCount=*data;
112
-
data++;
113
-
uint16_txOffset=0, windowWidth;
114
-
for(uint8_ti=0; i<windowCount; i++) {
136
+
*data=&storeData[2];
137
+
*variable=&variables[0];
138
+
xOffset=0;
139
+
for(uint8_ti=0; i<storeData[1]; i++) {
115
140
windowWidth=*(uint16_t*)data;
116
141
data+=2;
117
142
switch(*data++) {
118
143
case1: // marquee2
144
+
tmp[0] =*(data++); // Options bit
145
+
tmp[1] =*(data++); // Length of 1st line
146
+
for(uint8_tj=0; j<tmp[1]; j++) {
147
+
// TODO: getNextCharacter
148
+
for(uint8_tk=0; k<8; k++) {
149
+
setDouble(xOffset+*variables+j*8+k, *(tmp_pointer++)); // TODO only if option is like this
0 commit comments