Страница 4 из 5

Путь развития программы.

Добавлено: 13 авг 2016, 21:16
Слимпер
Да и на форум Радио Кот, тоже множество закончены и элегантных устройств с МК.

Путь развития программы.

Добавлено: 13 авг 2016, 21:18
findeler
Слимпер писал(а):Насчет delay согласен, а вот циклы очень даже нужны, как без них найти нужный элемент в массиве или разобрать строку ? Проста ими надо уметь пользоваться.
Нихт, пишите так что бы в каждом проходе программы (основной цикл) выполнялся бы только один шаг. Пусть ищет сто- двести циклов программы, но никаких внутренних циклов. Это и есть основа 100% работоспособности.

Путь развития программы.

Добавлено: 13 авг 2016, 21:19
dekorator
Стрельнё то может и срельнёт, но с таким псевдо рассистким подходом - электрик, программист, "визуальщик" скорее всего будет осечка.
Долой разделение!!! И тогда всё получится.

Путь развития программы.

Добавлено: 13 авг 2016, 21:23
findeler
dekorator писал(а):Стрельнё то может и срельнёт, но с таким псевдо рассистким подходом - электрик, программист, "визуальщик" скорее всего будет осечка.
Долой разделение!!!
Я редкий случай, который может вообще всё. И схему создать, и плату развести , и программу написать, И корпус сделать, и производство запустить. И я полностью согласен в этом вопросе с Сергеем. Хотите "С" atmel studio ждёт вас.

Путь развития программы.

Добавлено: 13 авг 2016, 21:24
Слимпер
Нихт, пишите так что бы в каждом проходе программы (основной цикл) выполнялся бы только один шаг. Пусть ищет сто- двести циклов программы, но никаких внутренних циклов. Это и есть основа 100% работоспособности.

Берем штатный для FLProg Блок поиск элемента в массиве и коде видем

[spoiler=Спойлер]String _FLPArray24931098[5];
int _gtv3;
void setup()
{
}
void loop()
{

_gtv3 = (_findElementFromStringArray(_FLPArray24931098, 5, (String("aaa"))));

}
int _findElementFromStringArray(String array[], int arraySize, String value){
for (int i = 0; i < arraySize; i = i + 1) {if(array.equals(value)){return i;}}
return -1;
}
[/spoiler]
И по другому не как

Путь развития программы.

Добавлено: 13 авг 2016, 21:27
findeler
Слимпер писал(а):И по другому не как
Недоработка автора, есть другие решения.

Путь развития программы.

Добавлено: 13 авг 2016, 21:30
support
Слимпер писал(а):Вот глянте Электроника для всех Там куча примеров того, что возможно и симбиоз Программист + Схемотехника + Конструктор. Но таких людей не так уже и много, но они есть.
Конечно есть. Но редкость. И в основном из старшего поколения. Молодежи грамотной мало. Да и откуда ей взяться? Такие увлечения как у нас появляются и развиваются в основном с детства. Я в своё время БЕСПЛАТНО ходил в радиокружок в Дворце пионеров (да я такой динозавр), одновременно БЕСПЛАТНО посещал картинговую секцию в Доме юнного техника. Папа мог с зарплаты без проблем купить мне конструктор или набор типа "электронные кубики". Уже постарше с денег полученных за колхоз я смог купить мечту всех мальчишек - набор для сборки маленького телевизора (уже не помню как назывался). А сейчас любой мало мальски приличный набор стоит среднюю зарплату по Новосибирску. Отечественных нет вообще, а импортные не подьёмны по деньгам. Все технические кружки -платные, и то же достаточно дороги. Куда деваться детям у родителей со средним достатком. В пивнушки. Откуда взяться грамотным специалистам. В институтах то же стоимость обучения зашкаливает. Бюджетные места вот недавно ещё урезали. Так и получаем безграмотное поколение.

Путь развития программы.

Добавлено: 13 авг 2016, 21:33
Слимпер
findeler писал(а):Недоработка автора, есть другие решения.
Если пойти глубже то все штатные функции CИ по работе со строками это и есть цикл с перебором всех символов строки. 
А так как вы предлагаете, нужный резальтат получишь когда он уже будет не нужен.
Т.е. исходное значение давно поменялось, а мы еще его анализ не закончили.

Путь развития программы.

Добавлено: 13 авг 2016, 21:39
dekorator
support писал(а):Так и получаем безграмотное поколение.
Плюс Flprog учит что шестнадцатиричная система ни к чему хорошему не приведёт и FBD это всё что нужно. Бедная молодёж.

Путь развития программы.

Добавлено: 13 авг 2016, 21:42
support
findeler писал(а):Недоработка автора, есть другие решения.
Нет это продуманное решение. То что вы говорите по поводу одного уикда - правильно при визуальном программированиии (непосредственно в схеме), но при компиляции действительно многие блоки разворачиваются в циклы. просто это не заметно как говорится снаружи. В этом и есть работа компилятора - оптимизировать исходную схему для уменьшения размера программы и ускорения работы. Delay - да зло, я с этим согласен. Но и то иногда и он необходим например в процессе инициализации контроллера. Я правда его ещё ни разу не применял, пока получается обходится, но примеры видел когда без него никак. Хотя вру, применял. в Модбасе у меня Delay на 5 милисекунд для очистки буера после неудачного приёма. там он просто необходим. но и то только при софтовом UART и в отдельных случаях. Там это необходимо и обойтись никак нельзя было. так что говорить что что то запрещено - нельзя. Надо просто думать что и когда применять. Ну и в конце концов это касается только блоков на  С. Блока Delay  в стандартной библиотеке у меня нет ))). как и блока  цикла.

