Fast Pins - (быстрые пины). -- Оптимизация работы входов/выходов -- digitalRead, digitalWrite, analogRead, analogWrite

Быстрые пины быстрый digitalRead digitalWrite analogRead analogWrife ускоритель пинов входы выходы

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

Fast Pins - (быстрые пины). -- Оптимизация работы входов/выходов -- digitalRead, digitalWrite, analogRead, analogWrite

#1

Сообщение Dryundel » 16.07.2022{, 20:35}

Fast Pins
Блок актуален для AVR ATmega168 / 328 и ATtiny85 / 13 (UNO, NANO, MINI, PROMINI)
.
4.jpg
4.jpg (1.65 КБ) 894 просмотра
.
Новый блок поменял название т.к. и функционал расширился.
Возможности:
- Оптимизация Цифровых входов (digitalRead)
- Оптимизация Цифровых выходов (digitalWrite)
- Оптимизация Аналоговых входов (analogRead)
- Оптимизация Аналоговых(ШИМ) выходов (analogWrite)
- Выбор оптимизируемых позиций
Краткое описание блокаПоказать
Блок Fast Pins ускоряет работу входов / выходов в стандартно созданном
проекте в десятки раз. Он заменяет все digitalRead, digitalWrite, analogRead, analogWrite
на быстрые аналоги. Эти команды создаются не только штатными блоками вход / выход,
но и многими другими блоками работающими в пинами. К примеру при работе штатного
блока "Матричная клавиатура" 4х4 - 24 таких команд в каждом цикле.

Блок Fast Pins почти не требует настроек. Его надо разместить
в любом месте проекта. Всю работу он сделает автоматически.
Достаточно только выбрать цели оптимизации

Блок актуален только для AVR ATmega168 / 328 и ATtiny85 / 13

Если в проекте использован другой коньроллер замена проигнорируется.
В этом случае блок мешать не будет, но и помогать тоже.
Тестирование в #23 посте
.
История версий
.
fastDigital Read / Write
1.jpg
1.jpg (4.33 КБ) 1487 просмотров
fastDigitalRead__Write_(Code_-_Professional).ubi
(156.35 КБ) 33 скачивания
.
Этот блок ускоряет работу чтения и записи портов в стандартно созданном
проекте в десятки раз. Он заменяет все digitalRead и digitalWrite на быстрые
аналоги. Эти команды создаются не толко блоками вход / выход, но и многими
другими блоками работающими с пинами. К примеру при работе только одного штатного
блока "Матричная клавиатура" 4х4 - выполняется 24 таких команды в каждом цикле программы.

Блок fastDigitalRead / Write не требует настроек. Его надо разместить
в любом месте проекта. Всю работу он сделает автоматически.


Блок актуален только для AVR ATmega168 / 328 и ATtiny85 / 13 (UNO, NANO, MINI, MINIPRO)

Если в проекте использован другой контроллер замена проигнорируется.
В этом случае блок мешать не будет, но и помогать тоже.
.
Альтернативные блоки от aidar_i
Работа с портами ввода и вывода Ардуино через регистры.
.
Пропускаем несколько постов с личным мнением некоторых, сильно продвинутых, товарищей и сразу переходим к посту #12 , посту #19 и посту#20 с тестами!
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

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

fastDigital Read / Write - Ускоритель работы портов (быстрые пины)

#2

Сообщение Sancho » 16.07.2022{, 21:42}

Блоки от Айдара работают быстрее.
Вся эта скорость эфимерная.
для поиграться.
практически любой пб положит всю скорость работы пина по сравнению со скоростью цикла в несоизмеримое число крат.
скорость работы пина важна при прерываниях, любых.
иначе - просто понты. отыграть несколько мкс на цикле в пару сотен мкс - для этого буду использовать прямую работу с регистрами, код от айдара. чтобы по макс.
сугубо моё мнение. основанное на реалиях.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

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

fastDigital Read / Write - Ускоритель работы портов (быстрые пины)

#3

Сообщение ecoins » 16.07.2022{, 21:47}

