Jonathan Moreno
/
PYL_v7_1
AguilaBoard program. No library.
Fork of PYL_v6 by
main.cpp@0:88a700f174a3, 2017-10-27 (annotated)
- 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?
User | Revision | Line number | New 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 |