lab2-part2

Fork of digitalInInterrupt_sample by William Marsh

Files at this revision

API Documentation at this revision

Comitter:
Peilingyi
Date:
Thu Feb 01 17:56:19 2018 +0000
Parent:
3:05b6a1431a6b
Commit message:
lab2-part2

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 05b6a1431a6b -r f140d7032fea main.cpp
--- a/main.cpp	Tue Jan 16 18:14:21 2018 +0000
+++ b/main.cpp	Thu Feb 01 17:56:19 2018 +0000
@@ -6,31 +6,69 @@
 //    is pressed
 // The callback uses a shared variable to signal another thread
 
-InterruptIn button(PTD0);
-DigitalOut led(LED_GREEN);
+InterruptIn buttonblue(PTD0);
+InterruptIn buttonred(PTD5);//need to change the address
+DigitalOut ledblue(LED_BLUE);
+DigitalOut ledred(LED_RED);
 
-volatile int pressEvent = 0 ;
+volatile int pressREvent = 0 ;
+volatile int pressBEvent = 0 ;
+//volatile bool switchledblue = true; //switch blue led
+//volatile bool switchledred = true; //switch red led
 
 // This function is invoked when then interrupt occurs
-//   Signal that the button has been pressed
-//   Note: bounce may occur 
-void buttonCallback(){
-    pressEvent = 1 ;
+void buttonblueCallback()
+{   
+   pressBEvent = 1;
+}
+
+void buttonredCallback()
+{
+    pressREvent = 1;
 }
 
 /*  ---- Main function (default thread) ----
     Note that if this thread completes, nothing else works
  */
-int main() {
-    button.mode(PullUp);             // Ensure button i/p has pull up
-    button.fall(&buttonCallback) ;   // Attach function to falling edge
-
-    while(true) {
-        // Toggle the LED every time the button is pressed
-        if (pressEvent) {
-            led = !led ;
-            pressEvent = 0 ; // Clear the event variable
+int main() 
+{
+    
+    bool allow_flash_red = true;
+    bool allow_flash_blue = true;
+    
+    buttonblue.mode(PullUp);  
+    buttonred.mode(PullUp);            // Ensure button i/p has pull up
+   
+    buttonblue.fall(&buttonblueCallback) ;   // Attach function to falling edge
+    buttonred.fall(&buttonredCallback) ; 
+    while (true)
+    {
+ 
+        if (pressREvent == 1)
+        {   
+            allow_flash_red = !allow_flash_red;
+            pressREvent =0;
+        }   
+        
+        if (pressBEvent == 1)
+        {
+                        
+            allow_flash_blue = !allow_flash_blue;
+            pressBEvent = 0;
         }
-        Thread::wait(100) ;
+        
+        if(allow_flash_red)
+        {
+            ledred = !ledred;
+        }
+        
+        if(allow_flash_blue)
+        {
+            ledblue = !ledblue;
+        
+        }
+        
+        Thread::wait(500);
     }
+       
 }
\ No newline at end of file