Martin Deng / Mbed 2 deprecated mbed_shapedriver

Dependencies:   mbed

Revision:
8:09efa61ef52c
Parent:
6:baece3338bfe
Child:
9:2f23704d4a47
--- a/main.cpp	Fri May 01 06:46:08 2015 +0000
+++ b/main.cpp	Mon May 11 19:08:56 2015 +0000
@@ -174,9 +174,10 @@
 
 void animate(){
     
-    if(display_mode == 1)
+    if(display_mode == 0)
     {
         set_hfunc(&wave_height);
+        freq = 4;
         
         for(int i = 3; i < WIDTH; i++){
             draw_circle(i, 4);    
@@ -187,7 +188,7 @@
             freq_disp = 0.0;    
         }
     } 
-    else if(display_mode == 2)
+    else if(display_mode == 1)
     {
         set_hfunc(NULL);
         draw_line(10, 10, 0, 10, -10, 0);  
@@ -204,50 +205,25 @@
         draw_line(10, -10, 0, 10, -10, 7); 
         draw_line(-10, -10, 0, -10, -10, 7); 
         draw_line(-10, 10, 0, -10, 10, 7); 
+        
+        draw_line(5, 5, 2, 5, -5, 2);  
+        draw_line(5, -5, 2, -5, -5, 2); 
+        draw_line(-5, -5, 2, -5, 5, 2); 
+        draw_line(-5, 5, 2, 5, 5, 2); 
+
+        draw_line(5, 5, 5, 5, -5, 5);  
+        draw_line(5, -5, 5, -5, -5, 5); 
+        draw_line(-5, -5, 5, -5, 5, 5); 
+        draw_line(-5, 5, 5, 5, 5, 5);
+        
+        draw_line(5, 5, 2, 5, 5, 5); 
+        draw_line(5, -5, 2, 5, -5, 5); 
+        draw_line(-5, -5, 2, -5, -5, 5); 
+        draw_line(-5, 5, 2, -5, 5, 5);
    
     } 
-    else if(display_mode == 3)
-    {
-        int g = 4;
-        static bool init = false;
-        static int towers[4][4];
-        
-        if(!init){
-            set_hfunc(NULL);  
-            srand(time(NULL));
-        
-            for(int i = 0; i < g; i++){
-                for(int j = 0; j < g; j++){
-                    towers[i][j] = rand() % HEIGHT;    
-                }  
-            }   
-            init = true;
-        }
-
-        int f = WIDTH / g;
-
-        for(int i = -g; i < g; i++){
-            for(int j = -g; j < g; j++){
-                int h = towers[i + g][j + g];
-                
-                draw_line(i*f, j*f, 0, i*f, j*f + f, 0);  
-                draw_line(i*f, j*f + f, 0, i*f + f, j*f + f, 0);  
-                draw_line(i*f + f, j*f + f, 0, i*f + f, j*f, 0); 
-                draw_line(i*f + f, j*f, 0, i*f, j*f, 0); 
-        
-                draw_line(i*f, j*f, 0, i*f, j*f, h);  
-                draw_line(i*f + f, j*f, 0, i*f + f, j*f, h);  
-                draw_line(i*f, j*f + f, 0, i*f, j*f + f, h);  
-                draw_line(i*f + f, j*f + f, 0, i*f + f, j*f + f, h);  
-                
-                draw_line(i*f, j*f, h, i*f, j*f + f, h);  
-                draw_line(i*f, j*f + f, h, i*f + f, j*f + f, h);  
-                draw_line(i*f + f, j*f + f, h, i*f + f, j*f, h); 
-                draw_line(i*f + f, j*f, h, i*f, j*f, h); 
-            }  
-        }
-          
-    } else if(display_mode == 4){
+    
+    else if(display_mode == 2){
         freq = 1.5;
         set_hfunc(&wave_height);
         
@@ -271,13 +247,20 @@
     animate_i = true;
 }
 
+Ticker switch_ticker;
+
+void switch_mode(){
+    display_mode = (display_mode + 1) % 3; 
+}
+
 int main (void)
 {
     display_mode = 4;
         
     InterruptIn hall_pin(p25);
     hall_pin.fall(&rotate_sense);
-    animate_ticker.attach(&animate_int, 3.0);
+    animate_ticker.attach(&animate_int, 1.0);
+    switch_ticker.attach(&switch_mode, 15.0);
     
     uint8_t channel = 2;