AlexGyver / GyverCore

Быстрое ядро для Arduino IDE
https://alexgyver.ru/gyvercore/
GNU Lesser General Public License v3.0
127 stars 13 forks source link

CORE_PHOTO

GyverCore for ATmega328

▶SWITCH TO ENGLISH◀
Версия 2.0.3 от 27.09.2020
Быстрое и лёгкое ядро для Arduino IDE с расширенной конфигурацией.
Основано на оригинальном ядре Arduino версии 1.8.9, большинство функций заменены на более быстрые и лёгкие аналоги, убрано всё лишнее и не относящееся к микроконтроллеру ATmega328p, убран почти весь Wiring-мусор, код упрощён и причёсан. Добавлено несколько функций и интересных вариантов компиляции.
Разработано by Александр AlexGyver и Egor 'Nich1con' Zaharov

Известные баги

Установка

Автоматическая

Ручная

Изменения

Облегчено и ускорено

Время выполнения функций, мкс (при 16 МГц кварце)

Функция Arduino GyverCore Быстрее в, раз
millis 0.69 us 0.69 us -
micros 0.81 us 0.81 us -
pinMode 2.56 us 0.25 us 10.25
digitalWrite 2.40 us 0.125 us 19
digitalWrite PWM 3.25 us 0.30 us 7.4
digitalRead 2.80 us 0.063 us 46
analogWrite 3.8 us 0.33 us 8.4
analogRead 111.2 us 5.63 us 20
analogReference 0.19 us 0.19 us -
attachInterrupt 1.06 us 0.8 us -
detachInterrupt 0.5 us 0.25 us 2
tone 9.0 us 2.25 us 4
shiftIn 111 us 8 us 13
shiftOut 117 us 24 us 4.5

Занимаемое место, Flash, байт

Функция Arduino GyverCore Разница, Flash
millis 26 24 2
micros 24 20 4
pinMode 114 24 90
digitalWrite 200 24 176
digitalRead 190 24 166
analogWrite 406 48 358
analogRead 32 72 -40
analogReference 0 22 -22
attachInterrupt 212 180 32
detachInterrupt 198 150 48
tone 1410 740 670
Serial begin 1028 166 862
print long 1094 326 768
print string 2100 1484 616
print float 2021 446 1575
parseInt 1030 214 816
readString 2334 1594 740
parseFloat 1070 246 824

Примечание: analogRead и analogReference имеют расширенную функциональность и весят чуть больше
Скетч, состоящий из однократного вызова перечисленных выше функций, занимает

Пустой скетч:

Все библиотеки, работа которых зависит от стандартных функций (время, I/O), работают быстрее:

uart является практически полным аналогом Serial, но весит в разы меньше и работает быстрее. Список функций смотри ниже в Добавлено.

Добавлено

Убрано

Настройки платы

Bootloader - выбор загрузчика (требует перезаписи загрузчика):

Больше контроля!

Для большего контроля за периферией микроконтроллера рекомендую попробовать следующие наши библиотеки:

Скачать все библиотеки можно из репозитория

Версии