From b2d09d9c642b35de697a772f5f52ca96fa5a51a2 Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 17 Jul 2021 23:11:22 +0300 Subject: [PATCH] v1.2 --- README.md | 2 ++ library.properties | 2 +- src/{FastIO.h => FastIO_v2.cpp} | 28 ++++++---------------------- src/FastIO_v2.h | 13 +++++++++++++ src/GyverOLED.h | 21 +++++++++++---------- 5 files changed, 33 insertions(+), 33 deletions(-) rename src/{FastIO.h => FastIO_v2.cpp} (76%) create mode 100644 src/FastIO_v2.h diff --git a/README.md b/README.md index b796e58..e3cd1da 100644 --- a/README.md +++ b/README.md @@ -282,6 +282,8 @@ void loop() { - v0.5 (09.05.2021) - добавлена поддержка SPI и SSH1106 (только буфер)! gnd-vcc-sck-data-rst-dc-cs - v1.0 - релиз +- v1.1 - улучшен перенос строк (не убирает первый символ просто так) +- v1.2 - переделан FastIO ## Баги и обратная связь diff --git a/library.properties b/library.properties index 0d5b2de..8b538d2 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=GyverOLED -version=1.0.1 +version=1.2 author=AlexGyver maintainer=AlexGyver sentence=Fast and light library for SSD1306/SSH1106 OLED display diff --git a/src/FastIO.h b/src/FastIO_v2.cpp similarity index 76% rename from src/FastIO.h rename to src/FastIO_v2.cpp index 7bba4a5..2e1ecdf 100644 --- a/src/FastIO.h +++ b/src/FastIO_v2.cpp @@ -1,17 +1,6 @@ -// Быстрый IO для AVR (для остальных будет digitalxxxxx) -// v1.0 +#include "FastIO_v2.h" -#ifndef FastIO_h -#define FastIO_h -#include - -bool fastRead(const uint8_t pin); // быстрое чтение пина -void fastWrite(const uint8_t pin, bool val); // быстрая запись -uint8_t fastShiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder); // быстрый shiftIn -void fastShiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t data); // быстрый shiftOut - -// ================================================================ -bool fastRead(const uint8_t pin) { +bool F_fastRead(const uint8_t pin) { #if defined(__AVR_ATmega328P__) || defined(__AVR_ATmega168__) if (pin < 8) return bitRead(PIND, pin); else if (pin < 14) return bitRead(PINB, pin - 8); @@ -32,8 +21,7 @@ bool fastRead(const uint8_t pin) { return 0; } - -void fastWrite(const uint8_t pin, bool val) { +void F_fastWrite(const uint8_t pin, bool val) { #if defined(__AVR_ATmega328P__) || defined(__AVR_ATmega168__) if (pin < 8) bitWrite(PORTD, pin, val); else if (pin < 14) bitWrite(PORTB, (pin - 8), val); @@ -56,8 +44,7 @@ void fastWrite(const uint8_t pin, bool val) { #endif } - -uint8_t fastShiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder) { +uint8_t F_fastShiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder) { #if defined(AVR) volatile uint8_t *_clk_port = portOutputRegister(digitalPinToPort(clockPin)); volatile uint8_t *_dat_port = portInputRegister(digitalPinToPort(dataPin)); @@ -81,8 +68,7 @@ uint8_t fastShiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder) { #endif } - -void fastShiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t data) { +void F_fastShiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t data) { #if defined(AVR) volatile uint8_t *_clk_port = portOutputRegister(digitalPinToPort(clockPin)); volatile uint8_t *_dat_port = portOutputRegister(digitalPinToPort(dataPin)); @@ -104,6 +90,4 @@ void fastShiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t d #else shiftOut(dataPin, clockPin, bitOrder, data); #endif -} - -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/src/FastIO_v2.h b/src/FastIO_v2.h new file mode 100644 index 0000000..e83265c --- /dev/null +++ b/src/FastIO_v2.h @@ -0,0 +1,13 @@ +// Быстрый IO для AVR (для остальных будет digitalxxxxx) +// v1.0 + +#ifndef _FastIO_v2_h +#define _FastIO_v2_h +#include + +bool F_fastRead(const uint8_t pin); // быстрое чтение пина +void F_fastWrite(const uint8_t pin, bool val); // быстрая запись +uint8_t F_fastShiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder); // быстрый shiftIn +void F_fastShiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t data); // быстрый shiftOut + +#endif \ No newline at end of file diff --git a/src/GyverOLED.h b/src/GyverOLED.h index 5597fc0..1d9f17e 100644 --- a/src/GyverOLED.h +++ b/src/GyverOLED.h @@ -50,6 +50,7 @@ v1.0 - релиз v1.1 - улучшен перенос строк (не убирает первый символ просто так) + v1.2 - переделан FastIO */ #ifndef GyverOLED_h @@ -89,7 +90,7 @@ #include #include #include "charMap.h" -#include "FastIO.h" +#include "FastIO_v2.h" // ============================ БЭКЭНД КОНСТАНТЫ ============================== @@ -175,15 +176,15 @@ class GyverOLED : public Print { if (_CONN) { SPI.begin(); pinMode(_CS, OUTPUT); - fastWrite(_CS, 1); + F_fastWrite(_CS, 1); pinMode(_DC, OUTPUT); if (_RST > 0) { pinMode(_RST, OUTPUT); - fastWrite(_RST, 1); + F_fastWrite(_RST, 1); delay(1); - fastWrite(_RST, 0); + F_fastWrite(_RST, 0); delay(10); - fastWrite(_RST, 1); + F_fastWrite(_RST, 1); } } else { Wire.begin(); @@ -894,25 +895,25 @@ class GyverOLED : public Print { void beginData() { startTransm(); - if (_CONN) fastWrite(_DC, 1); + if (_CONN) F_fastWrite(_DC, 1); else sendByteRaw(OLED_DATA_MODE); } void beginCommand() { startTransm(); - if (_CONN) fastWrite(_DC, 0); + if (_CONN) F_fastWrite(_DC, 0); else sendByteRaw(OLED_COMMAND_MODE); } void beginOneCommand() { startTransm(); - if (_CONN) fastWrite(_DC, 0); + if (_CONN) F_fastWrite(_DC, 0); else sendByteRaw(OLED_ONE_COMMAND_MODE); } void endTransm() { if (_CONN) { - fastWrite(_CS, 1); + F_fastWrite(_CS, 1); SPI.endTransaction(); } else { Wire.endTransmission(); @@ -923,7 +924,7 @@ class GyverOLED : public Print { void startTransm() { if (_CONN) { SPI.beginTransaction(OLED_SPI_SETT); - fastWrite(_CS, 0); + F_fastWrite(_CS, 0); } else Wire.beginTransmission(_address); }