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.
main.cpp@7:d1eba8f22f3e, 2014-01-08 (annotated)
- Committer:
- jlpalaci
- Date:
- Wed Jan 08 05:13:45 2014 +0000
- Revision:
- 7:d1eba8f22f3e
- Parent:
- 6:99df19f0f6eb
- Child:
- 8:1814fd00a71e
- Child:
- 9:db5c39c8cf42
Ultima version funcional probada
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| jlpalaci | 0:1eb268d3d14e | 1 | #include "mbed.h" |
| jlpalaci | 0:1eb268d3d14e | 2 | #include "SDFileSystem.h" |
| jlpalaci | 7:d1eba8f22f3e | 3 | //#include <string> |
| jlpalaci | 0:1eb268d3d14e | 4 | |
| jlpalaci | 0:1eb268d3d14e | 5 | //Pines de conversión A/D asociados a los ejes del acelerómetro triaxial MMA7361L |
| jlpalaci | 0:1eb268d3d14e | 6 | AnalogIn ain_x(PTB0); |
| jlpalaci | 0:1eb268d3d14e | 7 | AnalogIn ain_y(PTB1); |
| jlpalaci | 0:1eb268d3d14e | 8 | AnalogIn ain_z(PTB2); |
| jlpalaci | 0:1eb268d3d14e | 9 | //Pines digitales para configurar el acelerómetro triaxial MMA7361L |
| jlpalaci | 0:1eb268d3d14e | 10 | DigitalOut slp(PTB3); |
| jlpalaci | 0:1eb268d3d14e | 11 | DigitalOut g_sel(PTC2); |
| jlpalaci | 0:1eb268d3d14e | 12 | //Cronómetro |
| jlpalaci | 0:1eb268d3d14e | 13 | Timer reloj; |
| jlpalaci | 0:1eb268d3d14e | 14 | //SD FAT system |
| jlpalaci | 0:1eb268d3d14e | 15 | SDFileSystem sd(PTD2, PTD3, PTD1, PTD0,"sd"); |
| jlpalaci | 0:1eb268d3d14e | 16 | //Comunicación Xbee |
| jlpalaci | 0:1eb268d3d14e | 17 | Serial xbee(PTA2,PTA1); |
| jlpalaci | 4:29f56a8a8390 | 18 | //Serial xbee(USBTX,USBRX); |
| jlpalaci | 0:1eb268d3d14e | 19 | |
| jlpalaci | 6:99df19f0f6eb | 20 | |
| jlpalaci | 3:8125d6b7afff | 21 | //Definición de variables globales |
| jlpalaci | 0:1eb268d3d14e | 22 | FILE * fp1; |
| jlpalaci | 0:1eb268d3d14e | 23 | FILE * fp2; |
| jlpalaci | 2:a2b90ac0b81b | 24 | int inicio = 0; |
| jlpalaci | 2:a2b90ac0b81b | 25 | int fin = 0; |
| jlpalaci | 4:29f56a8a8390 | 26 | int samples = 1; |
| jlpalaci | 4:29f56a8a8390 | 27 | char read [64] = {0}; |
| jlpalaci | 4:29f56a8a8390 | 28 | char readvar [512] = {0}; |
| jlpalaci | 0:1eb268d3d14e | 29 | |
| jlpalaci | 0:1eb268d3d14e | 30 | int main() |
| jlpalaci | 0:1eb268d3d14e | 31 | { |
| jlpalaci | 6:99df19f0f6eb | 32 | //xbee.baud(9600); |
| jlpalaci | 6:99df19f0f6eb | 33 | xbee.baud(115200); |
| jlpalaci | 4:29f56a8a8390 | 34 | reloj.start(); |
| jlpalaci | 0:1eb268d3d14e | 35 | slp = 1; //Habilitado el modo de operación normal (MMA7361L) |
| jlpalaci | 0:1eb268d3d14e | 36 | g_sel = 0; //Ajusta la sensibilidad a 1.5g (cambiar a 1 para ajustar sensibilidad a 6g) |
| jlpalaci | 5:c208cb05dd4b | 37 | |
| jlpalaci | 0:1eb268d3d14e | 38 | while(1) { |
| jlpalaci | 4:29f56a8a8390 | 39 | //char read [64] = {0}; |
| jlpalaci | 4:29f56a8a8390 | 40 | //char readvar [512] = {0}; |
| jlpalaci | 4:29f56a8a8390 | 41 | |
| jlpalaci | 3:8125d6b7afff | 42 | xbee.scanf("%s",read); //Espera la recepción de caracteres |
| jlpalaci | 2:a2b90ac0b81b | 43 | switch(read[0]) { |
| jlpalaci | 4:29f56a8a8390 | 44 | case 'r': //Lee la información de la memoria SD y la envía mediante Xbee |
| jlpalaci | 6:99df19f0f6eb | 45 | //if(read[1]=='1') { //Nombre para modulo 1... |
| jlpalaci | 6:99df19f0f6eb | 46 | fp2 = fopen ("/sd/test.txt","r"); |
| jlpalaci | 6:99df19f0f6eb | 47 | for (int i=0; i<samples/3; i++) { |
| jlpalaci | 6:99df19f0f6eb | 48 | fscanf (fp2,"%s",readvar); |
| jlpalaci | 6:99df19f0f6eb | 49 | xbee.printf("%s",readvar); |
| jlpalaci | 6:99df19f0f6eb | 50 | xbee.putc('\n'); |
| jlpalaci | 6:99df19f0f6eb | 51 | } |
| jlpalaci | 6:99df19f0f6eb | 52 | fclose (fp2); |
| jlpalaci | 6:99df19f0f6eb | 53 | //} |
| jlpalaci | 2:a2b90ac0b81b | 54 | break; |
| jlpalaci | 3:8125d6b7afff | 55 | case 't': //Envía el tiempo de adquisición |
| jlpalaci | 6:99df19f0f6eb | 56 | //if(read[1]=='1') //Nombre para modulo 1... |
| jlpalaci | 6:99df19f0f6eb | 57 | xbee.printf("%010d\n",fin-inicio); |
| jlpalaci | 4:29f56a8a8390 | 58 | break; |
| jlpalaci | 4:29f56a8a8390 | 59 | default: //Inicia la conversión A/D y la almacena en la memoria SD |
| jlpalaci | 4:29f56a8a8390 | 60 | samples = atoi(read); |
| jlpalaci | 4:29f56a8a8390 | 61 | //Inicio del reloj para determinar la tasa de muestreo |
| jlpalaci | 4:29f56a8a8390 | 62 | fp1 = fopen ("/sd/test.txt","w"); |
| jlpalaci | 4:29f56a8a8390 | 63 | reloj.reset(); |
| jlpalaci | 4:29f56a8a8390 | 64 | inicio = reloj.read_us(); |
| jlpalaci | 4:29f56a8a8390 | 65 | //Ciclo de lectura de los ejes x, y, z del acelerómetro triaxial MMA7361L |
| jlpalaci | 4:29f56a8a8390 | 66 | for(int i=1; i<=samples; i++) { |
| jlpalaci | 4:29f56a8a8390 | 67 | fprintf (fp1,"%04X%04X%04X",ain_x.read_u16(),ain_y.read_u16(),ain_z.read_u16()); |
| jlpalaci | 7:d1eba8f22f3e | 68 | if((i>=42) && (i%3==42)) fprintf (fp1,"\n"); //cambiar a 3 para longitud de 12 caracteres |
| jlpalaci | 4:29f56a8a8390 | 69 | } |
| jlpalaci | 4:29f56a8a8390 | 70 | //Tiempo transcurrido desde la ejecución del reloj |
| jlpalaci | 4:29f56a8a8390 | 71 | fin = reloj.read_us(); |
| jlpalaci | 4:29f56a8a8390 | 72 | fclose (fp1); |
| jlpalaci | 3:8125d6b7afff | 73 | break; |
| jlpalaci | 0:1eb268d3d14e | 74 | } |
| jlpalaci | 0:1eb268d3d14e | 75 | } |
| jlpalaci | 0:1eb268d3d14e | 76 | } |