Быстрые входы и выходы

Альтернатива digitalRead и digitalWrite

Пользовательские блоки дополняющие набор стандартных блоков
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Аватара пользователя
Sancho
Полковник
Сообщения: 3990
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Быстрые входы и выходы

#1

Сообщение Sancho » 20.01.2018{, 13:15}

Блоки построены на основе библиотеке CyberLib.
Установить сразу!!!
Огромное Спасибо её разработчикам!!!
Версия V1 содержит
входы с D2 по D7,
выходы в разных форматах, с D10 по D13:
- выходы с записью по en, тоже самое как если в программе включить этот режим.
- выходы с защёлкой(триггером) - меняет выход один раз в момент изменения состояния, потом вообще почти "не отсвечивают". Первый цикл должен быть с false / 0.
- выходы как стандартные.
Отписываемся здесь или в этой теме.
Вопрос, резонный - почему не все пины?
Когда Вы посмотрите, как там всё устроенно, то без труда измените или добавите то, что необходимо именно в данный момент.

Над универсальностью/настраиваемостью работаю.
Попробовал настройку - медленнее начинает работать, на схеме не видно, что это за номер входа/выхода.

UPD.
Обновлено 25 января 2018.
Добавлены быстрые аналоговые входы.
Небольшие изменения в логике старых.
UPD.
05.07.2018 Обновлена библиотека, добавлены цифровые из аналоговых для Мега 2560

Данные блоки работают с мк: ATmega328, ATmega32U4.
с мк ATmega168 и 2560 аналоговые входы не работают...

Если понравилось и пригодилось - ЖМИ ТУТ!!!
Вложения
CyberLib-master.rar
Обновлена, добавлены цифровые из аналоговых для Мега 2560
(21.71 КБ) 199 скачиваний
_Speed_Ports_V3.ubl
Отдельный блок для объявления биб-ки.
Speed_Ports_LIB ставить один раз обязательно!
13.03.2018
(167.38 КБ) 287 скачиваний
_Speed Ports_V2.ubl
Перезалито 15.02.2018
(165.04 КБ) 268 скачиваний
CyberLib-master.zip
Установить сразу!!!
(13.3 КБ) 347 скачиваний
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 21
Откуда: Кременчуг
Имя: Сергей

Быстрые входы и выходы

#2

Сообщение seri0shka » 14.02.2018{, 11:15}

Спасибо за блоки, давно точил зуб на эту библиотеку. Но есть нюанс: вроде библиотека не работает с платами на ATMega168, выдаёт ошибку ещё на этапе компилирования. Пишу по памяти, прошло время с экспериментов, поэтому проверьте, если есть возможность, и добавьте примечание в первом сообщении.

Аватара пользователя
Sancho
Полковник
Сообщения: 3990
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Быстрые входы и выходы

#3

Сообщение Sancho » 14.02.2018{, 11:32}

seri0shka,
Простейший вход и выход "скушал".
Скетч использует 490 байт (3%) памяти устройства. Всего доступно 14336 байт.
Глобальные переменные используют 11 байт (1%) динамической памяти, оставляя 1013 байт для локальных переменных. Максимум: 1024 байт.
Отправлено спустя 3 минуты 55 секунд:
С аналоговыми - засада, спасибо, отмечу.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09.04.2016{, 12:17}
Репутация: 21
Откуда: Кременчуг
Имя: Сергей

Быстрые входы и выходы

#4

Сообщение seri0shka » 13.03.2018{, 15:50}

Sancho, в блоках ошибки. Простейший пример: блок Out_13_High. В коде if ( en ) { D13_High;}. А кто D13 назад вернёт?
Кроме того, в блоке не декларируется библиотека, соответственно компилятор выдаст ошибку.
Кстати, кто подскажет, ка сделать, чтоб при добавлении нескольких блоков, в каждом из которых декларируется библиотека, в скетче она появлялась только один раз?

Аватара пользователя
Sancho
Полковник
Сообщения: 3990
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Быстрые входы и выходы

#5

Сообщение Sancho » 13.03.2018{, 15:52}

seri0shka писал(а):
13.03.2018{, 15:50}
в блоках ошибки. Простейший пример: блок Out_13_High. В коде if ( en ) { D13_High;}. А кто D13 назад вернёт?
Какие ошибки?
Посмотрите, пожалуйста, второй блок от 13 ноги? Он и вернёт. Это блоки "Запись по условию". Читайте названия.
Сори, не обновил проект, сделал один блок с указанием бибки, главный, одноразовый. Больше в нём ничего нет.
А чем Вам мешает несколько объявлений библиотеки? Жмёт код?
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
rw6cm
Полковник
Сообщения: 2132
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 278
Имя: Владимир

