DRAKON.SU

Текущее время: Пятница, 29 Март, 2024 18:57

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 276 ]  На страницу Пред.  1 ... 10, 11, 12, 13, 14  След.
Автор Сообщение
СообщениеДобавлено: Воскресенье, 24 Март, 2019 10:22 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
Дмитрий, а почему всетаки пауза?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 24 Март, 2019 10:27 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
Потому что "ожидание при выполнении простого условия". Одной иконой вместо группы знаков. И когнитивно точнее передается смысл фразы: "ждем, пока условие".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 24 Март, 2019 10:32 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
нет необходимости крутить пальцем/взглядом при ожидании исполнения какого-то условия, позволяющего пройти к следующему действию.
По сути, это статичный значок для конструкции while(){}


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 24 Март, 2019 10:35 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
Как бы одной иконой решить вопрос с постановкой на паузу части программы? У меня получается минимум три иконы и туча промежуточных переменных


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 24 Март, 2019 12:17 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
предлагаемый способ как раз и помогает остановить/запустить ветку в многопоточном алгоритме. стандартный селектор на такое не способен.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 24 Март, 2019 12:24 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
предположим, нужно выполнить действия в различной очередности. с новым приемом это сделать легко:
Вложение:
Пауза6.JPG
Пауза6.JPG [ 23.7 КБ | Просмотров: 8216 ]

Задаем последовательно переменной значения очередности: "поток=3; поток=1; поток=2;", и получаем нужный порядок "Действие 3, Действие 1, Действие 2"


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 24 Март, 2019 13:07 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
А_МУР писал(а):
Как бы одной иконой решить вопрос с постановкой на паузу части программы? У меня получается минимум три иконы и туча промежуточных переменных

Можно сделать так:

1. Часть программы выделяем и превращаем в вызываемый алгоритм.
2. В вызывающем алгоритме пишем Паузу и Вставку (указывающую на вызываемый алгоритм)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 24 Март, 2019 13:12 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
Владимир Паронджанов писал(а):
А_МУР писал(а):
Как бы одной иконой решить вопрос с постановкой на паузу части программы? У меня получается минимум три иконы и туча промежуточных переменных

Можно сделать так:

1. Часть программы выделяем и превращаем в вызываемый алгоритм.
2. В вызывающем алгоритме пишем Паузу и Вставку (указывающую на вызываемый алгоритм)

Тут же возникают проблем., с пространствами имен и наложение видимости переменной


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 24 Март, 2019 13:21 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
Простейшая жизненая ситуация, с коей сталкивается каждый програмист: есть два мотора. Есть кнопка пуск.
После нажатия кнопки пуск запускается мотор1 через час мотор 1 выключается, выдерживается пауза 20 сек и запускается мотор 2. И так они чередуются до бесконечности. Давайте построим алгоритм, и попробуем перенести из Дракона сразу в исполняющую машину?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 24 Март, 2019 13:33 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
А_МУР писал(а):
Простейшая жизненная ситуация, с коей сталкивается каждый программист: есть два мотора. Есть кнопка пуск.
После нажатия кнопки пуск запускается мотор1 через час мотор 1 выключается, выдерживается пауза 20 сек и запускается мотор 2. И так они чередуются до бесконечности. Давайте построим алгоритм, и попробуем перенести из Дракона сразу в исполняющую машину?

тут он действительно простейший
Вложение:
Моторы.JPG
Моторы.JPG [ 42.95 КБ | Просмотров: 8212 ]


у нас такой код компилируется сразу в программу для Ардуино. "Заливай и пользуйся" :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 24 Март, 2019 13:47 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
Дмитрий Бардынин писал(а):
у нас такой код компилируется сразу в программу для Ардуино. "Заливай и пользуйся" :)


тут, правда, есть один камушек подводный: внутренний таймер Ардуино сбрасывается раз в 50 суток, и в этот момент возможно нарушение синхронизации. по-крайней мере, мой генератор этот момент пока не отслеживает.

если точность +/- 1мс не важна, то проще на обычных Паузах
Вложение:
Моторы2.JPG
Моторы2.JPG [ 34.29 КБ | Просмотров: 8211 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 24 Март, 2019 14:06 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
Дмитрий Бардынин писал(а):
А_МУР писал(а):
Простейшая жизненная ситуация, с коей сталкивается каждый программист: есть два мотора. Есть кнопка пуск.
После нажатия кнопки пуск запускается мотор1 через час мотор 1 выключается, выдерживается пауза 20 сек и запускается мотор 2. И так они чередуются до бесконечности. Давайте построим алгоритм, и попробуем перенести из Дракона сразу в исполняющую машину?

тут он действительно простейший
Вложение:
Моторы.JPG


у нас такой код компилируется сразу в программу для Ардуино. "Заливай и пользуйся" :)

