Разработки ecoins

Библиотеки для разных контроллеров

Аватара пользователя
Rovki
Полковник
Сообщения: 4872
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 269
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Разработки ecoins

#301

Сообщение Rovki » 04.08.2019{, 13:31}

bsn писал(а):
04.08.2019{, 12:41}
ecoins писал(а):
04.08.2019{, 11:25}
Это неплохо для исследовательских стендов
Не только для стендов.
Это неплохо для систем Умного Дома. Когда, к примеру в помещении размещён простейший контроллер, большинство его ног уже задействовано под иное оборудование. А ему ещё нужно собирать и температурные данные из нескольких точек, возможно и из соседних помещений. Далее он может передавать собранную инфу на более производительный контроллер верхнего уровня. При расстояниях в несколько десятков метров, 1-Wire, на трёх проводах прокинутых последовательно по всем точкам - работает великолепно. При опросе данных раз в минуту или ещё реже, сбоев не наблюдается. Проблема с первоначальной идентификацией - разовая. Настроил и забыл.
ecoins писал(а):
04.08.2019{, 11:25}
подключение сети 1-Wire - это всегда антенны индустриальных помех
Как и все провода на входе. Некоторые не подключают внешний подтягивающий резистор, обходятся внутренним подтягивающим. Соответственно шунтирующее сопротивление сети, десятки килоом - помехам вольготно, но как сообщают, в домашних условиях и того достаточно, и всё работает. При подключении стандартного внешнего подтягивающего R=4,7k - проблем обычно не возникает. Я экспериментировал с внешним R=1k, всё прекрасно работает. А шунт в 1k хорошо гасит окружающие помехи.
ecoins писал(а):
04.08.2019{, 11:25}
Это очень и очень вандала не защищенная система
Если вандал - который с ломом, то да. "Против лома - нет приёма" Точно также вандал разрушит и всё остальное. Но если решён вопрос с защитой от проникновения к вам вандала - то нет проблем, проложил три проводка - и получил вечную бесперебойную работу.
ecoins писал(а):
04.08.2019{, 11:25}
Наше направление - сеть беспроводных сенсоров и устройств. Широко использовали ZigBee
Поиграться ребятишкам с быстрым беспроводным подключением - видимо ZigBee самое то. Или для тех кому неохота проводки тянуть и дизайново прикрывать их кабель каналами - тоже удобно.
Но в датчиках с радиоудлиннителями придётся постоянно помнить о заряде батареек. По закону подлости, сядут в самый ответственный момент, особенно если на морозе. Лично видел как тянули для радиоудлинителей провода подпитки - но ведь тогда теряется весь смысл беспроводности.
Кроме того, уже писал, повторюсь: пройдёт мимо, пусть не вандал с ломом, а некий "шутник" с такой игрушкой: https://14bytes.ru/glushilka-wifi/ и ляжет вся ваша ZigBee хоть на стенде, хоть в Умном Доме, хоть на промышленном объекте. А проводную сеть дистанционно и бесконтактно положить - это ещё нужно сильно постараться.
В промышленности используют проводной канал RS485 с опторазвязкой и километровый отрезок не проблема в цеху .кроме интерфейса важен еще протокол передачи данных (например модбас) или отсутсвие оного.
Когда говорят беспроводные датчики это относится к каналу передачи данных ,а не питания .А питание можен быть как автономным (АКБ) так и сетевым.
Электронщик до мозга костей и не только

WZV
Сержант
Сообщения: 216
Зарегистрирован: 06.09.2015{, 14:31}
Репутация: 24

Разработки ecoins

#302

Сообщение WZV » 04.08.2019{, 14:33}

Согласен с bsn во всех пунктах. Вот уже больше года работает бесперебойно несколько веток, метров по двадцать каждая. На каждой ветке штук по десять датчиков DS18B20. Контроллер Arduino Mega2560.

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 452
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#303

Сообщение ecoins » 04.08.2019{, 17:44}

