finished

Dependencies:   C12832 DebouncedInterrupt MMA7660 mbed-rtos mbed

Revision:
2:ff8262f6a385
Parent:
1:57407e283b03
Child:
3:c31a01f2c064
--- a/main.cpp	Mon Mar 02 12:56:15 2015 +0000
+++ b/main.cpp	Tue Mar 03 13:42:32 2015 +0000
@@ -30,8 +30,8 @@
 Queue<message_t, 16> queue;
 
 //Digital input
-DigitalIn coin(p14);
-InterruptIn button(p15);
+//DigitalIn coin(p14);
+InterruptIn button(p14);
 
 //Analog input
 AnalogIn push(p19);
@@ -46,8 +46,12 @@
 DigitalOut led_B(p25); //LED RGB Blue
 
 //leds for debug
-DigitalOut led4(LED4); //LED RGB green
-DigitalOut led3(LED3); //LED RGB green
+DigitalOut led4(LED4); //LED 
+DigitalOut led3(LED3); //LED
+DigitalOut led2(LED2); //LED
+        
+//Global varible
+int button_press=0;
 
     
 void timeout_event(void const *n) 
@@ -64,26 +68,23 @@
 
 
 void button_event_thread(void const *argument) {
-    int button_press=0;
+    
     while (true) {
-     
-        //debouce delay for switch
-        if (coin)
+        
+        if (button_press == 1)
             {
-                button_press = 1;
-            if (button_press == 1 & coin == 0)
-                {
-               
-                //event via a message queue
-                message_t *message = mpool.alloc();
-                message->event = BUTTON_PRESS; 
-                queue.put(message);
-                
-                led3 = !led3;
-                button_press = 0;
-                }
+           
+            //event via a message queue
+            message_t *message = mpool.alloc();
+            message->event = BUTTON_PRESS; 
+            queue.put(message);
+            
+            led3 = !led3;
+            button_press = 0;
+            Thread::wait(500);
             }
             
+            
           
     }
 }
@@ -96,9 +97,9 @@
         {
      
         //debouce delay for switch
-        Thread::wait(2000);
+        
 
-        if (tilt_value_Y <= MMA.y()-0.1 ^ tilt_value_Y >= MMA.y()+0.1 )
+        if (tilt_value_Y <= MMA.y()-0.2 ^ tilt_value_Y >= MMA.y()+0.2 )
             {
 
             //event via a message queue
@@ -107,10 +108,11 @@
             queue.put(message);
             
             led3 = !led3;
+            Thread::wait(1500);
             tilt_value_Y = MMA.y();
             }
             
-       
+        
         }
         
     
@@ -122,16 +124,16 @@
         {
      
         //debouce delay for switch
-        Thread::wait(1000);
-        if (push_value >= push.read()- 0.05 ^ push_value <= push.read()+ 0.05 )
+        
+        if (push_value >= push.read()- 0.15 ^ push_value <= push.read()+ 0.15 )
             {
-            push_value = push.read();
             //event via a message queue
             message_t *message = mpool.alloc();
             message->event = PUSH; 
             queue.put(message);
             led3 = !led3;
-            
+            Thread::wait(1000);
+            push_value = push.read();
             }
         }
         
@@ -156,12 +158,14 @@
      
 }      
 
+
+
 void Button_Inter() {
- 
-//Flash_LED_Thread.signal_set(0x1);
-     
-}  
+//Flash_LED_Thread.signal_set(0x1);  
 
+button_press=1;
+    
+} 
     
 int main (void) {