test µSD

Dependencies:   SD_DISCO_F469NI BSP_DISCO_F469NI BD_SD_DISCO_F469NI USBHOST

Files at this revision

API Documentation at this revision

Comitter:
bouaziz
Date:
Wed Feb 20 09:31:24 2019 +0000
Parent:
5:5c29a3f6600b
Commit message:
test

Changed in this revision

FatFs_Mon.lib Show diff for this revision Revisions of this file
USBHOST.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/FatFs_Mon.lib	Mon Apr 30 05:23:23 2018 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-https://os.mbed.com/users/kenjiArai/code/FatFs_Mon/#6f52c89729de
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/USBHOST.lib	Wed Feb 20 09:31:24 2019 +0000
@@ -0,0 +1,1 @@
+https://mbed.org/users/jeonbc/code/USBHOST/#75f3e275934b
--- a/main.cpp	Mon Apr 30 05:23:23 2018 +0000
+++ b/main.cpp	Wed Feb 20 09:31:24 2019 +0000
@@ -11,9 +11,10 @@
 
 //  Include --------------------------------------------------------------------
 #include    "mbed.h"
+//#include "USBHostMSD.h"
 #include    "FATFileSystem.h"
 #include    "SDBlockDeviceDISCOF469NI.h"
-#include    "mon.h"
+//#include    "mon.h"
 #include    <stdlib.h>
 #include    <stdio.h>
 #include    <errno.h>
@@ -23,11 +24,16 @@
 
 //  Constructor ----------------------------------------------------------------
 DigitalOut      led(LED1);
+DigitalOut led_orange(LED2);
+DigitalOut led_red(LED3);
+DigitalOut led_blue(LED4);
 DigitalIn       user_sw(USER_BUTTON);
-Serial          pc(USBTX, USBRX);
+Serial          uart(USBTX, USBRX);
 // Instantiate the Block Device for sd card on DISCO-F469NI
 SDBlockDeviceDISCOF469NI bd;
+//USBHostMSD msd;
 FATFileSystem   fs("fs");
+Timer tic;
 
 //  RAM ------------------------------------------------------------------------
 
@@ -42,86 +48,154 @@
 //------------------------------------------------------------------------------
 //  Control Program
 //------------------------------------------------------------------------------
