Homework

Dependencies:   SLCD mbed

Fork of blink_kl46z_button_LCD by Stanley Cohen

Revision:
4:90ea2e6fdad8
Parent:
3:fc189dd7ac64
--- a/main.cpp	Wed Aug 24 16:37:09 2016 +0000
+++ b/main.cpp	Mon Sep 12 05:28:43 2016 +0000
@@ -3,83 +3,85 @@
 
 #define LEDON false
 #define LEDOFF true
+#define BUTDOWN false
+#define BUTUP true
 #define NUMBUTS 2
 #define LBUT PTC12  // port addresses for buttons
 #define RBUT PTC3
-#define BLINKTIME 0.3 // in seconds
-#define BUTTONTIME 0.2
+#define BLINKTIME 0.05 // in seconds
+#define BUTTONTIME 0.02
 #define LCDCHARLEN 10
 #define NUMMESS 2
 #define LRED "RED"
-#define LGREEN "GREN"
+#define LGREEN "GREEN"
 #define PRED "RED\r\n"
 #define PGREEN "GREEN\r\n"
+#define REDMESS "RED LED is ON\r\n"
+#define GREENMESS "GREEN LED is ON\r\n"p
 #define PROGNAME "blink_kl46z_buttton LCD v2\r\n"
 
 // slightly more interesting blinky 140814 sc
-SLCD slcd; //define LCD display
+SLCD slcd; //define LCD display as a variaable
+
+
 
+int ledState = LEDON;
+int buttonStates[NUMBUTS] = {BUTDOWN, BUTUP};
+DigitalIn buttons[NUMBUTS] = {RBUT, LBUT};
+DigitalOut LEDs[NUMBUTS] = {LED_GREEN, LED_RED};
+
+//needed port
+Serial pc(USBTX, USBRX);
+
+//
 // Timer to elliminate wait() function
 Timer LEDTimer; // for blinking LEDs
 Timer ButtonTimer; // for reading button states
 
-bool ledState = LEDON;
-
-DigitalIn buttons[NUMBUTS] = {RBUT, LBUT};
-DigitalOut LEDs[NUMBUTS] = {LED_GREEN, LED_RED};
-Serial pc(USBTX, USBRX);// set up USB as communicationis to Host PC via USB connectons
-
+void LCDMess(char *lMess){
+        slcd.Home();
+        slcd.clear();
+        slcd.printf(lMess);
+}
 void allLEDsOff(){
     int i;
     for (i=0; i<NUMBUTS; i++){ 
         LEDs[i] = LEDOFF;    
     }
 }
- 
-void LCDMess(char *lMess){
-        slcd.Home();
-        slcd.clear();
-        slcd.printf(lMess);
-}
-
-void initialize_global_vars(){
-    pc.printf(PROGNAME);
-    // set up DAQ timers
-    ButtonTimer.start();
-    ButtonTimer.reset();
-    LEDTimer.start();
-    LEDTimer.reset();  
-    allLEDsOff();
-} 
-// --------------------------------
- int main() {
+int main(){
+    
     int i; 
     int currentLED = 0;
-    char rMess[NUMMESS][LCDCHARLEN]={LGREEN, LRED}; // for LCD
-    char pMess[NUMMESS][LCDCHARLEN]={PRED, PGREEN}; // for pc serial port
+    char rMess[NUMMESS][LCDCHARLEN]={LGREEN, LRED};
+    char pMess[NUMMESS][LCDCHARLEN]={PRED,PGREEN};
+
 
-    initialize_global_vars(); //keep things organized
-    LEDs[currentLED] = LEDON;
+     LEDs[currentLED] = LEDON;
     LCDMess(rMess[currentLED]);
-    pc.printf(pMess[currentLED]);
-// End of setup
+    
     while(true) {
         if (ButtonTimer > BUTTONTIME){
             for (i=0; i<NUMBUTS; i++){ // index will be 0 or 1 
                 if(!buttons[i]) { 
                     allLEDsOff();  
                     LCDMess(rMess[i]);
-                    pc.printf(pMess[i]); 
                     currentLED = i;
-                } // if ! buttons
-            }// for loop to look at buttons
-            ButtonTimer.reset();
+                }
+            }
         }
-        if(LEDTimer.read() > BLINKTIME){
-            LEDTimer.reset();               
-            ledState = !ledState; // Flip the general state
-            LEDs[currentLED] = ledState;
-        }
-    // Do other things here between times of reading and flashing
-    }
-}
\ No newline at end of file
+    while(true){
+        for (i=0; i<NUMBUTS; i++){
+            LEDs[i] = LEDOFF;
+            if(!buttons[i]) {
+                LCDMess(rMess[i]);
+                
+                currentLED = i;
+            }
+        }    
+        ledState = !ledState;
+        LEDs[currentLED] = ledState;
+        wait(BLINKTIME);
+    }   
+}
+}