Dependencies:   PCA9955A_library_prototype mbed

Revision:
5:78bfbf11bb2f
Parent:
4:75a2c3550bdc
Child:
6:4da1c7f560b8
--- a/main.cpp	Thu Jul 17 01:43:50 2014 +0000
+++ b/main.cpp	Thu Jul 17 02:08:37 2014 +0000
@@ -1,20 +1,23 @@
-#include "mbed.h"
+#include    "mbed.h"
 #include    "PCA9955A.h"
 
 BusOut      leds( LED4, LED3, LED2, LED1 );
 DigitalOut  pin( p21 );
 AnalogIn    ain( p20 );
-//AnalogIn    ain( dp4 );
+AnalogOut   aout( p18 );
 
-PCA9955A     led_driver( p28, p27, 0x02 );   // SDA, SCL, I2C_slave_sddress
+PCA9955A    led_driver( p28, p27, 0x02 );   // SDA, SCL, I2C_slave_sddress
 
-Ticker      t;
+Ticker  led_maintenance;
+Ticker  sample_timing;
 
 int     led_change  = 0;
+int     sampling    = 0;
 
 
 void    set_color( int v );
 void    led_cntl();
+void    ad_cntl();
 
 
 
@@ -31,24 +34,38 @@
 
     set_color( 1 );
 
-    t.attach( &led_cntl, 0.02 );
+    led_maintenance.attach( &led_cntl, 0.02 );
+    sample_timing.attach( &ad_cntl, 0.01 );
 
     while(1) {
-        in      = (float)ain;
-        peak    = in < peak ? peak : in;
-        shift  = (int)(coef * peak);
-        leds    = 0x1 << shift;
-        peak    *= 0.999;
+
+        if ( sampling ) {
+            sampling    = 0;
 
+            pin =0;
+            in      = (float)ain;
+            peak    = in < peak ? peak : in;
+            shift  = (int)(coef * peak);
+            leds    = 0x1 << shift;
+            peak    *= 0.99;
+            pin =1;
+            aout    = peak;
 
-        if ( shift > 2 ) {
-            led_change  = 1;
+            if ( shift > 2 ) {
+                led_change  = 1;
+            }
         }
     }
 
 }
 
-void    led_cntl()
+void ad_cntl()
+{
+    sampling    = 1;
+}
+
+
+void led_cntl()
 {
     static int      count       = 0;
     static float    intensity   = 1.0;
@@ -58,9 +75,9 @@
         led_change  = 0;
         intensity   = 1.0;
     }
-    
+
     led_driver.set_all_intensity( (char)(intensity * (float)0xFF) );
-    
+
     intensity   *= 0.90;
 }