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@5:c208cb05dd4b, 2013-08-22 (annotated)
- Committer:
- jlpalaci
- Date:
- Thu Aug 22 01:39:08 2013 +0000
- Revision:
- 5:c208cb05dd4b
- Parent:
- 4:29f56a8a8390
- Child:
- 6:99df19f0f6eb
Frecuencia puerto serie a 19200baudios
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 | 3:8125d6b7afff | 19 | //Definición de variables globales |
| jlpalaci | 0:1eb268d3d14e | 20 | FILE * fp1; |
| jlpalaci | 0:1eb268d3d14e | 21 | FILE * fp2; |
| jlpalaci | 2:a2b90ac0b81b | 22 | int inicio = 0; |
| jlpalaci | 2:a2b90ac0b81b | 23 | int fin = 0; |
| jlpalaci | 4:29f56a8a8390 | 24 | int samples = 1; |
| jlpalaci | 4:29f56a8a8390 | 25 | char read [64] = {0}; |
| jlpalaci | 4:29f56a8a8390 | 26 | char readvar [512] = {0}; |
| jlpalaci | 0:1eb268d3d14e | 27 | |
| jlpalaci | 0:1eb268d3d14e | 28 | int main() |
| jlpalaci | 0:1eb268d3d14e | 29 | { |
| jlpalaci | 5:c208cb05dd4b | 30 | xbee.baud(19200); |
| jlpalaci | 4:29f56a8a8390 | 31 | reloj.start(); |
| jlpalaci | 0:1eb268d3d14e | 32 | slp = 1; //Habilitado el modo de operación normal (MMA7361L) |
| jlpalaci | 0:1eb268d3d14e | 33 | g_sel = 0; //Ajusta la sensibilidad a 1.5g (cambiar a 1 para ajustar sensibilidad a 6g) |
| jlpalaci | 5:c208cb05dd4b | 34 | |
| jlpalaci | 0:1eb268d3d14e | 35 | while(1) { |
| jlpalaci | 4:29f56a8a8390 | 36 | //char read [64] = {0}; |
| jlpalaci | 4:29f56a8a8390 | 37 | //char readvar [512] = {0}; |
| jlpalaci | 4:29f56a8a8390 | 38 | |
| jlpalaci | 3:8125d6b7afff | 39 | xbee.scanf("%s",read); //Espera la recepción de caracteres |
| jlpalaci | 2:a2b90ac0b81b | 40 | switch(read[0]) { |
| jlpalaci | 4:29f56a8a8390 | 41 | case 'r': //Lee la información de la memoria SD y la envía mediante Xbee |
| jlpalaci | 2:a2b90ac0b81b | 42 | fp2 = fopen ("/sd/test.txt","r"); |
| jlpalaci | 4:29f56a8a8390 | 43 | for (int i=0; i<samples/42; i++) { |
| jlpalaci | 2:a2b90ac0b81b | 44 | fscanf (fp2,"%s",readvar); |
| jlpalaci | 2:a2b90ac0b81b | 45 | xbee.printf("%s",readvar); |
| jlpalaci | 4:29f56a8a8390 | 46 | xbee.putc('\n'); |
| jlpalaci | 2:a2b90ac0b81b | 47 | } |
| jlpalaci | 2:a2b90ac0b81b | 48 | fclose (fp2); |
| jlpalaci | 2:a2b90ac0b81b | 49 | break; |
| jlpalaci | 3:8125d6b7afff | 50 | case 't': //Envía el tiempo de adquisición |
| jlpalaci | 4:29f56a8a8390 | 51 | xbee.printf("%010d\n",fin-inicio); |
| jlpalaci | 4:29f56a8a8390 | 52 | break; |
| jlpalaci | 4:29f56a8a8390 | 53 | default: //Inicia la conversión A/D y la almacena en la memoria SD |
| jlpalaci | 4:29f56a8a8390 | 54 | samples = atoi(read); |
| jlpalaci | 4:29f56a8a8390 | 55 | //Inicio del reloj para determinar la tasa de muestreo |
| jlpalaci | 4:29f56a8a8390 | 56 | fp1 = fopen ("/sd/test.txt","w"); |
| jlpalaci | 4:29f56a8a8390 | 57 | reloj.reset(); |
| jlpalaci | 4:29f56a8a8390 | 58 | inicio = reloj.read_us(); |
| jlpalaci | 4:29f56a8a8390 | 59 | //Ciclo de lectura de los ejes x, y, z del acelerómetro triaxial MMA7361L |
| jlpalaci | 4:29f56a8a8390 | 60 | for(int i=1; i<=samples; i++) { |
| jlpalaci | 4:29f56a8a8390 | 61 | fprintf (fp1,"%04X%04X%04X",ain_x.read_u16(),ain_y.read_u16(),ain_z.read_u16()); |
| jlpalaci | 4:29f56a8a8390 | 62 | if((i>=42) && (i%42==0)) fprintf (fp1,"\n"); |
| jlpalaci | 4:29f56a8a8390 | 63 | } |
| jlpalaci | 4:29f56a8a8390 | 64 | //Tiempo transcurrido desde la ejecución del reloj |
| jlpalaci | 4:29f56a8a8390 | 65 | fin = reloj.read_us(); |
| jlpalaci | 4:29f56a8a8390 | 66 | fclose (fp1); |
| jlpalaci | 3:8125d6b7afff | 67 | break; |
| jlpalaci | 0:1eb268d3d14e | 68 | } |
| jlpalaci | 0:1eb268d3d14e | 69 | } |
| jlpalaci | 0:1eb268d3d14e | 70 | } |