Быстрые входы и выходы

#6

Сообщение rw6cm » 13.03.2018{, 16:40}

seri0shka писал(а):
13.03.2018{, 15:50}
Кстати, кто подскажет, ка сделать, чтоб при добавлении нескольких блоков, в каждом из которых декларируется библиотека, в скетче она появлялась только один раз?
а зачем в каждом блоке декларировать библиотеку? создаете блок, с уставкой только для одного раза.
в него ложите все, что должно быть общее для всех (библиотеки, функции, константы итд), а в другой блок индивидуальный код.
Win10-64, FLProg (portable)

Labu559
Лейтенант
Сообщения: 359
Зарегистрирован: 25.01.2018{, 22:23}
Репутация: 92
Откуда: Bukovyna
Имя: Василий

Быстрые входы и выходы

#7

Сообщение Labu559 » 15.03.2018{, 00:07}

seri0shka писал(а):
13.03.2018{, 15:50}
Кстати, кто подскажет, ка сделать, чтоб при добавлении нескольких блоков, в каждом из которых декларируется библиотека
Повторное декларирование библиотеки (если она правильно сделана см.ниже) никоим образом не увеличивает размер скомпилированного бинарника, как и комментарии, что имеет значение в отличии от размера скетча.
В частности в указанной библиотеке производится проверка и...
#ifndef CyberLib_H // если библиотека CyberLib_H не подключена
#define CyberLib_H // тогда подключаем CyberLib_H
Т.о. эти директивы исключают повторное подключение библиотеки и необходимо обращать внимание на их наличие в заголовочном файле xxx*.h.

krom23
Лейтенант
Сообщения: 436
Зарегистрирован: 06.09.2015{, 15:18}
Репутация: 12
Откуда: Калуга
Имя: Андрей

Быстрые входы и выходы

#8

Сообщение krom23 » 19.06.2018{, 21:39}

Sancho, а пример не выложите, а-то хоть и установил библиотеку всё ошибки при компиляции выдаёт.

Спасибо за пример.
Последний раз редактировалось krom23 23.06.2018{, 23:30}, всего редактировалось 1 раз.

Аватара пользователя
benic
Сержант
Сообщения: 175
Зарегистрирован: 07.01.2018{, 13:47}
Репутация: 4

Быстрые входы и выходы

#9

Сообщение benic » 23.06.2018{, 13:04}

вот без библиотек, как проверить на скорость ?
ЗЫ:править приходится pin13mask pin12mask
Вложения
1.flp
(77.71 КБ) 141 скачивание

Аватара пользователя
Sancho
Полковник
Сообщения: 3990
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Быстрые входы и выходы

#10

Сообщение Sancho » 23.06.2018{, 13:47}

benic писал(а):
23.06.2018{, 13:04}
как проверить на скорость ?
Выставляешь пин в 1, потом в 0, меряешь время осциллографом.
Но зачем изобретать велосипед, если библиотека делает тоже самое? И уже всё упаковано в одну строку с названием библиотеки.

Отправлено спустя 26 минут 48 секунд:
benic, Наверно ты сам не пробовал - галку надо ставить в блоке - "использовать один раз" иначе дефайны/byte править приходится в коде.
Код меньше библиотечного по весу, не говоря о стандартных read и write , но не по объёму/количеству строк.
Не могу вкурить - как и где библиотека добавляет байты....??? User я, одним словом .

Отправлено спустя 7 минут :
Скорости такие же, как и в моих потугах: генератор в виде вход на выход с инверсией(out=!in) 454 864 Гц.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
benic
Сержант
Сообщения: 175
Зарегистрирован: 07.01.2018{, 13:47}
Репутация: 4

Быстрые входы и выходы

#11

Сообщение benic » 23.06.2018{, 15:07}

http://codius.ru/articles/Тюнинг_Arduin ... боту_платы
вот это имел в виду, еще не вкурил как прикрутить

Аватара пользователя
Sancho
Полковник
Сообщения: 3990
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Быстрые входы и выходы

#12

Сообщение Sancho » 23.06.2018{, 16:30}

benic писал(а):
23.06.2018{, 15:07}
еще не вкурил как прикрутить
Что именно?
На следующей неделе попробую библиотеку обрезать до минимума, убрав инверсию и ещё, чего найду, сравню.

