summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--glcddrivers/ili9341.c31
1 files changed, 30 insertions, 1 deletions
diff --git a/glcddrivers/ili9341.c b/glcddrivers/ili9341.c
index 2756538..54627d4 100644
--- a/glcddrivers/ili9341.c
+++ b/glcddrivers/ili9341.c
@@ -30,6 +30,7 @@ const int kLcdHeight = 240;
const int kSpiBus = 0;
+const int kGpioPwm = 13;
const int kGpioReset = 23;
const int kGpioDC = 24;
@@ -111,6 +112,9 @@ int cDriverILI9341::Init()
pinMode(kGpioReset, OUTPUT);
pinMode(kGpioDC, OUTPUT);
+ pinMode(kGpioPwm, PWM_OUTPUT);
+ SetBrightness(config->brightness);
+
digitalWrite(kGpioReset, HIGH);
digitalWrite(kGpioDC, LOW);
@@ -319,7 +323,32 @@ void cDriverILI9341::Refresh(bool refreshAll)
void cDriverILI9341::SetBrightness(unsigned int percent)
{
- //WriteCommand(kCmdSetContrast, percent * 255 / 100);
+ uint32_t value;
+
+ if (percent == 0)
+ value = 0;
+ else if (percent <= 10)
+ value = 4;
+ else if (percent <= 20)
+ value = 8;
+ else if (percent <= 30)
+ value = 16;
+ else if (percent <= 40)
+ value = 32;
+ else if (percent <= 50)
+ value = 64;
+ else if (percent <= 60)
+ value = 128;
+ else if (percent <= 70)
+ value = 192;
+ else if (percent <= 80)
+ value = 320;
+ else if (percent <= 90)
+ value = 512;
+ else
+ value = 1023;
+
+ pwmWrite(kGpioPwm, value);
}
void cDriverILI9341::Reset()