From 06998b8f7f7d80668428b888e29707041c21e124 Mon Sep 17 00:00:00 2001 From: Alex Date: Fri, 2 Aug 2019 16:22:08 +0300 Subject: [PATCH] add --- README.md | 58 ++++++++++++++++++++++++++++++++++-- package_GyverCore_index.json | 6 ++-- 2 files changed, 59 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index cd8d137..e88a215 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,25 @@ # GyverCore for ATmega328p/168p Быстрое ядро для Arduino IDE. **В разработке** Основано на оригинальном ядре Arduino версии 1.8.9, большинство функций заменены на более быстрые и лёгкие аналоги, убрано всё лишнее и не относящееся к микроконтроллеру ATmega328p, убран почти весь Wiring-мусор, код упрощён и причёсан. + +## Установка +* Открой the Arduino IDE +* Зайди в **Файл > Настройки** +* Вставь этот адрес в **Дополнительные ссылки для менеджера плат**: + + ``` + https://alexgyver.github.io/package_GyverCore_index.json + ``` + +* Открой **Инструменты > Плата > Менеджер плат...** +* Подожди загрузку списка +* Листай в самый низ, пока не увидишь **GyverCore** +* Жми **Установка** +* Закрой окно +* Выбери плату в **Инструменты > Плата > GyverCore > ATmega328p based** +* Выбери в **CPU & BOOT** нужный вариант загрузчика +* Готово + # Изменения ## Облегчено и ускорено Время выполнения функций, мкс @@ -16,7 +35,7 @@ analogReference | 0.00 us | 0.69 us | 0.00 attachInterrupt | 1.20 us | 1.18 us | 1.02 detachInterrupt | 0.82 us | 0.57 us | 1.44 -Занимаемое место, Flash +Занимаемое место, Flash, байт Функция | Arduino | GyverCore | Разница, Flash ----------------|---------|-----------|--------------- @@ -34,6 +53,41 @@ print string | 2100 | 1484 | 616 print float | 2021 | 446 | 1575 parseInt | 1030 | 214 | 816 readString | 2334 | 1594 | 740 -parseFloat | 1070 | 246 | 824 +parseFloat | 1070 | 246 | 824 + +Примечание: analogRead и analogReference имеют расширенную функциональность и весят чуть больше ## Добавлено +- Подсветка в коде **A0**, **A1**.. **A7** +- Макрос **bitToggle**(value, bit), инвертирует состояние бита bit в байте value +- Функция **digitalToggle**(pin), инвертирует состояние пина +- Расширенная генерация ШИМ: + - **setPWM_20kHz**(byte pin) - установить частоту ШИМ 20 кГц (8 бит) **на пинах 3, 5, 9, 10** + - **setPWM_9_10_resolution**(boolean resolution) - разрешение ШИМ **на пинах 9 и 10** (для режима 20 кГц): **PWM_8BIT** / **PWM_10BIT** + - **setPwmFreqnuency**(pin, freq) - установить частоту ШИМ (8 бит) **на пинах 3, 5, 6, 9, 10, 11**: **PWM_DEFAULT** / **PWM_8KHZ** / **PWM_31KHZ** + - **setPWM_default**(byte pin) - настроить ШИМ по умолчанию +- Расширенная работа с АЦП + - **analogStartConvert**(byte pin) - начать преобразование с выбранного пина + - **analogGet()** - получить преобразованное значение (между analogStartConvert и analogGet можно выполнять действия, в отличие от ожидания в analogRead()) + - **analogPrescaler**(uint8_t prescl) - установить предделитель для АЦП (2, 4, 8, 16, 32, 64, 128) + - В функции **analogRead(pin)** вместо пина можно указать **INTERNAL** (получить значение внутреннего опорного напряжения) или **THERMOMETR** (получить приблизительную температуру МК). *Примечание: нужно установить предделитель 128* +- Добавлен быстрый и лёгкий UART (аналог классу Serial) + - **uartBegin()** - запустить соединение по последовательному порту со скоростью 9600 + - **uartBegin(baudrate)** - запустить соединение по последовательному порту со скоростью baudrate + - **uartEnd()** - выключить сериал + - **uartPeek()** - вернуть крайний байт из буфера, не убирая его оттуда + - **uartClear()** - очистить буфер + - **uartRead()** - вернуть крайний байт из буфера, убрав его оттуда + - **uartWrite()** - запись в порт + - **uartPrint()** - печать в порт (числа, строки, char array) + - **uartPrintln()** - печать в порт с переводом строки + - **uartAvailable()** - возвразает true, если в буфере что-то есть + - **uartSetTimeout()** - установить таймаут для функций парсинга (по умолчанию 100 мс) + - **uartParseInt()** - принять целочисленное число + - **uartReadString()** - принять строку + - **uartParseFloat()** - принять число float + - **uartParsePacket(dataArray)** - принять пакет вида **$50 60 70;** в массив dataArray (смотри пример) + +## Дополнительно +- Добавлен вариант прошивки без загрузчика (во всю доступную Flash память) для прошивки через ISP +- Добавлен вариант прошивки с отключенными функциями времени (освобождает вектор **TIMER0_OVF_vect** для личного пользования) \ No newline at end of file diff --git a/package_GyverCore_index.json b/package_GyverCore_index.json index a85165d..1dd6cad 100644 --- a/package_GyverCore_index.json +++ b/package_GyverCore_index.json @@ -6,7 +6,7 @@ "websiteURL": "https://alexgyver.ru", "email": "", "help": { - "online": "https://alexgyver.ru" + "online": "https://github.com/AlexGyver/GyverCore" }, "platforms": [ { @@ -16,8 +16,8 @@ "category": "Contributed", "url": "https://github.com/AlexGyver/GyverCore/releases/download/GyverCore/GyverCore.zip", "archiveFileName": "GyverCore.zip", - "checksum": "MD5:0148a8cb4e0c8e33f1f55de69b561609", - "size": "178391", + "checksum": "MD5:758f491c55f177cca874f20eaf1d6e63", + "size": "139848", "boards": [ {"name": "ATmega328 boards"} ],