@@ -106,6 +106,8 @@ void startCountdownTimer(bool isAwake) {
106
106
}
107
107
108
108
do {
109
+ uint16_t previousTime = (uint16_t ) millis ();
110
+
109
111
#if INCLUDE_OLED
110
112
uint8_t m0 = (totalTime / 60 ) / 10 ;
111
113
uint8_t m1 = (totalTime / 60 ) % 10 ;
@@ -115,18 +117,11 @@ void startCountdownTimer(bool isAwake) {
115
117
drawNumbers (m0, m1, s0, s1);
116
118
#endif
117
119
118
- if (isAwake) {
119
- EEPROM.put (0 , totalTime);
120
- } else {
121
- EEPROM.put (4 , totalTime);
120
+ EEPROM.put (isAwake ? 0 : 4 , totalTime);
121
+ if (!isAwake) {
122
122
ESTimer.goToSleepMode ();
123
123
}
124
-
125
- #if INCLUDE_OLED
126
- ESTimer.delay (845 );
127
- #else
128
- ESTimer.delay (1000 );
129
- #endif
124
+ ESTimer.delay (1000 - ((uint16_t ) millis () - previousTime));
130
125
131
126
} while (totalTime-- > 0 );
132
127
}
@@ -151,22 +146,21 @@ void initNumbers() {
151
146
}
152
147
153
148
void initStatusPomodoros () {
154
- for (uint8_t i = 0 ; i < 16 ; i += 2 ) {
155
- if (i < 8 ) {
156
- ESTimer.drawBitmap (108 , i, 124 , i + 2 , dots[(countDonePomodoros / 8 ) % 2 ]);
157
- } else {
158
- ESTimer.drawBitmap (4 , i - 8 , 20 , (i - 8 ) + 2 , dots[(countDonePomodoros / 8 ) % 2 ]);
159
- }
149
+ for (uint8_t i = 0 ; i < 8 ; i++) {
150
+ drawPomodoro (i, dots[(i <= countDonePomodoros % 8 ) ^ ((countDonePomodoros / 8 ) % 2 )]);
160
151
}
161
152
}
162
153
163
154
void updateStatusPomodoros () {
164
- for (uint8_t i = 0 ; i < ((countDonePomodoros % 8 ) + 1 ) * 2 ; i += 2 ) {
165
- if (i < 8 ) {
166
- ESTimer.drawBitmap (108 , i, 124 , i + 2 , dots[((countDonePomodoros / 8 ) + 1 ) % 2 ]);
167
- } else {
168
- ESTimer.drawBitmap (4 , i - 8 , 20 , (i - 8 ) + 2 , dots[((countDonePomodoros / 8 ) + 1 ) % 2 ]);
169
- }
155
+ uint8_t i = countDonePomodoros % 8 ;
156
+ drawPomodoro (i, dots[((countDonePomodoros / 8 ) + 1 ) % 2 ]);
157
+ }
158
+
159
+ void drawPomodoro (uint8_t index, const uint8_t *s) {
160
+ if (index < 4 ) {
161
+ ESTimer.drawBitmap (108 , 2 * index , 124 , (2 * index ) + 2 , s);
162
+ } else {
163
+ ESTimer.drawBitmap (4 , 2 * (index % 4 ), 20 , (2 * (index % 4 )) + 2 , s);
170
164
}
171
165
}
172
166
#endif
0 commit comments