Marlon Fulla / Mbed 2 deprecated 2014FEB04_Vibrometro_Xbee

Dependencies:   mbed

Fork of 2014FEB4_Vibrometro_Xbee by Marlon Fulla

Committer:
jlpalaci
Date:
Thu Jul 11 01:36:32 2013 +0000
Revision:
3:8125d6b7afff
Parent:
2:a2b90ac0b81b
Child:
4:29f56a8a8390
Se limpia el c?digo. Se a?ade una funci?n al protocolo: t, env?a el tiempo de muestreo.

Who changed what in which revision?

UserRevisionLine numberNew 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 0:1eb268d3d14e 17
jlpalaci 3:8125d6b7afff 18 //Definición de variables globales
jlpalaci 0:1eb268d3d14e 19 FILE * fp1;
jlpalaci 0:1eb268d3d14e 20 FILE * fp2;
jlpalaci 2:a2b90ac0b81b 21 int inicio = 0;
jlpalaci 2:a2b90ac0b81b 22 int fin = 0;
jlpalaci 2:a2b90ac0b81b 23 int j = 0;
jlpalaci 3:8125d6b7afff 24 //char read [64] = {0};
jlpalaci 3:8125d6b7afff 25 //char readvar [64] = {0};
jlpalaci 0:1eb268d3d14e 26
jlpalaci 0:1eb268d3d14e 27 int main()
jlpalaci 0:1eb268d3d14e 28 {
jlpalaci 0:1eb268d3d14e 29 xbee.baud(4800);
jlpalaci 0:1eb268d3d14e 30 slp = 1; //Habilitado el modo de operación normal (MMA7361L)
jlpalaci 0:1eb268d3d14e 31 g_sel = 0; //Ajusta la sensibilidad a 1.5g (cambiar a 1 para ajustar sensibilidad a 6g)
jlpalaci 0:1eb268d3d14e 32
jlpalaci 0:1eb268d3d14e 33 while(1) {
jlpalaci 3:8125d6b7afff 34 char read [64] = {0};
jlpalaci 3:8125d6b7afff 35 char readvar [64] = {0};
jlpalaci 3:8125d6b7afff 36
jlpalaci 3:8125d6b7afff 37 xbee.scanf("%s",read); //Espera la recepción de caracteres
jlpalaci 2:a2b90ac0b81b 38 switch(read[0]) {
jlpalaci 3:8125d6b7afff 39 case 's': //Inicia la adquisición de datos
jlpalaci 2:a2b90ac0b81b 40 fp1 = fopen ("/sd/test.txt","w");
jlpalaci 2:a2b90ac0b81b 41 reloj.start();
jlpalaci 2:a2b90ac0b81b 42 inicio=reloj.read_us();
jlpalaci 3:8125d6b7afff 43 for (int i=0;i<126;i++) fprintf (fp1,"%04X%04X%04X\n",ain_x.read_u16(),ain_y.read_u16(),ain_z.read_u16());
jlpalaci 2:a2b90ac0b81b 44 fin = reloj.read_us ();
jlpalaci 3:8125d6b7afff 45 //fprintf (fp1,"%012d\n",fin-inicio);
jlpalaci 2:a2b90ac0b81b 46 fclose (fp1);
jlpalaci 2:a2b90ac0b81b 47 break;
jlpalaci 3:8125d6b7afff 48 case 'o': //Abre el archivo de datos
jlpalaci 2:a2b90ac0b81b 49 fp2 = fopen ("/sd/test.txt","r");
jlpalaci 2:a2b90ac0b81b 50 break;
jlpalaci 3:8125d6b7afff 51 case 'r': //Genera un paquete de 504 caracteres y los envía mediante Xbee
jlpalaci 3:8125d6b7afff 52 for (int i=0;i<42;i++) {
jlpalaci 2:a2b90ac0b81b 53 fscanf (fp2,"%s",readvar);
jlpalaci 2:a2b90ac0b81b 54 xbee.printf("%s",readvar);
jlpalaci 2:a2b90ac0b81b 55 }
jlpalaci 2:a2b90ac0b81b 56 xbee.putc('\n');
jlpalaci 2:a2b90ac0b81b 57 break;
jlpalaci 3:8125d6b7afff 58 case 'c': //Cierra el archivo de datos
jlpalaci 2:a2b90ac0b81b 59 fclose (fp2);
jlpalaci 2:a2b90ac0b81b 60 break;
jlpalaci 3:8125d6b7afff 61 case 't': //Envía el tiempo de adquisición
jlpalaci 3:8125d6b7afff 62 xbee.printf("%012d\n",fin-inicio);
jlpalaci 3:8125d6b7afff 63 break;
jlpalaci 0:1eb268d3d14e 64 }
jlpalaci 0:1eb268d3d14e 65 }
jlpalaci 0:1eb268d3d14e 66 }