Здравствуйте, осваивать язык начал пару дней назад. Видеоматериалы все (почти) отсмотрел.
Остались вопросы, ответов на них пока не нашёл.
1. Последовательность выполнения плат идёт сверху вниз ? (вроде так)
2. Если я буду использовать переменные/выходы вычисляемые в верхних платах они уже будут изменёнными ?
3. Какова последовательность выполнения внутри платы ? (Внутри платы можно выход использовать как вход, не призойдёт ли путаницы что второе действие будет сделано раньше первого.)
4. Значения по умолчанию они только при запуске программы или каждый цикл ? (вроде при запуске)
5. Внутри блоков используется delay или работа через таймер. (речь например про опрос датчиков DS18B20 не будет ли останавливаться программа на момент опроса ?
6. Есть ли проблема при переполнении внутреннего таймера?
"Примерно через 50 дней программа работать перестанет: счетчик millis () обнулится и условия if ((currentMillis — lastUpdate) > updateInterval), (currentMillis — previousMillis >= OnTime) и (currentMillis — previousMillis >= OffTime) возможно никогда больше и не выполнятся. Чтобы этого избежать при условии, что не сильно критичен единичный сбой раз в 50 дней ......" (с)
7. Элемент bounce, нужен или нет если включена защита от дребезга.
8. Счётный триггер ТТ, если инвертировать вход будет ли он меняться по заднему фронту, и если будет то как ?
9. Массивы в переменных не отображаются ?
Пока всё.
Буду очень признателен за ответы.
Некоторые общие вопросы.
Некоторые общие вопросы.
1. Да
2. Да. Вычисление новой платы начинается только после обработки предыдущей.
3.
support однажды в теме отвечал
5. Нет, там используется millis(), micros(). Остановки не будет, а опрос происходит только в некоторых циклах, если с последнего опроса прошло больше времени чем было указано в паузе.
6. Не должно быть, когда то давно было в багах, но авто уже исправлял.
7. НЕТ.
8. Будет.
9. Не понял вопрос.
2. Да. Вычисление новой платы начинается только после обработки предыдущей.
3.
support однажды в теме отвечал
4. Это те значения присваиваются при запуски, и остаются таковыми до первой перезаписи, уже в ходе выполнения программы.Блоки в плате могут быть трёх видов. Расчитываемые, оконечные, и логические. В первую очередь обрабатываются расчитываеммые блоки. Это триггеры, таймеры, генераторы, сенсоры и т.д. Затем обрабатываются оконечные блоки. Это в основном блоки которые не имеют выходов. Например вывод на дисплей, вывод на UART, запись в переменные. Порядок обработки блоков внутри групп организован следующим образом. Первым обрабатывается блок наиболее близкий по прямой (пришлось вспоминать расчёт гипотенузы в прямоугольном треугольнике) к правому верхнему углу платы. Последним соответственно самый дальний. Логические блоки (например AND, OR, входы, математика) не рассчитываются. При обработке блоков других типов запрашивается состояние выходов таких блоков. Они в ответ выдают логические выражения (готовый код С) соответствующие своей логике. Такое решение принято для экономии памяти контроллера. Не хорошо было бы для каждого логического или математического действия создавать переменную. В большинстве случаев в этом нет необходимости. Ну где то так. Это очень упрощённо, на самом деле логика компилятора намного сложнее. Я даже не очень представляю как её описать подробно. На это потребуется много времени и сил.
5. Нет, там используется millis(), micros(). Остановки не будет, а опрос происходит только в некоторых циклах, если с последнего опроса прошло больше времени чем было указано в паузе.
6. Не должно быть, когда то давно было в багах, но авто уже исправлял.
7. НЕТ.
8. Будет.
9. Не понял вопрос.
Некоторые общие вопросы.
Спасибо понятно.
3. В общем всё достаточно сложно. Для двойного использования лучше логические цепочки разносить по высоте и не перекрещивать.
3. В общем всё достаточно сложно. Для двойного использования лучше логические цепочки разносить по высоте и не перекрещивать.
Некоторые общие вопросы.
В некоторых случаях бывает надо и на разные платы разносить.findeler писал(а):3. В общем всё достаточно сложно. Для двойного использования лучше логические цепочки разносить по высоте и не перекрещивать.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя