Пн фев 04, 2019 10:54:39
#define CTRL_SIGN_OFF 0
#define CTRL_SIGN_ON 1
//Отправка управляющего сигнала в PORTC.0
void SetCtrlSignal(unsigned char state)
{
if (state == CTRL_SIGN_ON) PORTC |= 1;
else PORTC &= ~1;
}
//Считывание сигнала обратной связи PINA.7
unsigned char GeFbSignal(void)
{
return (PINA & 0x80);
}
//Функция фазовой регулировки (вызывается в теле обработчика прерывания таймера)
void PhaseRegulation(void)
{
curFbSignal = GetFbSignal(); //получить текущее логическое состояние сигнала обратной связи
if (DelayBeg == TRUE) //Если запущен отсчет задержки
{
if (DalayCntr == DelayLim) //Если достигнут предел отсчета
{
SetCtrlSignal(CTRL_SIGN_OFF); //Прекратить управляющий импульс
DalayBeg = FALSE; //Остановить отсчет задержки
}
else if (dvBoundDalayCntr == DelayLim - 1) //Если достигнут предел отсчета минус 1
{
SetCtrlSignal(CTRL_SIGN_ON); //Запустить управляющий импульс
}
DelayCntr++; //увеличить счетчик задержки
}
else if (oldFbSignal != curFbSignal) //Если произошла смена логического состояния сигнала ОС
{
SetCtrlSignal(CTRL_SIGN_OFF); //Прекратить управляющий сигнал
DelayBeg = TRUE; //Запустить отсчет задержки
DelayCntr = 0; //Обнулить счетчик задержки
}
oldFbSignal = curFbSignal;
}
Пн фев 04, 2019 11:53:49
Пн фев 04, 2019 12:08:13
Пн фев 04, 2019 12:33:35
В протеусе все запускается и как бы работает, но спустя секунд 3-5 вываливается такая ошибка. Подскажите, что ему не хватает?
Пн фев 04, 2019 15:02:19
Пн фев 04, 2019 15:20:25
Пн фев 04, 2019 15:27:58
Пн фев 04, 2019 17:05:32
Пн фев 04, 2019 17:43:31
Вт фев 05, 2019 04:51:18
В протеусе все запускается и как бы работает, но спустя секунд 3-5 вываливается такая ошибка. Подскажите, что ему не хватает?
Вт фев 05, 2019 08:43:54
Вт фев 05, 2019 09:02:40
Вт фев 05, 2019 09:05:17
Вт фев 05, 2019 09:21:13
Вт фев 05, 2019 10:10:33
Вт фев 05, 2019 11:57:16
Вт фев 05, 2019 14:26:50
Ср фев 06, 2019 02:41:11
Пт фев 22, 2019 17:14:26