ok

Dependencies:   mbed-rtos mbed

Fork of STINGR_PDR by JOEL CONTRERAS

Committer:
Sumobot
Date:
Fri Oct 27 07:02:16 2017 +0000
Revision:
0:88a700f174a3
Child:
1:d140f24cf386
V1.0 Comunicaci?n Serial STX3 con switch

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Sumobot 0:88a700f174a3 1 #include "mbed.h" //Se declara la librería mbed.
Sumobot 0:88a700f174a3 2 #include "rtos.h"
Sumobot 0:88a700f174a3 3
Sumobot 0:88a700f174a3 4 DigitalOut led1(LED1);
Sumobot 0:88a700f174a3 5 DigitalOut led2(LED2);
Sumobot 0:88a700f174a3 6 DigitalOut led3(LED3);
Sumobot 0:88a700f174a3 7 DigitalOut led4(LED4);
Sumobot 0:88a700f174a3 8 Serial pc(USBTX, USBRX, 9600); // tx, rx Conunicación Serial con la PC
Sumobot 0:88a700f174a3 9 Serial device(p9, p10, 9600); // tx, rx Comunicación Serial con el Módulo STX3
Sumobot 0:88a700f174a3 10 DigitalOut RTS(p7, 1); // Pin Digital de Salida "RTS"; Predefinido para valer 1 en su estado inactivo dentro del código.
Sumobot 0:88a700f174a3 11 DigitalIn CTS(p8, PullUp); // Pin Digital de entrada "CTS" en modo Pull-Up, para encontrarse normalmente a VCC cuando no haya un pulso.
Sumobot 0:88a700f174a3 12 int flag=1; // Declaración de la Bandera.
Sumobot 0:88a700f174a3 13 Thread thread;
Sumobot 0:88a700f174a3 14
Sumobot 0:88a700f174a3 15 void respuesta(){
Sumobot 0:88a700f174a3 16 if(device.readable()) { // Se esperan datos provenientes del TX del módulo STX3
Sumobot 0:88a700f174a3 17 pc.putc(device.getc()); // Se muestra en pantalla la respuesta recibida por el módulo STX3 como una reacción al mensaje en HEX enviado
Sumobot 0:88a700f174a3 18 }
Sumobot 0:88a700f174a3 19 }
Sumobot 0:88a700f174a3 20
Sumobot 0:88a700f174a3 21 void stx3()
Sumobot 0:88a700f174a3 22 {
Sumobot 0:88a700f174a3 23 Thread::wait(5000); // Se da un tiempo para que el analizador se estabilice
Sumobot 0:88a700f174a3 24 pc.printf("El valor de CTS 1 es %d\n\r",CTS.read()); // Se lee el valor de la variable CTS, la cual debe ser 1
Sumobot 0:88a700f174a3 25 pc.printf("El valor de RTS 1 es %d\n\r",RTS.read()); // Se lee el valor de la variable RTS, la cual debe ser 1
Sumobot 0:88a700f174a3 26 RTS=0; // Se manda un pulso en bajo en RTS, para inicial el proceso de transmisión
Sumobot 0:88a700f174a3 27 while(flag==1){ // Flag inicialmente vale 1, así que el ciclo while cambiará hasta que esa condición no se cumpla
Sumobot 0:88a700f174a3 28 flag=CTS.read(); // Cuando entra el ciclo, se iguala flag a CTS, el cual cuando cambie a 0 provocará que termine el while (máx 125 ms)
Sumobot 0:88a700f174a3 29 pc.printf("El valor de flag es %d\n\r", flag); // Se imprime el valor de flag, para identificar cuando termina el ciclo while
Sumobot 0:88a700f174a3 30 }
Sumobot 0:88a700f174a3 31 }
Sumobot 0:88a700f174a3 32
Sumobot 0:88a700f174a3 33 int main() {
Sumobot 0:88a700f174a3 34 thread.start(respuesta);
Sumobot 0:88a700f174a3 35
Sumobot 0:88a700f174a3 36 while(1) {
Sumobot 0:88a700f174a3 37
Sumobot 0:88a700f174a3 38 switch (pc.getc())
Sumobot 0:88a700f174a3 39 {
Sumobot 0:88a700f174a3 40 case '1':
Sumobot 0:88a700f174a3 41 {
Sumobot 0:88a700f174a3 42 led1=!led1;
Sumobot 0:88a700f174a3 43 stx3();
Sumobot 0:88a700f174a3 44 Thread::wait(100); // Se esperan .1 segundos, para realizar la transmisiones.
Sumobot 0:88a700f174a3 45 device.putc(0XAA); // Se envía un mensaje en Hexadecimal, dado por GlobalStar
Sumobot 0:88a700f174a3 46 device.putc(0X05);
Sumobot 0:88a700f174a3 47 device.putc(0X04);
Sumobot 0:88a700f174a3 48 device.putc(0XFD);
Sumobot 0:88a700f174a3 49 device.putc(0X82);
Sumobot 0:88a700f174a3 50 Thread::wait(100); // Se esperan .1 segundos una vez que se terminaron de hacer las transmisiones
Sumobot 0:88a700f174a3 51 //El tiempo total de transmisión es; el wait previo a las transmisiones, el tiempo que tarda el Mu en enviar los datos y el wait posterior a la transmisión
Sumobot 0:88a700f174a3 52 RTS=1;
Sumobot 0:88a700f174a3 53 flag=1;
Sumobot 0:88a700f174a3 54 }
Sumobot 0:88a700f174a3 55 break;
Sumobot 0:88a700f174a3 56
Sumobot 0:88a700f174a3 57 case '2':
Sumobot 0:88a700f174a3 58 {
Sumobot 0:88a700f174a3 59 led2=!led2;
Sumobot 0:88a700f174a3 60 stx3();
Sumobot 0:88a700f174a3 61 Thread::wait(100); // Se esperan .1 segundos, para realizar la transmisiones.
Sumobot 0:88a700f174a3 62 device.putc(0XAA); // Se envía un mensaje en Hexadecimal, dado por GlobalStar
Sumobot 0:88a700f174a3 63 device.putc(0X05);
Sumobot 0:88a700f174a3 64 device.putc(0X04);
Sumobot 0:88a700f174a3 65 device.putc(0XFD);
Sumobot 0:88a700f174a3 66 device.putc(0X82);
Sumobot 0:88a700f174a3 67 Thread::wait(100); // Se esperan .1 segundos una vez que se terminaron de hacer las transmisiones
Sumobot 0:88a700f174a3 68 //El tiempo total de transmisión es; el wait previo a las transmisiones, el tiempo que tarda el Mu en enviar los datos y el wait posterior a la transmisión
Sumobot 0:88a700f174a3 69 RTS=1;
Sumobot 0:88a700f174a3 70 flag=1;
Sumobot 0:88a700f174a3 71 }
Sumobot 0:88a700f174a3 72 break;
Sumobot 0:88a700f174a3 73
Sumobot 0:88a700f174a3 74 case '3':
Sumobot 0:88a700f174a3 75 {
Sumobot 0:88a700f174a3 76 led3=!led3;
Sumobot 0:88a700f174a3 77 stx3();
Sumobot 0:88a700f174a3 78 Thread::wait(100); // Se esperan .1 segundos, para realizar la transmisiones.
Sumobot 0:88a700f174a3 79 device.putc(0XAA); // Se envía un mensaje en Hexadecimal, dado por GlobalStar
Sumobot 0:88a700f174a3 80 device.putc(0X05);
Sumobot 0:88a700f174a3 81 device.putc(0X04);
Sumobot 0:88a700f174a3 82 device.putc(0XFD);
Sumobot 0:88a700f174a3 83 device.putc(0X82);
Sumobot 0:88a700f174a3 84 Thread::wait(100); // Se esperan .1 segundos una vez que se terminaron de hacer las transmisiones
Sumobot 0:88a700f174a3 85 //El tiempo total de transmisión es; el wait previo a las transmisiones, el tiempo que tarda el Mu en enviar los datos y el wait posterior a la transmisión
Sumobot 0:88a700f174a3 86 RTS=1;
Sumobot 0:88a700f174a3 87 flag=1;
Sumobot 0:88a700f174a3 88 }
Sumobot 0:88a700f174a3 89 break;
Sumobot 0:88a700f174a3 90 }
Sumobot 0:88a700f174a3 91 }
Sumobot 0:88a700f174a3 92 }
Sumobot 0:88a700f174a3 93