[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
это процедура прерывания 250 мкс (chip at89c55-pi24):
где:
/* период PWM */
#define size_PWM 240
/* этих переменных две - для синхронности изменения значения
с периодом PWM */
extern data byte var_pwm_work;
extern data byte var_pwm;
/* текущее состояние PWM */
extern data byte count_pwm;
/* WARMERON, WARMEROFF - макрокоманды включения/ выключения
нагревателя */
/* начальная инициализация (еще до разрешения прерываний):
count_pwm=size_PWM;
var_pwm=var_pwm_work=0;
*/
interrupt void T0_int (void)
{
/* таймер перезагрузили */
TH0=wdTh;
TL0+=wdTl;
-- count_pwm;
if (var_pwm_work != 0)
{
if (var_pwm_work >= count_pwm)
{
WARMERON
}
}
if (tay_lamp == 0)
{
count_pwm = size_PWM;
if (var_pwm_work < size_PWM)
{
WARMEROFF
}
var_pwm_work = var_pwm;
}
.
.
.
}
E-mail: info@telesys.ru