X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=drv%2Fphase.c;h=e30f46681e2694a562dc537ec21807df9ed9df72;hb=1ab5fa0763879ab997884c8bc88631b69205a191;hp=04c895d780a6994d9a503aaac58fcf83db4dfadb;hpb=efbdba7e2814415234ef47bd10ff888559ea90af;p=bertos.git diff --git a/drv/phase.c b/drv/phase.c index 04c895d7..e30f4668 100644 --- a/drv/phase.c +++ b/drv/phase.c @@ -78,7 +78,7 @@ DEFINE_ZEROCROSS_ISR() if (triacs[dev].duty != TRIAC_MAX_DUTY) TRIAC_OFF(dev); /* Compute delay from duty */ - timer_setDelay(&triacs[dev].timer, ((period * (TRIAC_MAX_DUTY - triacs[dev].duty) + TRIAC_MAX_DUTY / 2) / TRIAC_MAX_DUTY)); + timer_setDelay(&triacs[dev].timer, DIV_ROUND(period * (TRIAC_MAX_DUTY - triacs[dev].duty), TRIAC_MAX_DUTY)); /* This check avoids inserting the same timer twice * in case of an intempestive zerocross or spike */