Отправлено спустя 1 минуту 17 секунд:
Попробовал почистить биб-ку - сбросила веса, стало как у benic.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
benic
Сержант
Сообщения: 175
Зарегистрирован: 07.01.2018{, 13:47}
Репутация: 4

Быстрые входы и выходы

#13

Сообщение benic » 23.06.2018{, 17:40}

Блок смастерить на все порта, да и скорость померить. Пару дней назад нарыл.

Аватара пользователя
Sancho
Полковник
Сообщения: 3990
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Быстрые входы и выходы

#14

Сообщение Sancho » 23.06.2018{, 18:52}

benic писал(а):
23.06.2018{, 17:40}
Блок смастерить на все порта
Пробовал, получилось, но отказался от этой затеи.
Причина - непонятно, какой вход/выход перед тобой на схеме, "константа", т.е.номер пина, не прописывается в строке "Лэйбла (отображается на схеме)" в виде изменяемого текста. Посему оставил большое количество элементов в папках входов/выходов. Думаю, тоже в это упретесь...
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
belyx
Сержант
Сообщения: 237
Зарегистрирован: 24.07.2016{, 20:38}
Репутация: 20
Откуда: Витебск Беларусь

Быстрые входы и выходы

#15

Сообщение belyx » 04.07.2018{, 11:44}

а как будет выглядеть быстрый цифровой вход из аналогового входа?

Аватара пользователя
Sancho
Полковник
Сообщения: 3990
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Быстрые входы и выходы

#16

Сообщение Sancho » 04.07.2018{, 15:56}

belyx писал(а):
04.07.2018{, 11:44}
а как будет выглядеть быстрый цифровой вход из аналогового входа?
D14 - D19
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
belyx
Сержант
Сообщения: 237
Зарегистрирован: 24.07.2016{, 20:38}
Репутация: 20
Откуда: Витебск Беларусь

Быстрые входы и выходы

#17

Сообщение belyx » 04.07.2018{, 16:42}

Sancho писал(а):
04.07.2018{, 15:56}
D14 - D19
я так понял -это для UNO
для MEGA- будет D54-D69 (вместо A0-A15) правильно?

Аватара пользователя
Sancho
Полковник
Сообщения: 3990
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Быстрые входы и выходы

#18

Сообщение Sancho » 04.07.2018{, 17:07}

belyx писал(а):
04.07.2018{, 16:42}
для MEGA- будет D54-D69 (вместо A0-A15) правильно?
Нет, для Меги в библиотеке прописаны лишь D2-D13, D22-D53. Увы...
Если есть возможность использования - придётся дописывать в библиотеке, не вникал в Мегу.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
belyx
Сержант
Сообщения: 237
Зарегистрирован: 24.07.2016{, 20:38}
Репутация: 20
Откуда: Витебск Беларусь

Быстрые входы и выходы

#19

Сообщение belyx » 04.07.2018{, 18:02}

какой облом!дейсвительно только до 53
с 54 по 69 не прописаны,а они есть!
СпойлерПоказать
atmega2560.png
Отправлено спустя 31 минуту 43 секунды:
Sancho,я не спец, а достаточно ли (меня интересуют INPUT) дописать в CyberLib.h
в части *INPUT PINS* к этому:
#define D52_In DDRB &=B11111101 // PB 1 SPI_SCK
#define D53_In DDRB &=B11111110 // PB 0 SPI_SS
это
#define D54_In DDRF &=B11111110 // PF 0 D54
#define D55_In DDRF &=B11111101 // PF 1 D55
и т.д. до D69
или ещё надо писать и в файл keywords.txt по аналогии что там написано.
или не стоит в это лезть?

Аватара пользователя
Sancho
Полковник
Сообщения: 3990
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Быстрые входы и выходы

#20

Сообщение Sancho » 04.07.2018{, 19:26}

belyx писал(а):
04.07.2018{, 18:33}
какой облом!дейсвительно только до 53
с 54 по 69 не прописаны,а они есть!

или не стоит в это лезть?
При необходимости стоит, вооружившись даташитом и здравой логикой.
Но.
Дописать на "канал" строки в
для режима вход
*INPUT PINS*
*READ Status Pins*
*Status High Pins* для подтяжки к +
для выход
*Output Pins*
*Status High Pins*
*Status Low Pins*
С учётом имени регистра, в котором они расположены.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Ответить

Вернуться в «Триггеры, таймеры, счетчики, детекторы сигнала»