mirror of
https://github.com/AlexGyver/GyverCore.git
synced 2025-12-08 10:02:10 +03:00
add
This commit is contained in:
58
README.md
58
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** для личного пользования)
|
||||
@@ -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"}
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user