homework 7

Dependencies:   mbed-rtos mbed C12832_lcd LM75B

Revision:
102:5735d9cbad00
Parent:
101:33dc62b6b728
Child:
103:c5e24ac35a25
--- a/main.cpp	Thu Sep 12 20:50:22 2013 +0000
+++ b/main.cpp	Thu Sep 12 20:57:35 2013 +0000
@@ -135,6 +135,7 @@
     Timer        debounceTimer;                 // button debounce timer.
     Timer        beepTimer;                     // beep-duration timer.
     Timer        temperatureTimer;              // how often to raise temperature.
+    Timer        doneTimer;                     // how long in FSM done state.
 
     Ticker       tickerButtonStateManager;      // manage the button states.
     Ticker       tickerSlowClock;               // generate a ~1Hz clock.
@@ -194,6 +195,7 @@
       
       debounceTimer.start();                    // kick-off debounce timer.
       
+      
       gcInitializePipeline = 1;                 // tell pipeline to initialize.
       
       initialization();                         // initialize variables.
@@ -378,6 +380,7 @@
             
       osEvent   queueEvent;                     // from button state manager.
       beepTimer.start();                        // run the beep timer.
+      doneTimer.start();
 
       dBeepSeconds = BEEPTIME;
       
@@ -388,7 +391,7 @@
       
       while(1)                                  // thread loop.
       {
-      pc.printf("\n\r state: %d",dFSMstate);
+ //     pc.printf("\n\r state: %d",dFSMstate);
   
         switch (dFSMstate)                      // cook-mode state machine.
         {
@@ -498,7 +501,7 @@
               queueTemperatureControl.put((int *) TEMP_FREEZE,1);
               Thread thread_beep(&speakerThread,(void *) &dBeepSeconds);
               
-              
+              gcBeepEnable = 1;
               beepTimer.reset();                // clear the beep timer.
             }
            
@@ -512,7 +515,7 @@
             giRemainingTime.cControl = RT_CLEAR;
                                                 // determine next state.
             dFSMstateLast = dFSMstate;
-            if (beepTimer.read() >= BEEPTIME) dFSMstate = FSM_IDLE;
+            if (beepTimer.read() >= BEEPTIME) {dFSMstate = FSM_IDLE; gcBeepEnable = 0;}
             else dFSMstate = FSM_DONE; 
             
             led3 = 1;
@@ -869,6 +872,10 @@
 /*----------------------------------------------//----------------------------*/
     void tickerBeeper(void)
     {
+    
+  
+      
+    
       static char cState = 0;
       if (gcBeepEnable)
       {
@@ -877,6 +884,7 @@
       
       
       }
+      
     }
 /*----------------------------------------------//----------------------------*/