Интересное обсуждение.
Относительно ZigBee. Не готов согласиться. Занимаются этим у нас не дети - ставили на промышленных объектах. ZigBee - это отдельная тема, агитировать за этот тип связи сейчас не готов, есть технические решения интереснее.
Относительно длинных линий на 1-Wire. Длинные линии работают - но монтаж по комнатам, или по офису? Для нас это отдельная проблема проложить по помещениям провода к датчикам в нужных точках. Так делается для адресной пожарной сигнализации, но там и условия приемлемые - идет себе линия по потолку, и идет. К слову эти датчики и температуру в помещениях меряют.
Если подытожить - выбор решения зависит от предпочтения проектировщика и собственника системы.
Относительно сети беспроводных датчиков - это тема действительно нас сейчас занимает, к сожалению время пока другим занято.
------------------------------------
WZV писал(а):
04.08.2019{, 14:33}
Вот уже больше года работает бесперебойно несколько веток, метров по двадцать каждая. На каждой ветке штук по десять датчиков DS18B20. Контроллер Arduino Mega2560.
Было бы интересно посмотреть проект, если он на FLProg.

tolochko
Сержант
Сообщения: 247
Зарегистрирован: 30.11.2016{, 16:58}
Репутация: 7
Откуда: Днепропетровск

Разработки ecoins

#304

Сообщение tolochko » 04.08.2019{, 18:08}

По поводу 1WIRE
С этим протоколом работаю около 6 лет
Правда без участия контроллеров на базе компьютера
Есть такая программа Бенукс
Линия достигали 200м причем шла рядом с проводами досветки в теплице все работало
Для нормальной работы на длинных линиях нужно чтобы была подтяжка не только к земле
но и к плюсу
У 1 WIRE есть специализированная микросхема DS2480 которая работает через COM порт
Или использовать 2 пина контроллера люди делают

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 452
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#305

Сообщение ecoins » 04.08.2019{, 18:14}

tolochko писал(а):
04.08.2019{, 18:08}
Линия достигали 200м причем шла рядом с проводами досветки в теплице все работало
Убедительный и красивый пример.
Было бы хорошо подобные примеры на FLProg посмотреть, если они у кого-нибудь есть.

Аватара пользователя
Rovki
Полковник
Сообщения: 4872
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 269
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Разработки ecoins

#306

Сообщение Rovki » 04.08.2019{, 19:17}

Да.... , правильней говорить об интерфейсе ,а не протоколе 1WIRE

Отправлено спустя 1 минуту 13 секунд:
Rovki писал(а):
04.08.2019{, 19:17}
Да.... , правильней говорить об интерфейсе ,а не протоколе 1WIRE
Ну и конечно хорошо бы глянуть проект с несколькими десятками устройств на шине ,как у вас в ФЛ :smile427:
Электронщик до мозга костей и не только

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Разработки ecoins

#307

Сообщение Dryundel » 04.08.2019{, 20:33}

ecoins писал(а):
04.08.2019{, 11:25}
Одно время мы много с ней работали.
Наше мнение об иллюзорности этого решения:
Отчасти соглашусь с Вами.
Но шина 1-Wire, весьма любима пользователями, как мне кажется, Вы успели заметить.

Аватара пользователя
Rovki
Полковник
Сообщения: 4872
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 269
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Разработки ecoins

#308

Сообщение Rovki » 04.08.2019{, 20:38}

Dryundel писал(а):
04.08.2019{, 20:33}
ecoins писал(а):
04.08.2019{, 11:25}
Одно время мы много с ней работали.
Наше мнение об иллюзорности этого решения:
Отчасти соглашусь с Вами.
Но шина 1-Wire, весьма любима пользователями, как мне кажется, Вы успели заметить.
Нормальная шина ,но в ардуино она имеет программную реализацию ...и как следствие возможны тормоза ...
Электронщик до мозга костей и не только

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Разработки ecoins

#309

Сообщение Dryundel » 04.08.2019{, 22:07}

Немого критики.

1. Ветка разрослась и пора бы решить с админом вопрос о создании раздела ибо кожу, мед, навоз и гвозди на одной полке держать не гоже. А с учетом того что все разрабатываемые блоки еще весьма сырые, то если не под каждый блок, то хотя бы под группу хорошо было бы вести свою тему.
2. В наборе блоков последнего релиза присутствуют блоки не работающие с последними библиотеками. Понять с какими библиотеками они работают не представляется возможным. Это совсем не хорошо.

