8000 Test for non-zero before subtract should improve performance. · dok-net/arduino-esp8266@3848ec2 · GitHub
[go: up one dir, main page]

Skip to content

Commit 3848ec2

Browse files
committed
Test for non-zero before subtract should improve performance.
1 parent 4cf9638 commit 3848ec2

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

cores/esp8266/core_esp8266_waveform.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -353,14 +353,14 @@ static ICACHE_RAM_ATTR void timer1Interrupt() {
353353
}
354354
else {
355355
int32_t dutyCcys = scaleCcys(wave.dutyCcys);
356-
if (dutyCcys > wave.adjDutyCcys) {
356+
if (dutyCcys <= wave.adjDutyCcys) {
357+
dutyCcys >>= 1;
358+
wave.adjDutyCcys -= dutyCcys;
359+
}
360+
else if (wave.adjDutyCcys) {
357361
dutyCcys -= wave.adjDutyCcys;
358362
wave.adjDutyCcys = 0;
359363
}
360-
else {
361-
wave.adjDutyCcys -= dutyCcys;
362-
dutyCcys = 0;
363-
}
364364
wave.endDutyCcy = now + dutyCcys;
365365
if (static_cast<int32_t>(wave.endDutyCcy - wave.nextPeriodCcy) > 0) {
366366
wave.endDutyCcy = wave.nextPeriodCcy;

0 commit comments

Comments
 (0)
0