mirror of
https://github.com/AlexGyver/GyverCore.git
synced 2025-04-20 19:47:44 +03:00
upd
This commit is contained in:
parent
b5f976ef5e
commit
4062b0b144
@ -81,7 +81,7 @@ void pinMode(uint8_t pin, uint8_t mode) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void digitalWrite(uint8_t pin, uint8_t x) {
|
void digitalWrite(uint8_t pin, uint8_t x) {
|
||||||
/*uint8_t oldSREG = SREG; // запомнинаем были ли включены прерывания
|
uint8_t oldSREG = SREG; // запомнинаем были ли включены прерывания
|
||||||
cli();//выключаем прерывания
|
cli();//выключаем прерывания
|
||||||
switch (pin) { // откл pwm
|
switch (pin) { // откл pwm
|
||||||
case 3: // 2B
|
case 3: // 2B
|
||||||
@ -106,36 +106,37 @@ void digitalWrite(uint8_t pin, uint8_t x) {
|
|||||||
if (pin < 8) bitWrite(PORTD, pin, x);
|
if (pin < 8) bitWrite(PORTD, pin, x);
|
||||||
else if (pin < 14) bitWrite(PORTB, (pin - 8), x);
|
else if (pin < 14) bitWrite(PORTB, (pin - 8), x);
|
||||||
else if (pin < 20) bitWrite(PORTC, (pin - 14), x);
|
else if (pin < 20) bitWrite(PORTC, (pin - 14), x);
|
||||||
SREG = oldSREG; // если прерывания не были включены - не включаем и наоборот*/
|
SREG = oldSREG; // если прерывания не были включены - не включаем и наоборот
|
||||||
|
|
||||||
uint8_t *outputReg = getOutputRegister(pin);
|
/*uint8_t *outputReg = getOutputRegister(pin);
|
||||||
uint8_t mask = getBitMask(pin);
|
uint8_t mask = getBitMask(pin);
|
||||||
if (x) *outputReg |= mask;
|
if (x) *outputReg |= mask;
|
||||||
else *outputReg &= ~ mask;
|
else *outputReg &= ~ mask;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
void digitalToggle(uint8_t pin){
|
void digitalToggle(uint8_t pin){
|
||||||
/*uint8_t oldSREG = SREG; // запомнинаем были ли включены прерывания
|
uint8_t oldSREG = SREG; // запомнинаем были ли включены прерывания
|
||||||
cli();//выключаем прерывания
|
cli();//выключаем прерывания
|
||||||
if (pin < 8) bitToggle(PORTD, pin);
|
if (pin < 8) bitToggle(PORTD, pin);
|
||||||
else if (pin < 14) bitToggle(PORTB, pin - 8);
|
else if (pin < 14) bitToggle(PORTB, pin - 8);
|
||||||
else if (pin < 20) bitToggle(PORTC, pin - 14);
|
else if (pin < 20) bitToggle(PORTC, pin - 14);
|
||||||
|
|
||||||
SREG = oldSREG; // если прерывания не были включены - не включаем и наоборот*/
|
SREG = oldSREG; // если прерывания не были включены - не включаем и наоборот
|
||||||
|
|
||||||
uint8_t *outputReg = getOutputRegister(pin);
|
/*uint8_t *outputReg = getOutputRegister(pin);
|
||||||
uint8_t mask = getBitMask(pin);
|
uint8_t mask = getBitMask(pin);
|
||||||
*outputReg ^= mask;
|
*outputReg ^= mask;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
bool digitalRead (uint8_t pin) {
|
bool digitalRead (uint8_t pin) {
|
||||||
/*if (pin < 8) return bitRead(PIND, pin);
|
if (pin < 8) return bitRead(PIND, pin);
|
||||||
else if (pin < 14) return bitRead(PINB, pin - 8);
|
else if (pin < 14) return bitRead(PINB, pin - 8);
|
||||||
else if (pin < 20) return bitRead(PINC, pin - 14); */
|
else if (pin < 20) return bitRead(PINC, pin - 14);
|
||||||
|
|
||||||
uint8_t *inputReg = getInputRegister(pin);
|
/*uint8_t *inputReg = getInputRegister(pin);
|
||||||
uint8_t mask = getBitMask(pin);
|
uint8_t mask = getBitMask(pin);
|
||||||
return (*inputReg & mask);
|
//return ((*inputReg & mask) ? true : false);
|
||||||
|
return bool(*inputReg & mask);*/
|
||||||
}
|
}
|
||||||
|
|
||||||
// ================ ANALOG ================
|
// ================ ANALOG ================
|
||||||
|
20
README.md
20
README.md
@ -1,7 +1,7 @@
|
|||||||

