updated 7seg controls for new 7 seg boards

Dependencies:   PixelArray WS2812 mbed

Fork of frdm_pong_table_controller by Demo Team

Files at this revision

API Documentation at this revision

Comitter:
DanGibbons
Date:
Tue Aug 01 17:10:22 2017 +0000
Parent:
10:554301a1579b
Child:
12:7f428ce8ab35
Commit message:
Rev 2.1

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
main.h Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Wed Jul 12 10:50:45 2017 +0000
+++ b/main.cpp	Tue Aug 01 17:10:22 2017 +0000
@@ -39,9 +39,9 @@
     idleButton.setSampleFrequency( 10000 );
 
     // Set brightness of the 4 LED strips
-    robotScoreLED.setII(0xB0);
+    robotScoreLED.setII(0x60);
     robotScoreLED.useII(WS2812::GLOBAL);
-    playerScoreLED.setII(0xB0);
+    playerScoreLED.setII(0x60);
     playerScoreLED.useII(WS2812::GLOBAL);
     
     // Set scores to 0
@@ -76,8 +76,27 @@
     if (idle_button_pressed == 1) { // button just pressed
 
         pc.printf("\nPLAY");
+        
+        if (previous_state == 0) {
+            
+            IdleToPlayTransition();
+            
+        }
+        else {
+        
+            idle_button_pressed = 0;
 
-        IdleToPlayTransition();
+            DrainAnimation(true,false,true,false);
+
+            wait(1);
+
+            robotScore = 0;
+
+            playerScore = 0;
+
+            WriteScores();
+        
+        }
 
     }
     
@@ -86,21 +105,21 @@
 
     // IF PLAYER HAS SCORED A GOAL
     if (((prevRbbValue - rbbValue) > 0.03) || (PB1==0)) {
-        //pc.printf("Player has scored a goal \n\r");
+        pc.printf("Player has scored a goal \n\r");
         HandleGoal(false);
     }
 
     // IF ROBOT HAS SCORED A GOAL
     if (((prevPbbValue - pbbValue) > 0.03) || (PB2==0)) {
-        //pc.printf("Robot has scored a goal \n\r");
+        pc.printf("Robot has scored a goal \n\r");
         HandleGoal(true);
     }
 
     prevRbbValue = rbbValue;
     prevPbbValue = pbbValue;
 
-    //pc.printf("PlayerGoal: %f, RobotGoal: %f \r\n",pbbValue,rbbValue);
-    //pc.printf("Player: %i v %i : Robot \r\n",playerScore,robotScore);
+    pc.printf("PlayerGoal: %f, RobotGoal: %f \r\n",pbbValue,rbbValue);
+    pc.printf("Player: %i v %i : Robot \r\n",playerScore,robotScore);
     
 }
 
@@ -568,7 +587,7 @@
         DrainAnimation(true,false,true,true); // drain both scores away with the player score in random colours
         
         // reset robot score brightness
-        robotScoreLED.setII(0xB0);
+        robotScoreLED.setII(0x60);
         robotScoreLED.useII(WS2812::GLOBAL);
     
     } else {
@@ -587,7 +606,7 @@
         DrainAnimation(true,true,true,false); // drain both scores away with the robot score in random colours
         
         // reset player score brightness
-        playerScoreLED.setII(0xB0);
+        playerScoreLED.setII(0x60);
         playerScoreLED.useII(WS2812::GLOBAL);
     }
     
@@ -1601,7 +1620,13 @@
 void idleButtonISR()
 {
     if (idle_button_pressed == 0) {
-        idle_flag = !idle_flag;
+        if (idle_flag == 0) {
+            previous_state = 0;
+        }
+        else {
+            previous_state = 1;
+        }
+        idle_flag = 1;
         idle_button_pressed = 1;
     }
 }
--- a/main.h	Wed Jul 12 10:50:45 2017 +0000
+++ b/main.h	Tue Aug 01 17:10:22 2017 +0000
@@ -63,6 +63,7 @@
 // Flags
 volatile int idle_flag = 0;
 volatile int idle_button_pressed = 0;
+volatile int previous_state = 0;
 
 // Robot Bream Beam value
 double prevRbbValue; // Previous Robot break beam value