Теперь по существу.
Есть целая линейка блоков работы с LCD HD44780 вроде бы здорово но...
Работать с ними не удобно по крайней мере по двум причинам:
1. У всех блоков отсутствует функция очистки кроме конечно самого блока очистки. Почему бы не сделать ее принудительно или опционно.
2. В блоках есть вход En который предполагается подключать к выходу control блока управления, соответственно для того что бы управлять включением/выключением блока надо как то управлять сигналом control, к примеру доп. блока "И" почему бы не добавить вход control, тогда входом En можно будет управлять так же как в стандартном блоке при условии что функция очистки будет встроена.

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 452
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#310

Сообщение ecoins » 04.08.2019{, 23:12}

Dryundel писал(а):
04.08.2019{, 22:07}
1. У всех блоков отсутствует функция очистки кроме конечно самого блока очистки. Почему бы не сделать ее принудительно или опционно.
Это не совсем так. Достаточно указать длину=0, и будет очистка от параметра до конца строки.
---
Уже не первый раз упоминается вход EN как для очистки. Так сделано в стандартном блоке. Но это дело привычки. Мы пытались минимизировать число входов на блоках.
А можно пример применения, когда нужно стереть что-то или полностью?

neangel
Сержант
Сообщения: 138
Зарегистрирован: 10.01.2019{, 13:13}
Репутация: 1
Откуда: Москва
Имя: Игорь

Разработки ecoins

#311

Сообщение neangel » 05.08.2019{, 02:19}

ecoins писал(а):
01.08.2019{, 18:00}
----
Действительно - описание счетчика оказалось урезано. В новых версиях добавим.
Пока смотрите описание здесь:
БЛОК СЧЕТЧИКА
Счетчик считает в диапазоне от -32768 до +32767.
При первом включении или при rst=1, начальное значение счетчика сбрасывается
до значения "НАЧАЛЬНОЕ ЗНАЧЕНИЕ" (диапазоне от -32768 до +32767, default=0).
Счетчик считает с шагом, определяемый
значением "ШАГ ИЗМЕНЕНИЯ СЧЕТЧИКА" (диапазоне от -32768 до +32767, default=1).
Входные параметры:
rst - сброс текущего значения до параметра значения " НАЧАЛЬНОЕ ЗНАЧЕНИЕ.
mode :
'S' - пила. Если шаг >0, увеличение до верхней границы и сразу с возвратом к нижней границе.
Если шаг <0, уменьшение до нижней границы и сразу с возвратом к верхней границе.
'T' - треугольник. Если шаг >0, увеличение до верхней границы, затем уменьшение к нижней границе.
Если шаг <0, уменьшение до нижней границы, затем увеличение к верхней границе.
'L' - лимит. Если шаг >0, увеличение до верхней границы и останавливает счет.
Если шаг <0, уменьшение до нижней границы и останавливает счет.
'C' - предел. Если шаг >0, увеличение до 32767 и останавливает счет.
Если шаг <0, уменьшение до -32768 и останавливает счет.
top - верхняя граница;
bottom - нижняя граница.
----------------------------------------------------------
ecoins@mail.ru 01.08.19
И вновь я с вашим счётчиком.
Это не счётчик, а генератор чисел с частотой 67 Герц.
Которые он начинает генерировать как вы описали при ext = 1

Обманщики.

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 452
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#312

Сообщение ecoins » 05.08.2019{, 07:32}

