FLProg
Вход на сайт
Логин:
Пароль:
Мы в VK
Поиск
Статистика


Яндекс.Метрика
Пятница, 09.12.2016, 14:32
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » Некоторые общие вопросы. (Общие вопросы по программе.)
Некоторые общие вопросы.
findeler
Дата: Воскресенье, 17.07.2016, 12:32 | Сообщение # 1
Лейтенант
Группа: Проверенные
Сообщений: 76
Награды: 1
Репутация: 1
Статус: Offline
Здравствуйте, осваивать язык начал пару дней назад. Видеоматериалы все (почти) отсмотрел.
Остались вопросы, ответов на них пока не нашёл.

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. Массивы в переменных не отображаются ?

Пока всё.

Буду очень признателен за ответы.
 
Слимпер Дата: Воскресенье, 17.07.2016, 14:43 | Сообщение # 2
Генерал-лейтенант
Группа: Проверенные
Сообщений: 678
Награды: 31
Репутация: 23
Статус: Offline
1. Да
2. Да. Вычисление новой платы начинается только после обработки предыдущей. 
3.

support  однажды в теме  отвечал
Цитата
Блоки в плате могут быть трёх видов. Расчитываемые, оконечные, и логические.  В первую очередь обрабатываются расчитываеммые блоки. Это триггеры, таймеры, генераторы, сенсоры и т.д. Затем обрабатываются оконечные блоки. Это в основном блоки которые не имеют выходов. Например вывод на дисплей, вывод на UART, запись в переменные. Порядок обработки блоков внутри групп организован следующим образом.  Первым обрабатывается блок наиболее близкий по прямой (пришлось вспоминать расчёт гипотенузы в прямоугольном треугольнике) к правому верхнему углу платы. Последним соответственно самый дальний. Логические блоки  (например AND, OR, входы, математика) не рассчитываются. При обработке блоков других типов запрашивается состояние выходов таких блоков. Они в ответ выдают логические выражения (готовый код С) соответствующие своей логике.  Такое решение принято для экономии памяти контроллера. Не хорошо было бы для каждого логического или математического действия создавать переменную. В большинстве случаев в этом нет необходимости. Ну где то так. Это очень упрощённо, на самом деле логика компилятора намного сложнее. Я даже не очень представляю как её описать подробно. На это потребуется много времени и сил.
4. Это те значения присваиваются при запуски, и остаются таковыми до первой перезаписи, уже в ходе выполнения программы.
5. Нет, там используется millis(), micros(). Остановки не будет, а опрос  происходит только в некоторых циклах, если с последнего опроса прошло больше времени чем было указано в паузе.
6. Не должно быть, когда то давно было в багах, но авто уже исправлял. 
7. НЕТ.
8. Будет.
9. Не понял вопрос.
 
findeler Дата: Воскресенье, 17.07.2016, 15:01 | Сообщение # 3
Лейтенант
Группа: Проверенные
Сообщений: 76
Награды: 1
Репутация: 1
Статус: Offline
Спасибо понятно.

3. В общем всё достаточно сложно. Для двойного использования лучше логические цепочки разносить по высоте и не перекрещивать.
 
Слимпер Дата: Воскресенье, 17.07.2016, 15:43 | Сообщение # 4
Генерал-лейтенант
Группа: Проверенные
Сообщений: 678
Награды: 31
Репутация: 23
Статус: Offline
Цитата findeler ()
3. В общем всё достаточно сложно. Для двойного использования лучше логические цепочки разносить по высоте и не перекрещивать.
В некоторых случаях бывает надо и на разные платы разносить.
 
Форум » Основной » Спросить у знатоков » Некоторые общие вопросы. (Общие вопросы по программе.)
Страница 1 из 11
Поиск:

FLProg © 2016
Яндекс.Метрика