X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=drv%2Fphase.c;h=e30f46681e2694a562dc537ec21807df9ed9df72;hb=1ab5fa0763879ab997884c8bc88631b69205a191;hp=e92bed5ae085375bf03bf0c97517fcc678e63316;hpb=41625d1b16c8f1904c3a2a40b6972725311c66a8;p=bertos.git diff --git a/drv/phase.c b/drv/phase.c old mode 100755 new mode 100644 index e92bed5a..e30f4668 --- a/drv/phase.c +++ b/drv/phase.c @@ -1,6 +1,31 @@ -/*! +/** * \file * * @@ -12,63 +37,12 @@ * \author Francesco Sacchi */ -/*#* - *#* $Log$ - *#* Revision 1.1 2005/11/04 18:06:44 bernie - *#* Import into DevLib. - *#* - *#* Revision 1.1 2005/05/24 09:17:58 batt - *#* Move drivers to top-level. - *#* - *#* Revision 1.14 2005/05/20 12:21:05 batt - *#* Reformat. - *#* - *#* Revision 1.13 2005/05/09 16:34:14 batt - *#* Change some function names to accomplish coding standard; Add debug phase_initialized; Change duty_t and power_t to uint16_t. - *#* - *#* Revision 1.12 2005/05/04 17:22:30 batt - *#* Workaround a Doxygen parsing problem. - *#* - *#* Revision 1.11 2005/05/02 09:05:03 batt - *#* Rename duty_t and power_t in triac_duty_t and triac_power_t - *#* - *#* Revision 1.10 2005/05/02 08:48:55 batt - *#* Disable interrupt only when necessary. - *#* - *#* Revision 1.9 2005/04/29 11:52:51 batt - *#* Remove debug printf; Add a comment. - *#* - *#* Revision 1.8 2005/04/29 10:22:56 batt - *#* Avoid retriggering TRIAC on low duty-cycle. - *#* - *#* Revision 1.7 2005/04/29 09:54:36 batt - *#* Convert to new timer. - *#* - *#* Revision 1.6 2005/04/28 17:11:53 batt - *#* Expand abbreviation. - *#* - *#* Revision 1.5 2005/04/28 15:10:11 batt - *#* Use timer API to add and set events. - *#* - *#* Revision 1.4 2005/04/28 12:04:46 batt - *#* Add some comments. - *#* - *#* Revision 1.3 2005/04/28 10:35:45 batt - *#* Complete phase_setpower. - *#* - *#* Revision 1.2 2005/04/27 19:22:49 batt - *#* Add duty_t, power_t, MAX_DUTY and MAX_POWER - *#* - *#* Revision 1.1 2005/04/27 17:13:56 batt - *#* Add triac phase control driver. - *#* - *#*/ - #include #include -#include +#include +#include #include @@ -77,12 +51,12 @@ #include -/*! Array of triacs */ +/** Array of triacs */ static Triac triacs[TRIAC_CNT]; DB(bool phase_initialized;) -/*! +/** * Zerocross interrupt, call when 220V cross zero. * * This function turn off all triacs that have duty < 100% @@ -104,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 */ @@ -122,7 +96,7 @@ DEFINE_ZEROCROSS_ISR() -/*! +/** * Set duty of the triac channel \a dev (interrupt safe). */ void phase_setDuty(TriacDev dev, triac_duty_t duty) @@ -137,7 +111,7 @@ void phase_setDuty(TriacDev dev, triac_duty_t duty) -/*! +/** * Set duty of the triac channel \a dev (NOT INTERRUPT SAFE). */ void phase_setDutyUnlock(TriacDev dev, triac_duty_t duty) @@ -147,7 +121,7 @@ void phase_setDutyUnlock(TriacDev dev, triac_duty_t duty) -/*! +/** * Set power of the triac channel \a dev (interrupt safe). * * This function approsimate the sine wave to a triangular wave to compute @@ -175,7 +149,7 @@ void phase_setPower(TriacDev dev, triac_power_t power) -/*! +/** * Soft int for each \a _dev triac. * * The triacs are turned on at different time to achieve phase control. @@ -192,7 +166,7 @@ static void phase_softint(void *_dev) -/*! +/** * Initialize phase control driver */ void phase_init(void)