Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 2:e4b49e7686c7, committed 2019-05-07
- Comitter:
- Biomike
- Date:
- Tue May 07 05:44:08 2019 +0000
- Parent:
- 1:9a5f06e7969e
- Commit message:
- Prueba;
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TextLCD.lib Tue May 07 05:44:08 2019 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/simon/code/TextLCD/#308d188a2d3a
--- a/main.cpp Thu Feb 14 10:37:28 2019 +0000 +++ b/main.cpp Tue May 07 05:44:08 2019 +0000 @@ -1,219 +1,176 @@ -/* mbed Microcontroller Library - * Copyright (c) 2006-2013 ARM Limited - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ + #include "mbed.h" #include <stdio.h> #include <errno.h> - -// Block devices -//#include "SPIFBlockDevice.h" -//#include "DataFlashBlockDevice.h" #include "SDBlockDevice.h" -//#include "HeapBlockDevice.h" - -// File systems +#include "FATFileSystem.h" +#include "TextLCD.h" -//#include "LittleFileSystem.h" -#include "FATFileSystem.h" +float anselect; +TextLCD lcd(D8, D9, D4, D5, D6, D7); // rs, e, d4-d7 +AnalogIn av_sensor(A1); +AnalogIn av_select(A0); + +SDBlockDevice blockDevice (D11, D12, D13, D10); // mosi, miso, sck, cs +// File system declaration +char fsistem[]="fs"; +char archivo1[] = "/fs/dato1.txt"; +char archivo2[] = "/fs/dato2.txt"; +char archivo3[] = "/fs/dato3.txt"; +char prueba[] = "/fs/prueba.txt"; -// Physical block device, can be any device that supports the BlockDevice API -SDBlockDevice blockDevice(p5, p6, p7, p8); // mosi, miso, sck, cs +const int tmuestra = 1500; //tamaño de la muestra(tamaño del vector); +float muestra[tmuestra]; //arreglo de la muestra en float; + +FATFileSystem fileSystem(fsistem); +int escribeSD(int n, float grab[]); -// File system declaration -FATFileSystem fileSystem("fs"); +void inicio(); //Abre o da el formato y crea los archiívos "w+" +void grabacion(); //carga datos analogicos en muestra[tmuestra]; +void escriteSD(int n, float grab);//n es para seleccionar los archivos +int iterpre(); //interpreta los botones del shild LCD -// Entry point for the example int main() { - printf("--- Mbed OS filesystem example ---\n"); - - // Try to mount the filesystem - printf("Mounting the filesystem... "); - fflush(stdout); - - int err = fileSystem.mount(&blockDevice); - printf("%s\n", (err ? "Fail :(" : "OK")); - if (err) { - // Reformat if we can't mount the filesystem - // this should only happen on the first boot - printf("No filesystem found, formatting... "); - fflush(stdout); - err = fileSystem.reformat(&blockDevice); - printf("%s\n", (err ? "Fail :(" : "OK")); - if (err) { - error("error: %s (%d)\n", strerror(-err), err); + while(1){ + //inicio(); + int n = iterpre(); + int e = 0; + lcd.locate(9,1); + lcd.printf("%d",n); + switch(n) + { + + case 0: + //lcd.locate(0,0); + //lcd.printf("esperando... "); + break; + case 1: + //lcd.locate(0,0); + //lcd.printf(" tomando muestra 1 "); + //grabacion(); + //lcd.locate(0,0); + //lcd.printf(" grabando muestra 1 "); + //escribeSD(1,muestra); + //lcd.cls(); + break; + + case 2: + //grabacion(); + //escribeSD(2,muestra); + break; + case 3: + //grabacion(); + //escribeSD(3,muestra); + break; + case 4: + //grabacion(); + //escribeSD(4,muestra); + break; } } - - // Open the numbers file - printf("Opening \"/fs/numbers.txt\"... "); - fflush(stdout); - - FILE* f = fopen("/fs/numbers.txt", "r+"); - printf("%s\n", (!f ? "Fail :(" : "OK")); - if (!f) { - // Create the numbers file if it doesn't exist - printf("No file found, creating a new file... "); +} +void grabacion(){ + for (int i = 0; i < tmuestra; i++) { + muestra[i] = av_sensor.read(); + printf("\r tomando muestra %f... \n ", muestra[i]); fflush(stdout); - f = fopen("/fs/numbers.txt", "w+"); - printf("%s\n", (!f ? "Fail :(" : "OK")); - if (!f) { - error("error: %s (%d)\n", strerror(errno), -errno); - } - - for (int i = 0; i < 10; i++) { - printf("\rWriting numbers (%d/%d)... ", i, 10); - fflush(stdout); - err = fprintf(f, " %d\n", i); - if (err < 0) { - printf("Fail :(\n"); - error("error: %s (%d)\n", strerror(errno), -errno); - } - } - - printf("\rWriting numbers (%d/%d)... OK\n", 10, 10); - - printf("Seeking file... "); + } + return; +} +void inicio(){ + printf("Montanto el sistema de archivos... "); + fflush(stdout); + int err = fileSystem.reformat(&blockDevice); //formatéa si existe un error + printf("%s\n", (err ? "Fail :(" : "OK")); + FILE * f = fopen(archivo1, "w+"); + err = fclose(f); + FILE * g = fopen(archivo2, "w+"); + err = fclose(g); + FILE * h = fopen(archivo3, "w+"); + err = fclose(h); + FILE * i = fopen(prueba, "w+"); + err = fclose(i); + return; +} +int escribeSD(int n, float grab[]){ + printf("Montanto el sistema de archivos... "); + fflush(stdout); + char ubica[]= ""; + + switch(n) + { + case 0: + //ubica = prueba; + break; + case 1: + strcat(archivo1,ubica); + break; + case 2: + strcat(archivo2,ubica); + break; + case 3: + strcat(archivo3,ubica); + break; + case 4: + strcat(prueba,ubica); + break; + } + int err = fileSystem.mount(&blockDevice); //monta el sistema de archivo + FILE* f = fopen(ubica, "r+"); //abre la ubicacion + for (int i = 0; i < tmuestra; i++) { + printf("\rWriting numbers (%d/%d)... ", i, tmuestra); fflush(stdout); - err = fseek(f, 0, SEEK_SET); - printf("%s\n", (err < 0 ? "Fail :(" : "OK")); + err = fprintf(f, "%f\n", grab[i]); if (err < 0) { + printf("Fail :(\n"); error("error: %s (%d)\n", strerror(errno), -errno); } } - - // Go through and increment the numbers - for (int i = 0; i < 10; i++) { - printf("\rIncrementing numbers (%d/%d)... ", i, 10); - fflush(stdout); - - // Get current stream position - long pos = ftell(f); - - // Parse out the number and increment - int32_t number; - fscanf(f, "%ld", &number); - number += 1; - - // Seek to beginning of number - fseek(f, pos, SEEK_SET); - - // Store number - fprintf(f, " %ld\n", number); - - // Flush between write and read on same file - fflush(f); - } - - printf("\rIncrementing numbers (%d/%d)... OK\n", 10, 10); - - // Close the file which also flushes any cached writes - printf("Closing \"/fs/numbers.txt\"... "); + printf("Seeking file... "); fflush(stdout); - err = fclose(f); + err = fseek(f, 0, SEEK_SET); printf("%s\n", (err < 0 ? "Fail :(" : "OK")); - if (err < 0) { - error("error: %s (%d)\n", strerror(errno), -errno); - } - - // Display the root directory - printf("Opening the root directory... "); - fflush(stdout); - - DIR* d = opendir("/fs/"); - printf("%s\n", (!d ? "Fail :(" : "OK")); - if (!d) { - error("error: %s (%d)\n", strerror(errno), -errno); - } - - printf("root directory:\n"); - while (true) { - struct dirent* e = readdir(d); - if (!e) { - break; - } - - printf(" %s\n", e->d_name); - } - - printf("Closing the root directory... "); - fflush(stdout); - err = closedir(d); - printf("%s\n", (err < 0 ? "Fail :(" : "OK")); - if (err < 0) { - error("error: %s (%d)\n", strerror(errno), -errno); + err = fclose(f); + + return 0; +} +int iterpre() +{ + + + anselect = av_select.read(); + float r1 = anselect; + + int resp = 0; + int r = r1*100; + lcd.locate(5,1); + lcd.printf("___"); + lcd.locate(5,1); + lcd.printf("%d",r); + if((r < 9)) { + resp = 5; + return resp; } - - // Display the numbers file - printf("Opening \"/fs/numbers.txt\"... "); - fflush(stdout); - f = fopen("/fs/numbers.txt", "r"); - printf("%s\n", (!f ? "Fail :(" : "OK")); - if (!f) { - error("error: %s (%d)\n", strerror(errno), -errno); + if((47 < r)&&(r < 49)) { + resp = 4; + return resp; } - - printf("numbers:\n"); - while (!feof(f)) { - int c = fgetc(f); - printf("%c", c); - } - - printf("\rClosing \"/fs/numbers.txt\"... "); - fflush(stdout); - err = fclose(f); - printf("%s\n", (err < 0 ? "Fail :(" : "OK")); - if (err < 0) { - error("error: %s (%d)\n", strerror(errno), -errno); + if((20 < r)&&(r < 24)) { + resp = 3; + return resp; } - - // Tidy up - printf("Unmounting... "); - fflush(stdout); - err = fileSystem.unmount(); - printf("%s\n", (err < 0 ? "Fail :(" : "OK")); - if (err < 0) { - error("error: %s (%d)\n", strerror(-err), err); - } - - printf("Initializing the block device... "); - fflush(stdout); - - err = blockDevice.init(); - printf("%s\n", (err ? "Fail :(" : "OK")); - if (err) { - error("error: %s (%d)\n", strerror(-err), err); + if((73 < r)&&(r < 76)) { + resp = 2; + return resp; } - - printf("Erasing the block device... "); - fflush(stdout); - err = blockDevice.erase(0, blockDevice.size()); - printf("%s\n", (err ? "Fail :(" : "OK")); - if (err) { - error("error: %s (%d)\n", strerror(-err), err); + if((r == 100)) { + resp = 0; + return resp; } - - printf("Deinitializing the block device... "); - fflush(stdout); - err = blockDevice.deinit(); - printf("%s\n", (err ? "Fail :(" : "OK")); - if (err) { - error("error: %s (%d)\n", strerror(-err), err); + if((99 < r)&&(r < 101)) { + resp = 1; + return resp; } - - printf("\r\n"); - - printf("Mbed OS filesystem example done!\n"); -} + return resp; +} \ No newline at end of file
--- a/mbed_app.json Thu Feb 14 10:37:28 2019 +0000 +++ b/mbed_app.json Tue May 07 05:44:08 2019 +0000 @@ -1,6 +1,6 @@ { "target_overrides": { - "LPC1768": { + "NUCLEO_F446RE": { "target.components_add": ["SD"] } }