Путь развития программы.

Добавлено: 13 авг 2016, 21:43
Rovki
dekorator писал(а):Плюс Flprog учит что шестнадцатиричная система ни к чему хорошему не приведёт и FBD это всё что нужно. Бедная молодёж.
Сколько можно об одном и том же ....

Путь развития программы.

Добавлено: 13 авг 2016, 21:49
dekorator
Rovki писал(а):Сколько можно об одном и том же ....
А никто не держит...

Путь развития программы.

Добавлено: 13 авг 2016, 21:51
findeler
Слимпер писал(а):А так как вы предлагаете, нужный резальтат получишь когда он уже будет не нужен.
А вот здесь как раз одно из отличий меду обычным и пром программированием. Либо результат вычисляется постепенно, либо сразу. Причём сразу делают:через прерывание, без циклов с нечётким условием, с фиксированным временем исполнения кода , Время выполнения учитывают.

Путь развития программы.

Добавлено: 13 авг 2016, 21:54
nalnik
Сколько умных советов!
Может хватит - помогите Человеку (с большой буквы) кодом или материально http://dic.academic.ru/dic.nsf....D%D0%BE
Тяжко читать такое "обычным электрикам"
:)

Путь развития программы.

Добавлено: 13 авг 2016, 21:58
support
Всё, я спать, у меня время 12, а в 6 вставать и арбайтен.

Путь развития программы.

Добавлено: 13 авг 2016, 22:00
findeler
support писал(а):но при компиляции действительно многие блоки разворачиваются в циклы. просто это не заметно как говорится снаружи
Я знаю, я просматриваю скетч. Я наверное слишком предвзят. Но имхо это не правильно. Цикл не имеет чёткого времени исполнения. А это в управлении порой критично. Вот пример (не мой). Сложный блок питания в ракетостроении. Время отработки полного цикла программы 1 мс. То есть независимо от того что и как, полный цикл 1 мс не более. С циклами время очень сложно прогнозировать.

Путь развития программы.

Добавлено: 14 авг 2016, 03:54
Слимпер
findeler писал(а):Я знаю, я просматриваю скетч. Я наверное слишком предвзят. Но имхо это не правильно. Цикл не имеет чёткого времени исполнения. А это в управлении порой критично. Вот пример (не мой). Сложный блок питания в ракетостроении. Время отработки полного цикла программы 1 мс. То есть независимо от того что и как, полный цикл 1 мс не более. С циклами время очень сложно прогнозировать.
Для таких задач нужны как раз уже дорогие пром контроллеры. Что бы не говорили, их цена в некоторых случаях обосновано.
А время исполнение в ардуино всегда будет плавающим, по другому не как.
Вот Время выполнения отдельных команд Arduino
Сейчас вывод на дисплей по I2C, занимает десятки мс, считывание с адресных датчиков тоже много времени ест.
 
А вот если есть, что то критичное по времени как раз его и надо исполнять по прерыванием (или по таймеру или по внешнему импульсу).
Или делить проект на несколько контроллеров, для разгрузки главного.

Путь развития программы.

Добавлено: 14 авг 2016, 07:30
findeler
Слимпер писал(а):Для таких задач нужны как раз уже дорогие пром контроллеры. Что бы не говорили, их цена в некоторых случаях обосновано.
Как раз нет, пром контроллер ценен своим софтом, разберите его, таже ардуинка но обвязка получше. Чипы там обычные. А вот как раз отдавать на откуп чужому интерпретатору критично важное решение , нет и ещё раз нет. Этим кстати сильно подкупает flprog, можно посмотреть код, и если надо поправить. Да есть и множество других факторов, не дают использовать пром контроллеры. Начиная от надёжности, размера, функционала, .....

Путь развития программы.

Добавлено: 14 авг 2016, 08:01
nalnik
Вот это - ПЛК150УЛ фирмы ОВЕН в "разрезе"
Это ПЛК состоит из трех плат
Изображение
Изображение

Я и их с 2008 по 2012 год понаставил полторы сотни штук, это сплошное мучение - взрываются блоки питания, отваливаются кварцы, не пропаяны разъемы, задолбали своими обновлениями (4 версии плат) за четыре года.
Спасибо FLProg
Это все я меняю на
LM7812, LM7805, Atmega 328p, ULN2003, MAX485.
Одна беда в FLProg я не могу менять порядок передачи байт FLOAT по Motbas - приходится править в IDE перед заливкой.

Путь развития программы.

Добавлено: 14 авг 2016, 08:11
support
nalnik писал(а):Одна беда в FLProg я не могу менять порядок передачи байт FLOAT по Motbas - приходится править в IDE перед заливкой
А вот здесь поподробнее. Кокой должен быть порядок, да и вообще опишите стандартный способ передачи байт флоат через модбас. Я немного похоже затупил когда это делал. я так понял что каждый производитель делает как хочет. Сделаю настройку передачи для Овен. Ну и для других если инфу дадут.