Счетчик очень простой и в библиотеке выглядит следующим образом:
Код счетчика C++Показать
//---------------------------------------------------------------------------------------
// СЧЕТЧИК
// 'S' - пила. Если шаг >0, увеличение до верхней границы и сразу с возвратом к нижней границе
// Если шаг <0, уменьшение до нижней границы и сразу с возратом к верхней границе
// 'T' - треугольник. Если шаг >0, увеличение до верхней границы, затем уменьшение к нижней границе
// Если шаг <0, уменьшение до нижней границы, затем увеличение к верхней границе
// 'L' - лимит. Если шаг >0, увеличение до верхней границы и останавливает счет.
// Если шаг <0, уменьшение до нижней границы и останавливает счет.
// 'C' - предел.Если шаг >0, увеличение до 32767 и останавливает счет.
// Если шаг <0, уменьшение до -32768 и останавливает счет.
//---------------------------------------------------------------------------------------
void RT_HW_TASK:: counter(RT_HW_TASK_COUNTER_ID &id){
if(!id.init) return;
switch( id.mode ) {
default: //-----неизвестный режим - будет отрабатывать режим S
//-----пила
case 'S': if(id.delta>0) {if(id.cnt==id.top) {id.cnt=id.bottom;} else {id.cnt=id.cnt+id.delta; if (id.cnt>id.top) {id.cnt=id.top; }}} //пила+:увеличение до верхней границы с возвратом к нижней границе
if(id.delta<0) {if(id.cnt==id.bottom) {id.cnt=id.top;} else {id.cnt=id.cnt+id.delta; if (id.cnt<id.bottom) {id.cnt=id.bottom;}}} //пила-:уменьшение до нижней границы с возратом к верхней границе
break;
//-----треугольник
case 'T': if(id.cnt==id.top) id.direct=false;
if(id.cnt==id.bottom) id.direct=true;
if(id.direct==true) {id.cnt=id.cnt+id.delta; if (id.cnt>id.top) id.cnt=id.top;}
else {id.cnt=id.cnt-id.delta; if (id.cnt<id.bottom) id.cnt=id.bottom;}
break;
//----движение до установленного предела
case 'L': if(id.delta>0) {id.cnt=id.cnt+id.delta; if (id.cnt>id.top) id.cnt=id.top;} //предел+: увеличение до верхней границы;
if(id.delta<0) {id.cnt=id.cnt+id.delta; if (id.cnt<id.bottom) id.cnt=id.bottom;} //предел-: уменьшение до нижней границы;
break;
//----Движение до 32767 или до -32768
case 'C': id.cnt=id.cnt+id.delta;
if(id.delta>0) {if(id.cnt> 32767) id.cnt= 32767;}
if(id.delta<0) {if(id.cnt< -32768) id.cnt=-32768;}
break;
}}
Проверяли все режимы и активно используем в проектах, особенно для целей отладки.
Если вход ext=1, то счетчик считает при каждом вхождении.
Он у Вас считает, но возможно Вы иным образом интерпретируете полученные результаты. Возможно еще, что в проекте у Вас что-то тормозит. Пришлите проект.
Попробуйте счетчик отдельно с выводом на консоль и поэкспериментируйте с параметрами и входами.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Разработки ecoins

#313

Сообщение Dryundel » 05.08.2019{, 09:10}

ecoins писал(а):
04.08.2019{, 23:12}
Мы пытались минимизировать число входов на блоках.
А можно пример применения, когда нужно стереть что-то или полностью?
Минимизирование числов входов это не всегда хорошо. Можно вообще минимизировать до С+ а можно еще дальше пойти. И каков тогда смысл FBD ? По итогу мы будем имеем кучу минимизированных блоков которые надо будет составить в пазл вместо применения одного функционального блока. В результате минимизации входов имеем максимизацию количества блоков в плате.
ecoins писал(а):
04.08.2019{, 23:12}
Так сделано в стандартном блоке. Но это дело привычки.

Не стоит бороться с привычками. Как говориться лучшее - враг хорошего.
ecoins писал(а):
04.08.2019{, 23:12}
А можно пример применения, когда нужно стереть что-то или полностью?
Пример: Делаем меню. При переходе из пункта в пункт этого меню на дисплее должна отображаться разная информация. В стандартном варианте снял сигнал с блока и перевел на другой блок этот сигнал и все. В вашем варианте надо во первых как то снимать сигнал с En а это дополнительный блок, а потом еще и очищать тот кусок дисплея который он занимал,а это еще один блок. Итого вместо одного блока имеем три и каждый надо настроить и не запутаться. В этом примере нужен и вход En и очистка, иначе сталкиваемся с доп.заморочками.
ecoins писал(а):
04.08.2019{, 23:12}
Это не совсем так. Достаточно указать длину=0, и будет очистка от параметра до конца строки.
А где это прописано? Пользователю надо догадаться? Но я как то и этого не заметил. К примеру использовав блок вывода текта по номеру, с параметром длины "0" и выравниванием по центру, при снятии сигнала с En , имеем на дисплее не стертое последнее значение. (проверено)
В принципе в стандартном блоке похоже так и сделано стирание до конца строки. Но раз уж вы сделали в блоках возможность ограничения вывода длины, то почему бы не сделать опционально еще и очистку этого же предела? По принципу "Поел - убери за собой".

