aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorBen V. Brown <[email protected]>2017-08-13 12:48:16 +1000
committerBen V. Brown <[email protected]>2017-08-13 12:48:16 +1000
commit1d602bd9a191c5e85cd08142792ffb5fc06b527a (patch)
tree82d94164fc7a62fb2ed94b71a7cb59bacbde8b7d
parenta9da6d511b3998f1280961250f8de58de82deaf4 (diff)
downloadIronOS-1d602bd9a191c5e85cd08142792ffb5fc06b527a.tar.gz
IronOS-1d602bd9a191c5e85cd08142792ffb5fc06b527a.zip
Add display inversion for cooling
-rw-r--r--workspace/ts100/inc/Oled.h1
-rw-r--r--workspace/ts100/src/Modes.c20
-rw-r--r--workspace/ts100/src/Oled.c5
3 files changed, 16 insertions, 10 deletions
diff --git a/workspace/ts100/inc/Oled.h b/workspace/ts100/inc/Oled.h
index fd57f13b..62888581 100644
--- a/workspace/ts100/inc/Oled.h
+++ b/workspace/ts100/inc/Oled.h
@@ -17,6 +17,7 @@ void OLED_Sync();
void Oled_DrawArea(u8 x0, u8 y0, u8 wide, u8 height, const u8* ptr);
void Set_ShowPos(u8 x, u8 y);
void Oled_DisplayFlip();
+void OLED_InvertBuffer();
void GPIO_Init_OLED(void);
void Init_Oled(uint8_t leftHanded);
const u8* Data_Command(u8 len, const u8* ptr);
diff --git a/workspace/ts100/src/Modes.c b/workspace/ts100/src/Modes.c
index fae4bb82..9c87ed87 100644
--- a/workspace/ts100/src/Modes.c
+++ b/workspace/ts100/src/Modes.c
@@ -269,14 +269,14 @@ void ProcessUI() {
operatingMode = SOLDERING;
Oled_DisplayOn();
return;
- } else if (systemSettings.sensitivity&& !InterruptMask) {
+ } else if (systemSettings.sensitivity && !InterruptMask) {
if (millis() - getLastMovement() < 1000) {//moved in the last second
operatingMode = SOLDERING; //Goto active mode again
Oled_DisplayOn();
return;
}
}
- if (systemSettings.sensitivity ) {
+ if (systemSettings.sensitivity) {
//Check if we should shutdown
if ((millis() - getLastMovement()
> (systemSettings.ShutdownTime * 60000))
@@ -459,7 +459,7 @@ void DrawUI() {
//Now draw symbols
if (StatusFlags == 8)
- OLED_DrawExtraFontChars(2,4);
+ OLED_DrawExtraFontChars(2, 4);
else {
OLED_DrawChar(' ', 4);
}
@@ -482,10 +482,10 @@ void DrawUI() {
if (systemSettings.displayTempInF) {
//OLED_DrawChar(SettingTempFChar, 3);
- OLED_DrawExtraFontChars(0,3);
+ OLED_DrawExtraFontChars(0, 3);
} else {
//OLED_DrawChar(SettingTempCChar, 3);
- OLED_DrawExtraFontChars(1,3);
+ OLED_DrawExtraFontChars(1, 3);
}
//Optionally draw the arrows, or draw the power instead
if (systemSettings.powerDisplay) {
@@ -731,11 +731,13 @@ void DrawUI() {
Clear_Screen();
OLED_DrawString(CoolingPromptString, 5);
temp = readIronTemp(0, 1, 0xFFFF); //force temp re-reading
- if (temp < 500 || ((millis() % 1000) > 500)
- || (!systemSettings.coolingTempBlink))
- drawTemp(temp, 5, systemSettings.temperatureRounding);
- if(temp>300)
+
+ drawTemp(temp, 5, systemSettings.temperatureRounding);
+ if (temp > 300)
Oled_DisplayOn();
+ if (temp > 500 && systemSettings.coolingTempBlink
+ && (millis() % 600) > 300)
+ OLED_InvertBuffer();
break;
case UVLOWARN:
OLED_DrawString(UVLOWarningString, 8);
diff --git a/workspace/ts100/src/Oled.c b/workspace/ts100/src/Oled.c
index 91ce97c2..4e3bf159 100644
--- a/workspace/ts100/src/Oled.c
+++ b/workspace/ts100/src/Oled.c
@@ -136,7 +136,10 @@ void Oled_DrawArea(u8 x, u8 y, u8 wide, u8 height, const u8* ptr) {
}
}
-
+void OLED_InvertBuffer() {
+ for (uint16_t i = 0; i < (2 * 96); i++)
+ displayBuffer[i] = ~displayBuffer[i];
+}
/*******************************************************************************
Function:GPIO_Init_OLED
Description:Init the outputs as needed for the OLED (in this case the RST line)