Sancho писал(а):
16.07.2022{, 21:42}
иначе - просто понты. отыграть несколько мкс на цикле в пару сотен мкс - для этого буду использовать прямую работу с регистрами, код от айдара. чтобы по макс.
сугубо моё мнение. основанное на реалиях.
Ну не совсем так, на контроллерах AVR очень быстро набегают задержки, когда несколько блоков вывода.
----
Блоки ecoins изначально работают на прямую с регистрами и на всех поддерживаемых архитектурах (AVR,ESP,STM,Raspberry Pi Pico, Seeeduino, SAMD21).
И соотвественно почти не "тормозят".

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

fastDigital Read / Write - Ускоритель работы портов (быстрые пины)

#4

Сообщение Dryundel » 16.07.2022{, 21:52}

Sancho писал(а):
16.07.2022{, 21:42}
Блоки от Айдара работают быстрее.
Вся эта скорость эфимерная.
для поиграться.
Это откуда такие заявления? Может для начала потестировать тот и другой вариант, после чего писать такие заявления ?
Sancho писал(а):
16.07.2022{, 21:42}
практически любой пб положит всю скорость работы пина по сравнению со скоростью цикла в несоизмеримое число крат.
скорость работы пина важна при прерываниях
И чем же здесь помогут блоки от Айдара? Что за голословные заявления?
Sancho писал(а):
16.07.2022{, 21:42}
иначе - просто понты. отыграть несколько мкс на цикле в пару сотен мкс - для этого буду использовать прямую работу с регистрами, код от айдара. чтобы по макс.
Есть штатный блок "Матричная клавиатура", там в каждом цикле куча обращений к портам. Для AVR-ки это уже серьезно. И как в этом случае помогут блоки от Айдара?
Sancho, нафига мозг то людям парить?
Возьми, попробуй, сравни, предложи альтернативу. Или извинись.
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

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

fastDigital Read / Write - Ускоритель работы портов (быстрые пины)

#5

Сообщение Sancho » 16.07.2022{, 21:53}

Dryundel писал(а):
16.07.2022{, 21:52}
Это откуда такие заявления? Может для начала потестировать тот и другой вариант, после чего писать такие заявления ?
Я посмотрел код.

Отправлено спустя 41 секунду:
Dryundel писал(а):
16.07.2022{, 21:52}
Или извинись.
не буду. я знаю.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

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

fastDigital Read / Write - Ускоритель работы портов (быстрые пины)

#6

Сообщение Dryundel » 16.07.2022{, 21:55}

ecoins писал(а):
16.07.2022{, 21:47}
Блоки ecoins изначально работают на прямую с регистрами и на всех поддерживаемых архитектурах (AVR,ESP,STM,Raspberry Pi Pico, Seeeduino, SAMD21).
И соотвественно почти не "тормозят".
ecoins, выложите пожалуйста ссылку на вашу альтернативную версию работы с портами. Я размещу ее в первом посте, так же как и ссылку на блоки от Айдара. У пользователей должен быть выбор.
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

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

fastDigital Read / Write - Ускоритель работы портов (быстрые пины)

#7

Сообщение Sancho » 16.07.2022{, 21:56}

Dryundel писал(а):
16.07.2022{, 21:52}
Есть штатный блок "Матричная клавиатура", там в каждом цикле куча обращений к портам. Для AVR-ки это уже серьезно. И как в этом случае помогут блоки от Айдара?
есть пб. это случай один на тысячу. который Вам навеял Анатолий.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

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

fastDigital Read / Write - Ускоритель работы портов (быстрые пины)

#8

Сообщение Dryundel » 16.07.2022{, 21:57}

Sancho писал(а):
16.07.2022{, 21:54}
не буду. я знаю.
Ну знай. И ни в коем случае не рассказывай об этом другим. :D :D :D
Поражает меня ваша упертость, сэээр.
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

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

fastDigital Read / Write - Ускоритель работы портов (быстрые пины)

#9

Сообщение Sancho » 16.07.2022{, 22:00}

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

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

fastDigital Read / Write - Ускоритель работы портов (быстрые пины)

#10

Сообщение Dryundel » 16.07.2022{, 22:12}

Sancho писал(а):
16.07.2022{, 22:00}
Извинений не будет. Однозначно.
Ладно, так прощаю. :D Только не уходи.
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

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

fastDigital Read / Write - Ускоритель работы портов (быстрые пины)

#11

Сообщение ecoins » 16.07.2022{, 23:45}

Dryundel писал(а):
16.07.2022{, 21:55}
ecoins, выложите пожалуйста ссылку на вашу альтернативную версию работы с портами. Я размещу ее в первом посте, так же как и ссылку на блоки от Айдара. У пользователей должен быть выбор.
Выбор есть и он простой - пользоваться блоками ecoins. Они во многом и получились компактными и быстрыми, потому, что интегрированы в единую ЭкоСистему, которая в том числе и адаптирует функции к разным архитектурам контроллеров.

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

fastDigital Read / Write - Ускоритель работы портов (быстрые пины)

#12

Сообщение Dryundel » 16.07.2022{, 23:48}

ИТАК ТЕСТ
.
Два проекта.

1. Генератор максимальной частоты на цифровом выходе с блоком от aidar_i.
1.jpg
1.jpg (5.53 КБ) 784 просмотра
Быстрые пины Айдар.flp
(1.8 МБ) 14 скачиваний
.
2. Генератор максимальной частоты на штатном цифровом выходе с блоком fastDigital Read / Write
2.jpg
2.jpg (6.86 КБ) 784 просмотра
TestfastDigitalReadWrite.flp
(218.26 КБ) 13 скачиваний
Заключения

Размер проекта
1. 1,8 MB
2. 218 kB

Размер скетча
1. 472 байт
2. 584 байт

Скорость (генерируемая частота) Самое главное!
1. 548385 Гц
2. 548385 Гц
Абсолютный паритет.

Без изменений, штатный блок выхода, генерирует 101943 Гц
И как бы то ни было странно размер скетча в данном случае оказался самым большим 746 байт (Удивило)
Видимо компилятор оптимизировал код при прямом обращении к портам.
3.jpg
3.jpg (4.74 КБ) 784 просмотра
Штатный блок выхода.flp
(51.22 КБ) 8 скачиваний
.
Sancho, но ты все равно можешь не извиняться. :D
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

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

fastDigital Read / Write - Ускоритель работы портов (быстрые пины)

#13

Сообщение Dryundel » 16.07.2022{, 23:51}

ecoins писал(а):
16.07.2022{, 23:45}
Выбор есть и он простой - пользоваться блоками ecoins. Они во многом и получились компактными и быстрыми, потому, что интегрированы в единую ЭкоСистему, которая в том числе и адаптирует функции к разным архитектурам контроллеров.
А вот это уже неприкрытая, голословная реклама. И можно сказать хамство в данной теме.
Я попросил ссылку на альтернативное предложение, а не бла-бла-бла.

Отправлено спустя 2 минуты 30 секунд:
ecoins, , забацайте ка тестик. Может сможете удивить своей ЭкоСистемой. :D
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

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

fastDigital Read / Write - Ускоритель работы портов (быстрые пины)

#14

Сообщение Sancho » 17.07.2022{, 05:41}

Dryundel писал(а):
16.07.2022{, 23:48}
Генератор максимальной частоты на цифровом выходе
Для такого проекта я поставлю 531ла3.
Если не сложно, добавь в проект чтение двух аналоговых входов, датчика с real выходом, пид регулятор и любой из входов или выходов, пб или встроенные, - сравни время цикла.
Когда осознаёшь, приходит понимание - быстрые вещи нужны в прерываниях, иначе уже согласен на просто функционирование программы.

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

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

fastDigital Read / Write - Ускоритель работы портов (быстрые пины)

#15

Сообщение Dryundel » 17.07.2022{, 07:42}

Sancho писал(а):
17.07.2022{, 05:44}
Если не сложно, добавь в проект...
Не надо выкручиваться.
Sancho писал(а):
17.07.2022{, 05:44}
Блоки от Айдара работают быстрее.
За это ответь. :D
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

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

fastDigital Read / Write - Ускоритель работы портов (быстрые пины)

#16

Сообщение ecoins » 17.07.2022{, 07:58}

Dryundel писал(а):
16.07.2022{, 23:53}
А вот это уже неприкрытая, голословная реклама. И можно сказать хамство в данной теме.
Я попросил ссылку на альтернативное предложение, а не бла-бла-бла.
Если Вы не желаете избегать моего общения в Ваших темах, прошу уклоняться от подобных не лицеприятных формулировок.
Тем более, что они не соответствуют фактическим обстоятельствам.
Dryundel писал(а):
16.07.2022{, 23:53}
Отправлено спустя 2 минуты 30 секунд:
ecoins, , забацайте ка тестик. Может сможете удивить своей ЭкоСистемой.
Тесты я не бацаю, а делаю - обычно это сам по себе не простой труд.
Тесты в большом количестве размещены в ветках с блоками ecoins.
Sancho писал(а):
17.07.2022{, 05:44}
Если не сложно, добавь в проект чтение двух аналоговых входов, датчика с real выходом, пид регулятор и любой из входов или выходов, пб или встроенные, - сравни время цикла.
Когда осознаёшь, приходит понимание - быстрые вещи нужны в прерываниях, иначе уже согласен на просто функционирование программы.
Все так.
analogRead() в AVR занимает время >130мкс, digitalWrite() >4 мкс.
Много времени занимает обмен по шине i2c.
Рассматривать быстродействие отдельных блоков с отрывом от реальных, даже простых проектов, не имеет практического смысла.
Проблемы быстродействия работы с пинами проявляются в функциях с прерываниями и в библиотеках для работы с шиной 1-Wire.
Обычно это касается двух функций - дискретное чтение и дискретная запись.

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

fastDigital Read / Write - Ускоритель работы портов (быстрые пины)

#17

Сообщение Dryundel » 17.07.2022{, 08:33}

Sancho, ecoins, вы что, решили вдвоём задавить конкретно меня интеллектом?
Разошлись тут о бесполезности того, что я делаю.
А где вы б... были когда Айдар вот эту тему поднимал? viewtopic.php?f=112&t=7641
Что вы там писали? Напомнить?
Sancho писал(а):
21.10.2021{, 09:18}
Отлично!
Ждём выходы.
ecoins писал(а):
20.10.2021{, 19:46}
Проблема ускорения работы с портами актуальна.
А между тем, блоки Айдара работают только с вновь созданными входами выходами и никак не влияют на уже имеющиеся digitalRead / digitalWrite в других блоках. Кроме того, данный алгоритм заменит все digitalRead / digitalWrite в функциях, в том числе и по прерыванию, если таковые имеются в других пользовательских блоках, используемых в проекте.
Ну а Вы можете и дальше трепать языком....
.
Чо за фигня то? Я вам что, на больную мозоль наступил? Что вы Айдара то не гнобили, в таком случае? Или там все по феншую?
Спелись тут, умники...
ОфтопПоказать
Нет не нашла коса на камень,
Она попала в борозду.
Хотите что б я спорим с вами?
А не пошли бы вы в ....
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

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

fastDigital Read / Write - Ускоритель работы портов (быстрые пины)

#18

Сообщение Dryundel » 17.07.2022{, 11:38}

ПРОДОЛЖАЕМ ТЕСТИРОВАТЬ

Соединяем пины 9 и 10.
Берем сигнал с Pin 9, инвертируем и отправляем на Pin 10 и так в каждом цикле.
Замеряем частоту на этой спайке.

Результат.

1. Просто штатные блоки цифровых входа и выхода.
4.jpg
4.jpg (5.69 КБ) 650 просмотров
Штатные блоки вход_выхода.flp
(42.37 КБ) 5 скачиваний
.
Генерируемая частота - 53727 Гц



2. Штатные блоки цифровых входа и выхода + fastDigital Read / Write.
5.jpg
5.jpg (8.23 КБ) 650 просмотров
TestfastDigitalReadWrite-2.flp
(209.7 КБ) 5 скачиваний
.
Генерируемая частота - 837010 Гц

Разница более чем в 15 раз !
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

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

fastDigital Read / Write - Ускоритель работы портов (быстрые пины)

#19

Сообщение Dryundel » 18.07.2022{, 11:39}

ПЕРЕХОДИМ К ПРАКТИЧЕСКИМ ИСПЫТАНИЯМ

Берем штатный блок "Матричная клавиатура" (4х4) и с помощью дешифратора отправляем в UART номер нажатой кнопки.
Измеряем усредненное количество циклов программы с помощью блока из комплекта "ОТЛАДКА" и тоже отправляем в UART.
1. Штатный блок "Матричная клавиатура"Показать
6.jpg
6.jpg (36.53 КБ) 550 просмотров
.
Результат - 7260 циклов в секунду.
.
Теперь просто кидаем в проект блок fastDigitalReadWrite и повторяем измерение.
Штатный блок Матричная клавиатура + fastDigitalReadWriteПоказать
7.jpg
7.jpg (34.84 КБ) 550 просмотров
.
Результат - 43900 циклов в секунду.
.
Вывод: В конкретном случае блок "Матричная клавиатура" тормозил программу более чем на 36600 циклов в секунду, а блок fastDigitalReadWrite исправил эту ситуацию. При этом не внес никаких изменений в алгоритм проекта.
.
Для тех кто пропустил, рекомендую тему - ВРЕМЯ ЦИКЛА или что убивает ваш проект.
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

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

fastDigital Read / Write - Ускоритель работы портов (быстрые пины)

#20

Сообщение Sancho » 18.07.2022{, 13:42}

СпойлерПоказать
Dryundel писал(а):
16.07.2022{, 21:52}
Sancho писал(а):
16.07.2022{, 21:42}
Блоки от Айдара работают быстрее.
Вся эта скорость эфимерная.
для поиграться.
Это откуда такие заявления? Может для начала потестировать тот и другой вариант, после чего писать такие заявления ?
Sancho писал(а):
16.07.2022{, 21:42}
практически любой пб положит всю скорость работы пина по сравнению со скоростью цикла в несоизмеримое число крат.
скорость работы пина важна при прерываниях
И чем же здесь помогут блоки от Айдара? Что за голословные заявления?
Sancho писал(а):
16.07.2022{, 21:42}
иначе - просто понты. отыграть несколько мкс на цикле в пару сотен мкс - для этого буду использовать прямую работу с регистрами, код от айдара. чтобы по макс.
Есть штатный блок "Матричная клавиатура", там в каждом цикле куча обращений к портам. Для AVR-ки это уже серьезно. И как в этом случае помогут блоки от Айдара?
Sancho, нафига мозг то людям парить?
Возьми, попробуй, сравни, предложи альтернативу. Или извинись.
Dryundel писал(а):
16.07.2022{, 22:12}
Sancho писал(а):
16.07.2022{, 22:00}
Извинений не будет. Однозначно.
Ладно, так прощаю. :D Только не уходи.
Всё таки Извиняюсь.
Компилятор преобразует функции на этапе сборки в прямую работу с регистрами. Скорость одинакова.
Правда, как он это делает я не могу предположить, т.к.
Dryundel писал(а):
16.07.2022{, 23:48}
Размер проекта
1. 1,8 MB
2. 218 kB

Размер скетча
1. 472 байт
2. 584 байт
не даёт прояснений.
Извиняюсь ещё раз. Был не прав.
Применений, остаюсь при своём, реально не много - выбор пина при использовании прерываний(типа фазорез), клавиатура и ещё несколько.
СпойлерПоказать
Sancho писал(а):
16.07.2022{, 21:42}
Вся эта скорость эфимерная.
для поиграться.
практически любой пб положит всю скорость работы пина по сравнению со скоростью цикла в несоизмеримое число крат.
скорость работы пина важна при прерываниях, любых.
иначе - просто понты. отыграть несколько мкс на цикле в пару сотен мкс - для этого буду использовать прямую работу с регистрами, код от айдара. чтобы по макс.
сугубо моё мнение. основанное на реалиях.
Sancho писал(а):
17.07.2022{, 05:44}
Для такого проекта я поставлю 531ла3.
Если не сложно, добавь в проект чтение двух аналоговых входов, датчика с real выходом, пид регулятор и любой из входов или выходов, пб или встроенные, - сравни время цикла.
Когда осознаёшь, приходит понимание - быстрые вещи нужны в прерываниях, иначе уже согласен на просто функционирование программы.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Ответить

Вернуться в «Другое»