Отправлено спустя 22 минуты 9 секунд:
ecoins писал(а):
05.08.2019{, 07:32}
Счетчик очень простой и в библиотеке выглядит следующим образом:
К стати по поводу счетчика:
Для минимизации количества входов, вход mode логично было бы убрать в параметры, а вход ext логично было бы назвать En (в силу привычки, для стандартизации, ну или как будет угодно)

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 452
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#314

Сообщение ecoins » 05.08.2019{, 10:31}

Dryundel писал(а):
05.08.2019{, 09:32}
К стати по поводу счетчика:
Для минимизации количества входов, вход mode логично было бы убрать в параметры, а вход ext логично было бы назвать En (в силу привычки, для стандартизации, ну или как будет угодно
ecoins рассматривает свои блоки как конструктор под разные предпочтения. Со временем они будут включены в стандартное применение или нет - решит разработчик FLProg. У него с его инструментами гораздо больше возможностей по оформлению блоков.
В самом пользовательском блоке только одна строка на исполнении:
//--------------------------------БЛОК СЧЕТЧИК-------------------------------------------
if(rst) {id.init=false;} if(ext) { if(!id.init) RT_HW_Task.setCounterID(id, mode , ШАГ ИЗМЕНЕНИЯ СЧЕТЧИКА , top , bot , НАЧАЛЬНОЕ ЗНАЧЕНИЕ ); RT_HW_Task.counter(id); } val =id.cnt;
Пользователь может самостоятельно скомбинировать нужную конфигурацию.
Относительно ext и EN. Мы осознанно пытаемся уходить от использования наименование входа EN, когда это связано с разрешающим событием. "Событие" в терминологии ecoins, это значение (bool, int) которое становится не нулевым на один цикл loop.
Иногда запрет на работу блока (EN) и событие (event или чтобы короче используем ext) совпадают. Как в случае со счетчиком.
Последний раз редактировалось ecoins 05.08.2019{, 10:51}, всего редактировалось 1 раз.

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 452
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#315

Сообщение ecoins » 05.08.2019{, 10:50}

Упрощенная версия счетчика. Вход назвал En (событие) - это немного отличаться будет от EN(запрет исполнения блока).
У счетчика только три входа: En - счет, top - верхняя граница, bottom - нижняя граница.
Доступны три параметра пользователя:
1) режим работы счетчика (S,T,L,C) - по умолчанию =S (пила);
2) шаг изменения счетчика - по умолчанию =1;
2) начальное значение счетчика - по умолчанию =0.
RTcntS_счетчик_упрощенный_(CODE).ubi
(27.69 КБ) 75 скачиваний
p.s. В новом блоке уточнил описание.
Последний раз редактировалось ecoins 05.08.2019{, 11:44}, всего редактировалось 1 раз.

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 452
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#316

Сообщение ecoins » 05.08.2019{, 11:42}

А как убрать сообщение? Не нашел опции.
Последний раз редактировалось ecoins 05.08.2019{, 11:47}, всего редактировалось 2 раза.

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 452
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#317

Сообщение ecoins » 05.08.2019{, 11:45}

