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