dot Matrix Led Clock with TLC5940

Dependencies:   Kc_TLC5940 mbed

Revision:
3:25540a08a8d8
Parent:
2:6edd801ae662
--- a/main.cpp	Tue Jul 28 01:53:27 2015 +0000
+++ b/main.cpp	Wed Jul 29 06:37:55 2015 +0000
@@ -91,6 +91,7 @@
     col8 = ( temp & mask );
 }
 
+//カウントアップ
 void minUp()
 {
     for( int bright = brightMax ; bright > 0; bright-=brightCangeValue )
@@ -99,9 +100,17 @@
         {
             brightCangeValue = brightChange;
             if( fastSw == 1 )
+            {
                 brightCangeValue = fastCount;
+                secTick.detach();
+                secTick.attach(&minUp, 60.0);   //スイッチが押されている間は自動で進まないようにTickをリセット
+            }
             if( slowSw == 1 )
+            {
                 brightCangeValue = slowCount;
+                secTick.detach();
+                secTick.attach(&minUp, 60.0);
+            }
                 
             for( int h=0; h<16 ; h++ )
                 LEDS[h] = 0;
@@ -153,38 +162,30 @@
     
     setup (driver, vprg, xlat, blank, gsclk, num_ics );
     brightCangeValue = brightChange;
-    secTick.attach(&minUp, 60.0);
+    secTick.attach(&minUp, 60.0);   //1分でカウントアップ処理を行う
     
     while(1)
     {
-/*        for( hour =1 ; hour<13 ; hour++ )
+        //スイッチが押された時の処理
+        if( fastSw == 1 )
+            minUp();
+        if( slowSw == 1 )
+            minUp();
+        
+        //16行分ダイナミック点灯させる
+        for( int colmn=0 ; colmn<16 ; colmn++ )
         {
-            for( min = 1 ; min<60 ; min )
-            {
-                while(1)
-                {*/
-                    if( fastSw == 1 )
-                        minUp();
-                    if( slowSw == 1 )
-                        minUp();
-                    for( int colmn=0 ; colmn<16 ; colmn++ )
-                    {
-                            
-                        for( int h=0; h<16 ; h++ )
-                            LEDS[h] = 0;
-                        LEDS[colmn] = (unsigned short)brightMax;
-                        offDisp(blank, gsclk);
-                        if( colmn<8 )
-                            fontOut( decfont( min , colmn ) );
-                        else
-                            fontOut( hourDecfont( hour , colmn-8 ) );
-                        update_led (driver, xlat, blank, gsclk , LEDS);
-                        wait_us(dispTime);
-                    }
-     /*           }
-            }
-
-
-        }*/
+                
+            for( int h=0; h<16 ; h++ )
+                LEDS[h] = 0;
+            LEDS[colmn] = (unsigned short)brightMax;
+            offDisp(blank, gsclk);
+            if( colmn<8 )
+                fontOut( decfont( min , colmn ) );
+            else
+                fontOut( hourDecfont( hour , colmn-8 ) );
+            update_led (driver, xlat, blank, gsclk , LEDS);
+            wait_us(dispTime);
+        }
     }
 }