test µSD
Dependencies: SD_DISCO_F469NI BSP_DISCO_F469NI BD_SD_DISCO_F469NI USBHOST
Diff: main.cpp
- Revision:
- 6:f3337d7c598a
- Parent:
- 5:5c29a3f6600b
--- 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