вот такая схема НЕ работает: она генерит код:
Код: Выделить всё
bool _gtv1 = 0; //ВРЕМЯ_БЛОКИРОВКИ
int _gtv2 = 10; //НЕКОЕ_УСЛОВИЕ
long _gtv3 = 0; //ЛЮБАЯ_РАБОТА_НИЖЕ_ПО_СХЕМЕ
bool _gen1I = 0;
bool _gen1O = 0;
unsigned long _gen1P = 0UL;
void setup()
{
}
void loop()
{
  if (( ((_gtv2) > (0)) && (!(_gtv1)) )) {
    if (! _gen1I) {
      _gen1I = 1;
      _gen1O = 1;
      _gen1P = millis();
    }
  } else {
    _gen1I = 0 ;
    _gen1O = 0;
  }
  if (_gen1I &&  _gen1O)   _gen1O = !( _isTimer( _gen1P , 100 ));
  if (( ((_gtv2) > (0)) && (!(_gtv1)) )) {
    _gtv3 = 100500;
  }
  _gtv1 = _gen1O;
}меняем схему сдвигая присваивание вниз:
смотрим код:
Код: Выделить всё
bool _gtv1 = 0; //ВРЕМЯ_БЛОКИРОВКИ
int _gtv2 = 10; //НЕКОЕ_УСЛОВИЕ
long _gtv3 = 0; //ЛЮБАЯ_РАБОТА_НИЖЕ_ПО_СХЕМЕ
bool _gen1I = 0;
bool _gen1O = 0;
unsigned long _gen1P = 0UL;
void setup()
{
}
void loop()
{
  if (( ((_gtv2) > (0)) && (!(_gtv1)) )) {
    if (! _gen1I) {
      _gen1I = 1;
      _gen1O = 1;
      _gen1P = millis();
    }
  } else {
    _gen1I = 0 ;
    _gen1O = 0;
  }
  if (_gen1I &&  _gen1O)   _gen1O = !( _isTimer( _gen1P , 100 ));
  _gtv1 = _gen1O;
  if (( ((_gtv2) > (0)) && (!(_gtv1)) )) {
    _gtv3 = 100500;
  }
}