Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вс окт 06, 2024 21:16

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 62 ]  На страницу Пред.  1, 2, 3, 4, 5
Автор Сообщение
 Заголовок сообщения: Re: Forth over Arduino
СообщениеДобавлено: Пн дек 25, 2023 00:54 
Не в сети

Зарегистрирован: Пн янв 28, 2019 03:10
Сообщения: 174
Благодарил (а): 20 раз.
Поблагодарили: 13 раз.
Возможно, кому-нибудь будет полезно:

Обнаружил, что на ESP8266 ардуиновская digitalWrite перед собственно установкой уровня пина ещё отключает на нём ШИМ и генерацию импульсов (которые могли быть запущены функциями analogWrite и tone соответственно). При большом числе вызовов эти вспомогательные действия могут занимать заметное время.

Cоорудил макросы, которые просто устанавливают указанный уровень на пине и работают значительно быстрее:
Код:
#define pinHigh(pin)  (*portOutputRegister(digitalPinToPort(pin)) |= digitalPinToBitMask(pin))
#define pinLow(pin)   (*portOutputRegister(digitalPinToPort(pin)) &= ~digitalPinToBitMask(pin))


Скорее всего, будет работать и под ESP32, но пока не проверял.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth over Arduino
СообщениеДобавлено: Пн дек 25, 2023 03:31 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7968
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Ну, в принципе, включение вывода как GPIO и должно отключать режимы специального назначения. Со скоростью еще определенный резерв в том, что вычисление digitalPinToPort(pin) каждый раз при выводе - это вынужденная дань подходу Arduino как таковому. Просто чтобы "вывод в pin 13" всегда был зажиганием светодиода. Соответственно, для разработчиков это определенная головная боль, чтобы по аргументу 13 понять, где на их плате соответствующий регистр IO в МК.

Я сейчас жду еще одну интересную платформу на ESP32: M5Stack Core2 ESP32 IoT Памяти тут побольше, поэтому и разместить всякого тоже можно. Кроме того, чем больше памяти задействовано, тем дольше грузится прошивка, что опять-таки происходит при каждой перекомпиляции исходных текстов, и избавиться от части этого можно как раз с интерпретатором, работающим внутри Arduino.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 62 ]  На страницу Пред.  1, 2, 3, 4, 5

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB