Working Menu, additions to be made

Dependencies:   mbed

Revision:
0:d4d7e882c87d
Child:
1:a87075699085
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Dec 07 03:04:35 2021 +0000
@@ -0,0 +1,93 @@
+#include "mbed.h"
+#include "N5110.h"
+#include "Joystick.h"
+
+AnalogIn pot(PTB2);
+
+
+//      rows,cols
+int sprite[8][5] =   {
+    { 0,0,1,0,0 },
+    { 0,1,1,1,0 },
+    { 0,0,1,0,0 },
+    { 0,1,1,1,0 },
+    { 1,1,1,1,1 },
+    { 1,1,1,1,1 },
+    { 1,1,0,1,1 },
+    { 1,1,0,1,1 },
+};
+
+//Objects
+Ticker bl_ticker;
+
+// flag - must be volatile as changes within ISR
+// g_ prefix makes it easier to distinguish it as global
+volatile int g_bl_timer_flag;
+
+// function prototypes
+void bl_timer_isr();
+
+//data
+float bright;
+
+//Pinouts
+//    VCC,SCE,RST,D/C,MOSI,SCLK,LED
+N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);  // K64F - pwr from 3V3
+//                  y     x     button
+Joystick joystick(PTB10,PTB11,PTC16);
+
+
+int main() {
+    
+    lcd.init();
+    lcd.setContrast(0.4);
+    
+    //Set up ticker (time in seconds)
+    bl_ticker.attach(&bl_timer_isr,0.01);
+    
+    while (1){
+        //lcd.setBrightness(pot > 0.2f) ? 0.2 : 0;
+        //lcd.setBrightness(pot > 0.4f) ? 0.4 : 0.21;
+       // lcd.setBrightness(pot > 0.6f) ? 0.6 : 0.41;
+        //lcd.setBrightness(pot > 0.8f) ? 0.8 : 0.61;
+        
+        
+        if(pot > 0.1f) {
+            bright = 0.1;
+        } if(pot > 0.2f) {
+            bright = 0.2;
+        } if (pot > 0.3f) {
+            bright = 0.3;
+        } if (pot > 0.4f) {
+            bright = 0.4;
+        } if (pot > 0.5f) {
+            bright = 0.5;
+        } if(pot > 0.6f) {
+            bright = 0.6;
+        } if(pot > 0.7f) {
+            bright = 0.7;
+        } if (pot > 0.8f) {
+            bright = 0.8;
+        } if (pot > 0.9f) {
+            bright = 0.9;
+        } if (pot > 1.0f) {
+            bright = 1.0;
+        }  
+       
+        // check if flag is set i.e. interrupt has occured:
+        //For bl check timer
+        if (g_bl_timer_flag) {
+           g_bl_timer_flag = 0;   //if it has, clear the flag
+
+           lcd.setBrightness(bright);
+        }
+                         
+    }
+}
+
+// time-triggered interrupt for red
+void bl_timer_isr()
+{
+    g_bl_timer_flag = 1;   // set flag in ISR
+}
+