Dryundel писал(а):
05.08.2019{, 09:32}
ecoins писал(а): ↑Вчера{, 20:12}
А можно пример применения, когда нужно стереть что-то или полностью?
Пример: Делаем меню. При переходе из пункта в пункт этого меню на дисплее должна отображаться разная информация. В стандартном варианте снял сигнал с блока и перевел на другой блок этот сигнал и все. В вашем варианте надо во первых как то снимать сигнал с En а это дополнительный блок, а потом еще и очищать тот кусок дисплея который он занимал,а это еще один блок. Итого вместо одного блока имеем три и каждый надо настроить и не запутаться. В этом примере нужен и вход En и очистка, иначе сталкиваемся с доп.заморочками.
Вопрос: Нужно очистить дисплей весь, и при этом работающие блоки кто-то заблокирует, а новые кто-то включит? Это ведь можно сделать и сейчас, установив после lcd.begin блок AND или мультиплексор.
Из описания блока:
Вход: EN - разрешение работы. Через этот вход также достигается снижение затрат процессорного времени;
val - переменная в формате int16_t (int)
НОМЕР ДИСПЛЕЯ - обращается к инициализированному блоку RTlcdBegin с таким же номером;
КОЛОНКА - номер колонки;
СТРОКА - номер строки;
ДЛИНА - разрешенная длина выводимого поля. Если =0, выводит до конца строки;
ПЕРИОД - (мс) период изменения символа на дисплее;
ВЫРАВНИВАНИЕ - выравнивание текста в поле: N - без выравнивания, L -влево, С -по центру, R -вправо;
То есть сейчас указав в блоке lcd.srting 1 колонку и 1 строку, длину 0, на входе " ", можно стереть 1-ю строку.
---Можно добавить вход конечно очистки. Надо обдумать. Или сделать отдельно блок очистки строки.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Разработки ecoins

#318

Сообщение Dryundel » 05.08.2019{, 11:56}

ecoins писал(а):
05.08.2019{, 10:50}
У счетчика только три входа: En - счет, top - верхняя граница, bottom - нижняя граница.
Ну почему же Вы перебарщиваете?
Зачем шаг изменения счетчика и начальное значение счетчика убрали в параметры?

Выход Шаг изменения счетчика необходим при организации инкрементных ускорений, а начальное значение счетчика необходимо для ввода этого значения из EEPROM в случае настраиваемых девайсов.

Отправлено спустя 4 минуты 19 секунд:
ecoins писал(а):
05.08.2019{, 11:45}
Вопрос: Нужно очистить дисплей весь, и при этом работающие блоки кто-то заблокирует, а новые кто-то включит?
Зачем весь? Если блок что то нацарапал на дисплее так пусть он только это и очистит. Я же писал, по принципу "поел убери за собой". А для очистки всего дисплея к стати блока вроде и нет. А не плохо бы.

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 452
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#319

Сообщение ecoins » 05.08.2019{, 12:32}

Dryundel писал(а):
05.08.2019{, 12:00}
Зачем весь? Если блок что то нацарапал на дисплее так пусть он только это и очистит. Я же писал, по принципу "поел убери за собой". А для очистки всего дисплея к стати блока вроде и нет. А не плохо бы.
По дисплею соберется набор предложений и библиотеку с блоками доработаю. По очистке дисплея и выключение подсветки учту.

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 452
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#320

Сообщение ecoins » 05.08.2019{, 12:53}

Версия счетчика со всеми внешними параметрами - на паука стал похож :smile469: .
======================================================
БЛОК СЧЕТЧИКА С ВНЕШНИМИ ПАРАМЕТРАМИ
Входы:
En - разрешение счета.Счетчик считает, когда на входе En событие (=1 на один цикл loop).
Если En=1 всегда, то он считает при каждом вхождении.
rst - сброс. Устанавливается значение выхода=begin и начинается новый счет.
step - шаг изменения (int). Может быть положительным и отрицательным. =0 - не считает.
mode - режим работы счетчика (S,T,L,C) - по умолчанию =S (пила).
top - верхняя граница,
bottom - нижняя граница.

Счетчик считает в диапазоне от -32768 до +32767.

При первом включении начальное и после rst=1 значение счетчика сбрасывается до begin .
РЕЖИМ РАБОТЫ СЧEТЧИКА :
'S' - пила. Если шаг >0, увеличение до верхней границы и сразу с возвратом к нижней границе.
Если шаг <0, уменьшение до нижней границы и сразу с возвратом к верхней границе.
'T' - треугольник. Если шаг >0, увеличение до верхней границы, затем уменьшение к нижней границе.
Если шаг <0, уменьшение до нижней границы, затем увеличение к верхней границе.
'L' - лимит. Если шаг >0, увеличение до верхней границы и останавливает счет.
Если шаг <0, уменьшение до нижней границы и останавливает счет.
'C' - предел. Если шаг >0, увеличение до 32767 и останавливает счет.
Если шаг <0, уменьшение до -32768 и останавливает счет.
----------------------------------------------------------
ecoins@mail.ru 05.08.19

Закрыто

Вернуться в «Команда ecoins»