-int main()
+/*int main()
 {
     time_t      seconds;
     uint32_t data0 = 10000U;
-    uint32_t data1 = 20000U;
-    uint32_t data2 = 30000U;
-    uint32_t data3 = 40000U;
-    uint32_t data4 = 50000U;
-    uint32_t data5 = 60000U;
 
     if (user_sw == USER_SW_ON) {
-        mon();
+   //     mon();
+            uart.printf("Start BUTTON ON\r\n");
+            
     }
     //pc.printf("line:%d\r\n", __LINE__);
-    pc.printf("\r\nStart\r\n");
+    uart.printf("\r\nStart\r\n");
     int error = 0;
-    pc.printf("Welcome to the filesystem example.\r\n");
-    pc.printf("Mounting the filesystem on \"/fs\". \r\n");
     error = fs.mount(&bd);
     return_error(error);
-
-    FILE* fp = fopen("/fs/mydata.txt", "a");
+/*
+    FILE* fp = fopen("/fs/test.txt", "w");
     errno_error(fp);
     if (fp != 0) {
-        pc.printf("%s%s",  opening_msg0, opening_msg1);
-        fprintf(fp,"%s%s", opening_msg0, opening_msg1);
+        pc.printf("OPEN : %s%s",  opening_msg0, opening_msg1);
+        fprintf(fp,"OPEN : %s%s", opening_msg0, opening_msg1);
     } else {
         pc.printf("ERROR\r\n");
     }
     fclose(fp);
-    while (pc.readable()) {
-        char c = pc.getc(); // dummy read
-    }
-    while (true) {
-        uint32_t size = get_disk_freespace();
-        pc.printf("free %u kB, ", size);
-        fp = fopen("/fs/mydata.txt", "a");
-        /*if (size <= DISK_SIZE_LIMIT) {
-            pc.printf("Reached RAM Disk size limitation!!\r\n");
-            break;
-        }*/
-        if(fp != 0) {
-            char tmp[64];
-            seconds = time(NULL);
-            strftime(tmp, 64, "DATE %H:%M:%S,%Y/%m/%d,", localtime(&seconds));
-            pc.printf(tmp);
-            fprintf(fp, "%s", tmp);
-            pc.printf("%08d;%08d;%08d;%08d;%08d;%08d\r\n",
-                      ++data0, ++data1, ++data2, ++data3, ++data4, ++data5);
-            fprintf(fp, "%08d;%08d;%08d;%08d;%08d;%08d\r\n",
-                        data0,   data1,   data2,   data3,   data4,   data5);
-        } else {
-            pc.printf("ERROR\r\n");
-        }
-        fclose(fp);
-        Thread::wait(100);
-        if (user_sw == USER_SW_ON) {
-            break;
-        }
-        if (pc.readable()) {
-            mon();
-        }
-        led = !led;
-    }
-    while(true) {
+ */
+  
+ //       uint32_t size = get_disk_freespace();
+ //           seconds = time(NULL);
+ //           strftime(tmp, 64, "DATE %H:%M:%S,%Y/%m/%d,", localtime(&seconds));
+ /*   while(true) {
         mon();
         NVIC_SystemReset();
-    }
-}
+    }*/
+/*    pc.printf("terminé\r\n");
+    while(1);
+}*/
 
 void return_error (int ret_val)
 {
     if (ret_val) {
-        pc.printf("retrun error/Failure. %d\r\n", ret_val);
+        uart.printf("retrun error/Failure. %d\r\n", ret_val);
     }
 }
 
 void errno_error (void* ret_val)
 {
     if (ret_val == NULL) {
-        pc.printf("error #/Failure. %d \r\n", errno);
+        uart.printf("error #/Failure. %d \r\n", errno);
     }
 }
+
+
+unsigned int count=0,val1,val2;
+char tmess[]="/fs/test1.txt";
+    unsigned int  index;
+#define TAILLEMAX (4096*4)
+#define ITER 50000
+unsigned flag;
+unsigned char tabf[TAILLEMAX+1];
+
+unsigned int tstat[20000];
+unsigned int cal1,cal2;
+double ff;
+unsigned long vdebut,vfin;
+int main(){
+unsigned int max=0,min=200000000;
+int retour;
+led=1;
+led_orange=1;
+led_red=1;
+led_blue=1;
+ int error = 0;
+    //led4=1;
+    uart.printf("TEST\r\n");
+    led_red=0;
+     wait(0.1);
+ /*   while(!msd.connect()) {
+            wait(0.500);
+    }*/
+    led_red=1;    
+    error = fs.mount(&bd);//bd);
+    return_error(error);
+    wait(0.1);
+    FILE *fp = fopen(tmess, "w");
+     errno_error(fp);
+    if(fp==0){
+  //      led1=1;
+  //      led2=1;
+ //       led4=0;
+        uart.printf("erreur ouverture fichier\r\n");
+        while(1);
+    }
+    uart.printf("DEBUT TEST\r\n");
+    tic.reset();
+    tic.start();
+ //   tc1.attach(&per,0.001);
+ vdebut=tic.read_us();
+    while(count<ITER){
+           // if(flag>0){
+                            led=0;
+               //     flag--;
+                    val1= tic.read_us();
+                    *((unsigned int*)tabf)=val1;
+                 *((unsigned int*)(tabf+12))=0;
+                    fwrite(tabf,1,TAILLEMAX,fp);
+                 *((unsigned int*)(tabf+16))=0;
+                  val2=tic.read_us();
+                  cal1=val2-val1;
+                    *((unsigned int*)(tabf+4))=val2;
+                    *((unsigned int*)(tabf+8))=cal1;
+                    //uart.printf("max = %u   min=%u    flag=%u\n",max,min,flag);
+                    if(cal1>max){
+                                max=cal1;
+                    }
+                    if(cal1<min){
+                                min=cal1;
+                    }
+                    cal1 = (cal1+50)/100;
+                    if(cal1>19999) cal1=19999;
+                    tstat[cal1]=tstat[cal1]+1;
+                    count++;
+                    led=1;
+                    wait(0.003);
+                    //led3=0;
+            //}
+    } 
+    vfin=tic.read_us();      
+    fclose(fp);
+    fp=fopen("/fs/fin.txt","w");
+    if(fp==0){
+  //      led1=1;
+  //      led2=1;
+ //       led4=0;
+          uart.printf("erreur ouverture fichier STAT\r\n");
+          while(1);
+    }
+    for(cal2=0;cal2<20000;cal2++){
+            if(tstat[cal2]!=0){
+                    ff=ff+ (cal2/10.)*(tstat[cal2]/(double)ITER);
+                    fprintf(fp,"%u\t%u\r\n",cal2,tstat[cal2]);
+            }
+    }
+   
+   
+    fprintf(fp,"max = %u   min=%u    moyenne=%u   tempstotal(ms)=%u\r\n",max,min,(unsigned)(ff*1000),(vfin-vdebut)/1000);
+    fclose(fp);
+   // led4=1; 
+    uart.printf("max = %u   min=%u    moyenne=%u   tempsmanip(H)=%f\r\n",max,min,(unsigned)(ff*1000),(((vfin-vdebut)/1000000.)+1)/3600.);
+    while(1);
+}
\ No newline at end of file