Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (1): [1]   

> Без описания
Nathgul
Отправлено: 05 Июня, 2018 - 20:57:30
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 70
Дата рег-ции: Май 2018  
Репутация: 0




Доброго дня... озадачился вопросом о паузе внутри таймера... для этого использовал команду sleep... при вызове таймера срабатывает слип на весь скрипт, а должен лишь давать отсчет внутри таймера... подойдет ли для реализации такой задачи функция pause или есть другие альтернативы? заранее спасибо
 
 Top
Dantes3000
Отправлено: 05 Июня, 2018 - 20:59:21
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016  
Репутация: 58




Продемонстрируй код для начала
 
 Top
Nathgul
Отправлено: 05 Июня, 2018 - 21:16:11
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 70
Дата рег-ции: Май 2018  
Репутация: 0




CREATE_TIMER(0, 20)
{

pause(40000);

enabletimer (1);

disabletimer (0);

}


нужно чтобы код внутри таймера выполнялся с задержкой в 40 сек без влияния на основную программу... проверил со слипом и паузой... весь скрипт после вызова таймера курит 40 сек
(Добавление)
таймер нужен для запуска второго таймера по истечению этого времени...
 
 Top
Dantes3000
Отправлено: 05 Июня, 2018 - 21:25:06
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016  
Репутация: 58




не знаю что там во всём коде, но так работает:


CODE:
enabletimer(0);

loop() pause(1000);



CREATE_TIMER(0, 20)
{
beep(700, 100);

pause(3000);

disabletimer(0);
enabletimer(1);
}



CREATE_TIMER(1, 20)
{

beep(300, 100);

}
 
 Top
Nathgul
Отправлено: 05 Июня, 2018 - 21:47:20
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 70
Дата рег-ции: Май 2018  
Репутация: 0




условно говоря на примере... есть машина... водитель выполняет одни и те же действия: разгон, ковыряется в носу, включает свет... ковыряется в носу и включает свет циклично... один раз давит газ, потом нос-свет-нос-свет... таймер - защита двигателя при достижении какой-то скорости. задача: срабатывание отсечки без влияния на водителя который делает нос-свет-нос-свет.... но с 30-ти сек задержкой... раньше этого времени смысла проверять скорость нет а инициация проверки требуется как раз после нажатия на педаль газа....
(Добавление)
объяснил как смог))) весь код не получится собрать в такую цепочку чтобы понятна была... он огромный
(Добавление)
так вот при том коде где используется пауза или слип внутри таймера... водитель условно замирает... в носу не ковыряется и не включает свет эти 30 сек... а надо чтобы он это делал постоянно
(Добавление)
почитал инфо по таймерам... получается код внутри таймера не выполняется в параллель с основной программой... в момент его запуска управление переходит в таймер, а потом возвращается в то место откуда передали собственно... или я чего то не понимаю(((
 
 Top
Dantes3000
Отправлено: 05 Июня, 2018 - 22:32:46
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016  
Репутация: 58




CODE:

int time=gettime();
int time2=3000; //спустя какое время будет срабатывать код в таймере


enabletimer(0);

loop() //выполняется постоянно
{
pause(900);
beep(400, 100);
}






CREATE_TIMER(0, 10)
{

if(gettime()-time>time2) //если прошло time2 времени то beep(1000, 500);
{
time=gettime();

beep(1000, 500);
}



 
 Top
Zireael
Отправлено: 06 Июня, 2018 - 02:08:24
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




code (Отобразить)

При нажатие клавиши Ё устанавливается время для таймера, скрипт продолжает работать, через 5 секунд сработает таймер.
Вместо нажатия Ё пишите своё условие, при котором должен включиться таймер.
 
 Top
Nathgul
Отправлено: 06 Июня, 2018 - 07:15:40
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 70
Дата рег-ции: Май 2018  
Репутация: 0




 Zireael пишет:
При нажатие клавиши Ё устанавливается время для таймера, скрипт продолжает работать, через 5 секунд сработает таймер.
Вместо нажатия Ё пишите своё условие, при котором должен включиться таймер.


я правильно понял?)

CREATE_TIMER(0, 5000)
{

disabletimer (0);

enabletimer (1);

}

данный таймер при его активации командой enabletimer (0) запустит код внутри таймера не сразу, а по истечению 5 сек?)

если так - то собственно это и нужно...
запуск таймер0 требуется единоразово... по истечению времени таймер0 тупо отключается и из него вызывается таймер1 в котором уже содержится нужный для выполнения код
(Добавление)
еще маленький вопрос

CREATE_TIMER(0, 5000)
{

disabletimer (0);

enabletimer (1);

}

и

CREATE_TIMER(0, 5000)
{

enabletimer (1);

disabletimer (0);

}


что-то кардинальное изменится если строку запуска второго таймера из текущего ставить перед или после строки выключения текущего таймера? или нет?

(Отредактировано автором: 06 Июня, 2018 - 07:21:45)

 
 Top
Nathgul
Отправлено: 06 Июня, 2018 - 10:03:33
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 70
Дата рег-ции: Май 2018  
Репутация: 0




Проблема решена... задержка выставилась простым указанием необходимого времени в описании таймера.
(Добавление)
Всем Огромное спасибо)))
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 5 (гостей: 5, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by