mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-29 05:36:39 +00:00
Update libraries and fix SSD1306 power control
Update libraries and fix SSD1306 power control
This commit is contained in:
parent
42c8ac61e8
commit
5f6a87c7c0
0
lib/Adafruit_SH1106/Adafruit_SH1106.cpp → lib/Adafruit_SH1106-gemu-1.0/Adafruit_SH1106.cpp
Executable file → Normal file
0
lib/Adafruit_SH1106/Adafruit_SH1106.cpp → lib/Adafruit_SH1106-gemu-1.0/Adafruit_SH1106.cpp
Executable file → Normal file
0
lib/Adafruit_SH1106/Adafruit_SH1106.h → lib/Adafruit_SH1106-gemu-1.0/Adafruit_SH1106.h
Executable file → Normal file
0
lib/Adafruit_SH1106/Adafruit_SH1106.h → lib/Adafruit_SH1106-gemu-1.0/Adafruit_SH1106.h
Executable file → Normal file
0
lib/Adafruit_SH1106/LICENSE.txt → lib/Adafruit_SH1106-gemu-1.0/LICENSE.txt
Executable file → Normal file
0
lib/Adafruit_SH1106/LICENSE.txt → lib/Adafruit_SH1106-gemu-1.0/LICENSE.txt
Executable file → Normal file
0
lib/Adafruit_SH1106/README.md → lib/Adafruit_SH1106-gemu-1.0/README.md
Executable file → Normal file
0
lib/Adafruit_SH1106/README.md → lib/Adafruit_SH1106-gemu-1.0/README.md
Executable file → Normal file
@ -1108,6 +1108,16 @@ void Adafruit_SSD1306::dim(boolean dim) {
|
||||
TRANSACTION_END
|
||||
}
|
||||
|
||||
void Adafruit_SSD1306::DisplayOnff(int8_t on) {
|
||||
TRANSACTION_START
|
||||
if(on) {
|
||||
ssd1306_command1(SSD1306_DISPLAYON);
|
||||
} else {
|
||||
ssd1306_command1(SSD1306_DISPLAYOFF);
|
||||
}
|
||||
TRANSACTION_END
|
||||
}
|
||||
|
||||
void Adafruit_SSD1306::Updateframe(void) {
|
||||
display();
|
||||
}
|
@ -140,6 +140,7 @@ public:
|
||||
void display(void);
|
||||
void invertDisplay(boolean i);
|
||||
void dim(boolean dim);
|
||||
void DisplayOnff(int8_t on);
|
||||
|
||||
#if 0
|
||||
void clearDisplay(void);
|
@ -1,5 +1,7 @@
|
||||
/*********************************************************************************************\
|
||||
* 6.6.0.6 20190819
|
||||
* Add I2C display driver for SH1106 oled by Gerhard Mutz
|
||||
* Add SPI display drivers for epaper 4.2 inch, ILI9488 TFT, SSD1351 Color oled and RA8876 TFT by Gerhard Mutz
|
||||
*
|
||||
* 6.6.0.5 20190816
|
||||
* Add command WebSensor<sensor number> 0/1 to control display of sensor data in web GUI (#6085)
|
||||
|
@ -17,7 +17,6 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
|
||||
#if defined(USE_I2C) || defined(USE_SPI)
|
||||
#ifdef USE_DISPLAY
|
||||
|
||||
@ -45,7 +44,6 @@ uint16_t bg_color = 0;
|
||||
uint8_t color_type = COLOR_BW;
|
||||
uint8_t auto_draw=1;
|
||||
|
||||
|
||||
const uint8_t DISPLAY_MAX_DRIVERS = 16; // Max number of display drivers/models supported by xdsp_interface.ino
|
||||
const uint8_t DISPLAY_MAX_COLS = 44; // Max number of columns allowed with command DisplayCols
|
||||
const uint8_t DISPLAY_MAX_ROWS = 32; // Max number of lines allowed with command DisplayRows
|
||||
@ -87,7 +85,6 @@ void (* const DisplayCommand[])(void) PROGMEM = {
|
||||
&CmndDisplayDimmer, &CmndDisplayColumns, &CmndDisplayRows, &CmndDisplaySize, &CmndDisplayFont,
|
||||
&CmndDisplayRotate, &CmndDisplayText, &CmndDisplayAddress };
|
||||
|
||||
|
||||
char *dsp_str;
|
||||
|
||||
uint16_t dsp_x;
|
||||
@ -433,12 +430,18 @@ void DisplayText(void)
|
||||
DisplayInit(DISPLAY_INIT_FULL);
|
||||
break;
|
||||
case 'o':
|
||||
if (!renderer) DisplayOnOff(0);
|
||||
else renderer->DisplayOnff(0);
|
||||
if (!renderer) {
|
||||
DisplayOnOff(0);
|
||||
} else {
|
||||
renderer->DisplayOnff(0);
|
||||
}
|
||||
break;
|
||||
case 'O':
|
||||
if (!renderer) DisplayOnOff(1);
|
||||
else renderer->DisplayOnff(1);
|
||||
if (!renderer) {
|
||||
DisplayOnOff(1);
|
||||
} else {
|
||||
renderer->DisplayOnff(1);
|
||||
}
|
||||
break;
|
||||
case 'x':
|
||||
// set disp_xpos
|
||||
@ -1261,9 +1264,15 @@ void DisplayInitDriver(void)
|
||||
void DisplaySetPower(void)
|
||||
{
|
||||
disp_power = bitRead(XdrvMailbox.index, disp_device -1);
|
||||
|
||||
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("DSP: Power %d"), disp_power);
|
||||
|
||||
if (Settings.display_model) {
|
||||
if (!renderer) XdspCall(FUNC_DISPLAY_POWER);
|
||||
else renderer->DisplayOnff(disp_power);
|
||||
if (!renderer) {
|
||||
XdspCall(FUNC_DISPLAY_POWER);
|
||||
} else {
|
||||
renderer->DisplayOnff(disp_power);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1466,12 +1475,10 @@ void CmndDisplayRows(void)
|
||||
ResponseCmndNumber(Settings.display_rows);
|
||||
}
|
||||
|
||||
|
||||
/*********************************************************************************************\
|
||||
* optional drivers
|
||||
\*********************************************************************************************/
|
||||
|
||||
|
||||
#if defined(USE_SCRIPT_FATFS) && defined(USE_SCRIPT)
|
||||
void Draw_RGB_Bitmap(char *file,uint16_t xp, uint16_t yp) {
|
||||
if (!renderer) return;
|
||||
@ -1957,7 +1964,6 @@ bool Xdrv13(uint8_t function)
|
||||
case FUNC_SET_POWER:
|
||||
DisplaySetPower();
|
||||
break;
|
||||
|
||||
case FUNC_EVERY_SECOND:
|
||||
#ifdef USE_GRAPH
|
||||
DisplayCheckGraph();
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
xdsp_02_SSD1306.ino - Display Oled SSD1306 support for Sonoff-Tasmota
|
||||
xdsp_02_ssd1306.ino - Display Oled SSD1306 support for Sonoff-Tasmota
|
||||
|
||||
Copyright (C) 2019 Theo Arends and Adafruit
|
||||
|
||||
@ -21,14 +21,12 @@
|
||||
#ifdef USE_DISPLAY
|
||||
#ifdef USE_DISPLAY_SSD1306
|
||||
|
||||
#define XDSP_02 2
|
||||
|
||||
#define OLED_RESET 4
|
||||
|
||||
#define SPRINT(A) char str[32];sprintf(str,"val: %d ",A);Serial.println((char*)str);
|
||||
|
||||
extern uint8_t *buffer;
|
||||
|
||||
#define XDSP_02 2
|
||||
|
||||
#define OLED_ADDRESS1 0x3C // Oled 128x32 I2C address
|
||||
#define OLED_ADDRESS2 0x3D // Oled 128x64 I2C address
|
||||
|
||||
@ -44,8 +42,9 @@ extern uint8_t *buffer;
|
||||
|
||||
Adafruit_SSD1306 *oled1306;
|
||||
|
||||
/*********************************************************************************************/
|
||||
extern uint8_t *buffer;
|
||||
|
||||
/*********************************************************************************************/
|
||||
|
||||
void SSD1306InitDriver()
|
||||
{
|
||||
@ -75,9 +74,9 @@ void SSD1306InitDriver()
|
||||
}
|
||||
|
||||
// allocate screen buffer
|
||||
if (buffer) free(buffer);
|
||||
if (buffer) { free(buffer); }
|
||||
buffer = (unsigned char*)calloc((Settings.display_width * Settings.display_height) / 8,1);
|
||||
if (!buffer) return;
|
||||
if (!buffer) { return; }
|
||||
|
||||
// init renderer
|
||||
// oled1306 = new Adafruit_SSD1306(SSD1306_LCDWIDTH,SSD1306_LCDHEIGHT);
|
||||
@ -100,7 +99,6 @@ void SSD1306InitDriver()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*********************************************************************************************/
|
||||
#ifdef USE_DISPLAY_MODES1TO5
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user