test

Dependencies:   BLE_API nRF51822 mbed

Fork of KS7 by masaaki makabe

Branch:
KS3
Revision:
24:c6ef55535900
Parent:
23:ca1806081f0c
Child:
25:da723b86c60b
--- a/main.cpp	Tue Mar 22 09:22:51 2016 +0000
+++ b/main.cpp	Mon Mar 28 02:15:04 2016 +0000
@@ -221,22 +221,12 @@
 
 int main()
 {
+    float weight_s;
+    int Navg = 5;
+    int sample = 0;
 #ifdef UART_DEBUG
     pc.baud(UART_BAUD_RATE);
 #endif
-/*
-    // debug for PCB_VER4
-    io.analog_pow(1);
-    //    0g = 0.509444 * 16777215 = 8547051
-    // 2000g = 0.588761 * 16777215 = 9877770
-    //     d = 0.079317/2kg = 1330719/2kg = 665.36/g
-    uint32_t d0 = io._get_adc_raw(0);
-    while(1) {
-        uint32_t d = io._get_adc_raw(0);
-        if (d > d0) d = d - d0; else d = 0;
-        pc.printf("%d %d %f\r\n", io.get_switch(), d, (float)d / 665.36);
-    }
-*/
 #ifdef PCB_VER3
     // set XTAL=32MHz for TaiyoYuden's module
     //  is moved to mbed-src/targets/cmsis/TARGET_NORDIC/TARGET_MCU_NRF51822/system_nrf51.c
@@ -247,19 +237,13 @@
     AppInit();
     led_mode = MODE_OFF;
     for (;; ) {
-        pc.printf("#");
         // 100msec waitForEvent
         t.reset();
         while(t.read_ms() < LED_INTERVAL_MSEC) {
-            pc.printf(".");
             t.start();
             ble.waitForEvent();
             t.stop();
         }
-        
-        pc.printf("$");
-        pc.printf("%d %d\r\n", led_mode, io.get_switch());
-        // ticker蜃ヲ逅・
         switch(led_mode) {
             case MODE_OFF:
                 io.analog_pow(0);
@@ -270,8 +254,8 @@
                 break;
             case MODE_START:
                 io.analog_pow(1);
+                io.power_save_mode(0);
                 led_brightness += BRIGHTNESS_ADDVALUE;
-                pc.printf("br=%f/%f\r\n", led_brightness, BRIGHTNESS_MAXVALUE);
                 io.display(led_brightness);
                 if(led_brightness >= BRIGHTNESS_MAXVALUE) {
                     update_counter = 0;
@@ -281,9 +265,14 @@
 #endif
                     ble.startAdvertising();
                     led_mode = MODE_ON;
+                    weight_s = 0.0;
+                    sample = 0;
                 }
                 break;
             case MODE_ON:
+#ifdef UART_DEBUG
+//                pc.printf("%d %d %.2f\r\n", io.get_switch(), io.get_weight_raw(), io.get_weight());
+#endif
                 io.analog_pow(1);
                 if(io.get_switch()) {
                     led_mode = MODE_END;
@@ -298,12 +287,15 @@
                                                   (uint8_t *)&scale,
                                                   sizeof(scale));
 
-//                    weight = io.get_weight_raw() / WEIGHT_COEFFICIENT;
-//                    if(weight < 0) {
-//                        weight = 0;
-//                    }
-                    weight = io.get_weight();
-                    io.display_value = (uint16_t)weight;
+                    weight_s += io.get_weight();
+                    sample++;
+                    if (sample == Navg){
+                        weight = weight_s / (float)Navg;
+                        io.display_value = (uint16_t)weight;
+                        weight_s = 0.0;
+                        sample = 0;
+                    }
+//                    pc.printf("weight=%.1f\r\n", weight);
 //                    io.display_value = 8888; // for LED soldering check
 #ifdef UART_DEBUG
 //                    pc.printf("%d\r\n", io._get_adc_raw(0));
@@ -327,6 +319,7 @@
                     SWInit();
 #endif
                     led_mode = MODE_OFF;
+                    io.power_save_mode(1);
                 }
                 break;
         }