|

|
||||||
# GyverCore for ATmega328
|
# GyverCore for ATmega328
|
||||||
[**▶SWITCH TO ENGLISH◀**](https://github.com/AlexGyver/GyverCore/blob/master/README_eng.md)
|
[**▶SWITCH TO ENGLISH◀**](https://github.com/AlexGyver/GyverCore/blob/master/README_eng.md)
|
||||||
**Версия 1.10.0 от 22.10.2019**
|
**Версия 1.10.1 от 25.10.2019**
|
||||||
Быстрое и лёгкое ядро для Arduino IDE с расширенной конфигурацией.
|
Быстрое и лёгкое ядро для Arduino IDE с расширенной конфигурацией.
|
||||||
Основано на оригинальном ядре Arduino версии 1.8.9, большинство функций заменены на более быстрые и лёгкие аналоги, убрано всё лишнее и не относящееся к микроконтроллеру ATmega328p, убран почти весь Wiring-мусор, код упрощён и причёсан. Добавлено несколько функций и интересных вариантов компиляции.
|
Основано на оригинальном ядре Arduino версии 1.8.9, большинство функций заменены на более быстрые и лёгкие аналоги, убрано всё лишнее и не относящееся к микроконтроллеру ATmega328p, убран почти весь Wiring-мусор, код упрощён и причёсан. Добавлено несколько функций и интересных вариантов компиляции.
|
||||||
Разработано by Александр **AlexGyver** и Egor 'Nich1con' Zaharov
|
Разработано by Александр **AlexGyver** и Egor 'Nich1con' Zaharov
|
||||||
@ -22,10 +22,10 @@
|
|||||||
- Выбери плату в **Инструменты > Плата > GyverCore > ATmega328 based**
|
- Выбери плату в **Инструменты > Плата > GyverCore > ATmega328 based**
|
||||||
- Готово!
|
- Готово!
|
||||||
- *Примечание*: новая версия компилятора по умолчанию идёт для Windows 64, если нужно для win32 или Linux - нужно установить вручную.
|
- *Примечание*: новая версия компилятора по умолчанию идёт для Windows 64, если нужно для win32 или Linux - нужно установить вручную.
|
||||||
Идём в C:\Users\Username\AppData\Local\Arduino15\packages\GyverCore\hardware\avr\1.10.0\tools\avr-gcc\, удаляем оттуда всё и кладём туда файлы из архива нужной версии (папка avr-gcc в корне данного репозитория)
|
Идём в C:\Users\Username\AppData\Local\Arduino15\packages\GyverCore\hardware\avr\1.10.1\tools\avr-gcc\, удаляем оттуда всё и кладём туда файлы из архива нужной версии (папка avr-gcc в корне данного репозитория)
|
||||||
|
|
||||||
### Ручная
|
### Ручная
|
||||||
- Файлы из папки GyverCore в этом репозитории положить по пути C:\Users\Username\AppData\Local\Arduino15\packages\GyverCore\hardware\avr\1.10.0\
|
- Файлы из папки GyverCore в этом репозитории положить по пути C:\Users\Username\AppData\Local\Arduino15\packages\GyverCore\hardware\avr\1.10.1\
|
||||||
- Версия компилятора по умолчанию для Windows 64, если нужна другая - читай выше как установить
|
- Версия компилятора по умолчанию для Windows 64, если нужна другая - читай выше как установить
|
||||||
|
|
||||||
## Изменения
|
## Изменения
|
||||||
@ -36,9 +36,9 @@
|
|||||||
----------------|-----------|-----------|----------
|
----------------|-----------|-----------|----------
|
||||||
millis | 1.06 us | 1.00 us | -
|
millis | 1.06 us | 1.00 us | -
|
||||||
micros | 1.19 us | 1.13 us | -
|
micros | 1.19 us | 1.13 us | -
|
||||||
pinMode | 2.90 us | 0.50 us | 5.09
|
pinMode | 2.90 us | 0.57 us | 5.09
|
||||||
digitalWrite | 2.90 us | 0.50 us | 5.09
|
digitalWrite | 2.90 us | 0.57 us | 5.09
|
||||||
digitalRead | 2.45 us | 0.00 us | ?
|
digitalRead | 2.45 us | 0.50 us | ?
|
||||||
analogWrite | 4.15 us | 1.13 us | 3.67
|
analogWrite | 4.15 us | 1.13 us | 3.67
|
||||||
analogRead | 112.01 us | 5.41 us | 20.70
|
analogRead | 112.01 us | 5.41 us | 20.70
|
||||||
analogReference | 0.00 us | 0.00 us | -
|
analogReference | 0.00 us | 0.00 us | -
|
||||||
@ -52,9 +52,9 @@ tone | 5.63 us | 2.40 us | 2.3
|
|||||||
----------------|---------|-----------|---------------
|
----------------|---------|-----------|---------------
|
||||||
millis | 26 | 24 | 2
|
millis | 26 | 24 | 2
|
||||||
micros | 24 | 20 | 4
|
micros | 24 | 20 | 4
|
||||||
pinMode | 114 | 2 | 112
|
pinMode | 114 | 24 | 90
|
||||||
digitalWrite | 200 | 2 | 198
|
digitalWrite | 200 | 24 | 176
|
||||||
digitalRead | 190 | 0 | 190
|
digitalRead | 190 | 24 | 166
|
||||||
analogWrite | 406 | 48 | 358
|
analogWrite | 406 | 48 | 358
|
||||||
analogRead | 32 | 72 | -40
|
analogRead | 32 | 72 | -40
|
||||||
analogReference | 0 | 22 | -22
|
analogReference | 0 | 22 | -22
|
||||||
@ -267,3 +267,5 @@ parseFloat | 1070 | 246 | 824
|
|||||||
- Пофикшен pulseIn (но выдаёт разрешение 4 мкс)
|
- Пофикшен pulseIn (но выдаёт разрешение 4 мкс)
|
||||||
- Добавлен avr-gcc v8 под Win32 и Linux
|
- Добавлен avr-gcc v8 под Win32 и Linux
|
||||||
- Ускорен IO
|
- Ускорен IO
|
||||||
|
- 1.10.1
|
||||||
|
- IO откатили назад из за непонятных багов
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -274,6 +274,20 @@
|
|||||||
{"name": "ATmega328 based boards"}
|
{"name": "ATmega328 based boards"}
|
||||||
],
|
],
|
||||||
"toolsDependencies": []
|
"toolsDependencies": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "GyverCore",
|
||||||
|
"architecture": "avr",
|
||||||
|
"version": "1.10.1",
|
||||||
|
"category": "Contributed",
|
||||||
|
"url": "https://github.com/AlexGyver/GyverCore/releases/download/GyverCore-1.10.0/GyverCore.zip",
|
||||||
|
"archiveFileName": "GyverCore.zip",
|
||||||
|
"checksum": "MD5:d0823fa8eb77fe108eb13eee079b5f9d",
|
||||||
|
"size": "59020499",
|
||||||
|
"boards": [
|
||||||
|
{"name": "ATmega328 based boards"}
|
||||||
|
],
|
||||||
|
"toolsDependencies": []
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"tools": []
|
"tools": []
|
||||||
|
Loading…
x
Reference in New Issue
Block a user