mirror of
https://github.com/AlexGyver/GyverCore.git
synced 2025-04-19 08:42:16 +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) {
|
||||
/*uint8_t oldSREG = SREG; // запомнинаем были ли включены прерывания
|
||||
uint8_t oldSREG = SREG; // запомнинаем были ли включены прерывания
|
||||
cli();//выключаем прерывания
|
||||
switch (pin) { // откл pwm
|
||||
case 3: // 2B
|
||||
@ -106,36 +106,37 @@ void digitalWrite(uint8_t pin, uint8_t x) {
|
||||
if (pin < 8) bitWrite(PORTD, pin, x);
|
||||
else if (pin < 14) bitWrite(PORTB, (pin - 8), 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);
|
||||
if (x) *outputReg |= mask;
|
||||
else *outputReg &= ~ mask;
|
||||
else *outputReg &= ~ mask;*/
|
||||
}
|
||||
|
||||
void digitalToggle(uint8_t pin){
|
||||
/*uint8_t oldSREG = SREG; // запомнинаем были ли включены прерывания
|
||||
uint8_t oldSREG = SREG; // запомнинаем были ли включены прерывания
|
||||
cli();//выключаем прерывания
|
||||
if (pin < 8) bitToggle(PORTD, pin);
|
||||
else if (pin < 14) bitToggle(PORTB, pin - 8);
|
||||
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);
|
||||
*outputReg ^= mask;
|
||||
*outputReg ^= mask;*/
|
||||
}
|
||||
|
||||
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 < 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);
|
||||
return (*inputReg & mask);
|
||||
//return ((*inputReg & mask) ? true : false);
|
||||
return bool(*inputReg & mask);*/
|
||||
}
|
||||
|
||||
// ================ ANALOG ================
|
||||
|
22
README.md
22
README.md
@ -1,7 +1,7 @@
|
||||

|
||||
# GyverCore for ATmega328
|
||||
[**▶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 версии 1.8.9, большинство функций заменены на более быстрые и лёгкие аналоги, убрано всё лишнее и не относящееся к микроконтроллеру ATmega328p, убран почти весь Wiring-мусор, код упрощён и причёсан. Добавлено несколько функций и интересных вариантов компиляции.
|
||||
Разработано by Александр **AlexGyver** и Egor 'Nich1con' Zaharov
|
||||
@ -22,10 +22,10 @@
|
||||
- Выбери плату в **Инструменты > Плата > GyverCore > ATmega328 based**
|
||||
- Готово!
|
||||
- *Примечание*: новая версия компилятора по умолчанию идёт для 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, если нужна другая - читай выше как установить
|
||||
|
||||
## Изменения
|
||||
@ -36,9 +36,9 @@
|
||||
----------------|-----------|-----------|----------
|
||||
millis | 1.06 us | 1.00 us | -
|
||||
micros | 1.19 us | 1.13 us | -
|
||||
pinMode | 2.90 us | 0.50 us | 5.09
|
||||
digitalWrite | 2.90 us | 0.50 us | 5.09
|
||||
digitalRead | 2.45 us | 0.00 us | ?
|
||||
pinMode | 2.90 us | 0.57 us | 5.09
|
||||
digitalWrite | 2.90 us | 0.57 us | 5.09
|
||||
digitalRead | 2.45 us | 0.50 us | ?
|
||||
analogWrite | 4.15 us | 1.13 us | 3.67
|
||||
analogRead | 112.01 us | 5.41 us | 20.70
|
||||
analogReference | 0.00 us | 0.00 us | -
|
||||
@ -52,9 +52,9 @@ tone | 5.63 us | 2.40 us | 2.3
|
||||
----------------|---------|-----------|---------------
|
||||
millis | 26 | 24 | 2
|
||||
micros | 24 | 20 | 4
|
||||
pinMode | 114 | 2 | 112
|
||||
digitalWrite | 200 | 2 | 198
|
||||
digitalRead | 190 | 0 | 190
|
||||
pinMode | 114 | 24 | 90
|
||||
digitalWrite | 200 | 24 | 176
|
||||
digitalRead | 190 | 24 | 166
|
||||
analogWrite | 406 | 48 | 358
|
||||
analogRead | 32 | 72 | -40
|
||||
analogReference | 0 | 22 | -22
|
||||
@ -266,4 +266,6 @@ parseFloat | 1070 | 246 | 824
|
||||
- Пофикшен tone
|
||||
- Пофикшен pulseIn (но выдаёт разрешение 4 мкс)
|
||||
- Добавлен 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"}
|
||||
],
|
||||
"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": []
|
||||
|
Loading…
x
Reference in New Issue
Block a user