А код созданный Драконом можете показать?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 24 Март, 2019 14:14 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
Владимир Данилович, Дмитрий!
Необходимо создать теоретическую виртуальную машину для Дракона.
Свой вариант, такой машины, я смогу представить после 16.00 по Москве. Моя модель будет основана на промышленных ПЛК.
Дмитрий возможно возмет Ардуино!
Это будет первым шагом стандартизации


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 24 Март, 2019 14:17 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
А_МУР писал(а):
А код созданный Драконом можете показать?

Код:
void Zapuskaem_motory(  ) {
    while (true) {
        motor_1(1); // output
        delay(3600000); //pause 60 min
        motor_1(0); // output
        delay(20000); //pause 20 sek
        motor_2(1); // output
        delay(3600000); //pause 60 min
        motor_2(0); // output
        delay(20000); //pause 20 sek
        if (Prodolzhaem) {
        } else {
            break;
        }
    }
}

void motor_1( int val ) {
    digitalWrite(7,val);
}

void motor_2( int val ) {
    digitalWrite(8,val);
}


Это кусок кода. Понятно, что где-то в заголовке нужно глобальную переменную объявить Prodolzhaem

Специально не правил, убрал только объявления loop и setup. Как сгенерировал, так и показываю :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 24 Март, 2019 14:43 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
На переменке накидал еще вариант
Вложение:
Моторы22.JPG
Моторы22.JPG [ 32.85 КБ | Просмотров: 8207 ]

Вложение:
Моторы23.JPG
Моторы23.JPG [ 16.8 КБ | Просмотров: 8207 ]


Код:
void Zapuskaem_motory2(  ) {
    int motor= 0; // shelf
    while (true) {
        Zapuskaj(motor, 1); // output
        delay(3600000); //pause 60 minut
        Zapuskaj(motor, 0); // output
        delay(20000); //pause 20 sekund
        motor= (motor + 1) % 2; // shelf
        if (Prodolzhaem) {
        } else {
            break;
        }
    }
}

void Zapuskaj( int nomer, int val ) {
    digitalWrite(7+nomer,val);
}


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 24 Март, 2019 14:47 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
настройки режимов портов, глобальные переменные оставил за скобками.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 24 Март, 2019 15:38 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
Дмитрий Бардынин писал(а):
А_МУР писал(а):
А код созданный Драконом можете показать?

Код:
void Zapuskaem_motory(  ) {
    while (true) {
        motor_1(1); // output
        delay(3600000); //pause 60 min
        motor_1(0); // output
        delay(20000); //pause 20 sek
        motor_2(1); // output
        delay(3600000); //pause 60 min
        motor_2(0); // output
        delay(20000); //pause 20 sek
        if (Prodolzhaem) {
        } else {
            break;
        }
    }
}

void motor_1( int val ) {
    digitalWrite(7,val);
}

void motor_2( int val ) {
    digitalWrite(8,val);
}


Это кусок кода. Понятно, что где-то в заголовке нужно глобальную переменную объявить Prodolzhaem

Специально не правил, убрал только объявления loop и setup. Как сгенерировал, так и показываю :)

Получается что Ардуинка останавливает программу ради одного мотора?
Снова тривиальная ситуация: обратная связь мотор сработал ждем 20 сек и проверяем реле перепада?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 24 Март, 2019 15:39 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
Мотор сработал, а реле нет, запускаем другой мотор


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 24 Март, 2019 16:32 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
А_МУР писал(а):
Получается что Ардуинка останавливает программу ради одного мотора?
Снова тривиальная ситуация: обратная связь мотор сработал ждем 20 сек и проверяем реле перепада?

"каков вопрос - таков ответ". в условии не было требования контролировать состояние мотора. и другие процессы тоже не описывались, кроме запуска. поэтому: да, останавливает

уточните, что Вы понимаете под "реле перепада" и "обратная связь мотор сработал", и я уточню диаграмму и код


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 24 Март, 2019 17:29 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
Это моё представление виртуальной машины.
Обсуждаемо.
Схему главной программы представлю, если эта схема будет кому то интересна.
На самом деле вопрос Виртуальной Дракон Машины интересна разработчикам дракон редактора - большое упущение Владимира Даниловича


Вложения:
алгоритм виртуальной машины.png
алгоритм виртуальной машины.png [ 66.84 КБ | Просмотров: 8178 ]
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 276 ]  На страницу Пред.  1 ... 10, 11, 12, 13, 14  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2024, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB