![]() |
![]() |
#101 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 800 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Собрал в кучу оригинал и для 32u4 и 2560. ДЛя последних двух все так же работает только управление пинами и оба delay. Хочу извиниться за поспешность выводов что с Duo все просто и так же - архитектура совершенно другая и управлять пинами нужно по другому -потихоньку разбираюсь
ЗЫ. Ну и блинк как к всякой приличной библиотеке ![]() Последний раз редактировалось Bulatovor; 14.06.2014 в 18:41. |
![]() |
![]() |
![]() |
#102 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Для Atmega328 либа взята из шапки?
|
![]() |
![]() |
![]() |
#103 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 800 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
да, сегодня скачанная
Вот вопрос. почему при компилировании для 328 размер скетча Blink 598 байт, для 2560 - 628, а для Leonardo сразу 4,2к, я так понимаю из-за плохих библиотек к леонарду в самой среде arduino -у меня версия 1.0.5 r2 Последний раз редактировалось Bulatovor; 14.06.2014 в 21:25. |
![]() |
![]() |
![]() |
#104 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Леонардо компилирует код вместе с загрузчиком, поддержка USB неявно подключается к каждому компилируемому под Leonardo скетчу, для поддержания возможности программного сброса через USB.
|
![]() |
![]() |
![]() |
#105 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 800 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Понятно, т.е. если с местом начнутся проблемы, путем небольших махинаций сию поддержку можно отключить. Из прочитанного приятно то, что у людей обычный блинк занимает за 5к, а с библиотекой CyberLib - уже почти на 800 байт меньше
![]() |
![]() |
![]() |
![]() |
#106 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Спасибо за проделанную работу!!!
Залил библиотеку в шапку темы |
![]() |
![]() |
![]() |
#107 | |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 800 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Пожалуйста. Но два спасибо в шапке темы уже пожалуй излишне - все равно основная причина -это собственная нужда.
Так вот едем дальше - столкнулся с такой проблемой, что одна уникальная и нужная мне библиотека использует другую библиотеку быстрого управления пинами digitalWriteFast.h/ Однако последняя поддерживает только 328 и 2560 процессоры - Леонардо не поддерживает. Я быстренько допилил её под Леонардо - поюзал и потерял ![]() PHP код:
Тест проведенный на следующем скетче разочаровал PHP код:
Вот это для меня пока сложновато - надо конкретненее пример куда впихать Цитата:
Последний раз редактировалось Bulatovor; 15.06.2014 в 00:12. |
|
![]() |
![]() |
![]() |
#108 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Если использовать например D_High(2); то будет быстрее, а D_High(19); будет самым медленно выполняемым, так как в цикле он последний
Можно попробовать замутить решение на ассемблере Производить переходы по номеру пина умноженному на смещение плюс базовый адрес |
![]() |
![]() |
![]() |
#109 | |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 800 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
PHP код:
PHP код:
PHP код:
|
|
![]() |
![]() |
![]() |
#110 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 800 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Итак, что у нас получилось:
digitalIOPerformance при явном указании пина работает точно с такой же скоростью как CyberLib, а при указании пина переменной падает до скорости Ардуины, т.е. меняем шило на мыло, а нужного результата не добились. почему в CiberLib Inv работает чуть-чуть, но медленнее High и Low интересно, но особенно не важно. Из мною написанного самый лучший вариант это первый -написанный вчера -обозначенный как вариант два, да на первых 3 пинах он чуть чуть проигрывает варианту 1, но он стабилен- на всех портах одинаковая скорость, а у варианта 1 растет и в конце концов становиться медленнее родной ардуино. Так что вот так. На данном этапе получили скорость почти в два раза выше чем arduino, до новых чужих ![]() |
![]() |
![]() |
![]() |
Здесь присутствуют: 3 (пользователей: 0 , гостей: 3) | |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|