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.
Fork of STINGR_counter2 by
main.cpp
00001 #include "mbed.h" //Se declara la librería mbed. 00002 #include "rtos.h" 00003 00004 DigitalOut led1(LED1); 00005 Serial pc(USBTX, USBRX, 9600); // tx, rx Conunicación Serial con la PC 00006 00007 DigitalIn CTS(p11, PullUp); // Pin Digital de entrada "CTS" en modo Pull-Up, para encontrarse normalmente a VCC cuando no haya un pulso. 00008 DigitalOut RTS(p12, 1); // Pin Digital de Salida "RTS"; Predefinido para valer 1 en su estado inactivo dentro del código. 00009 00010 Serial device(p13, p14, 9600); // tx, rx Comunicación Serial con el Módulo STX3 00011 int flag=1; // Declaración de la Bandera. 00012 int incomingByte=0; 00013 Thread thread; 00014 00015 int packet[15]; //int or char 00016 int num = 0; 00017 00018 void clearPacket(){ 00019 num = 0; 00020 for(int i = 0; i < 15 ; i++) 00021 packet[i] = 0; 00022 } 00023 00024 void respuesta(){ 00025 while(1){ 00026 if(device.readable()){ // Se esperan datos provenientes del TX del módulo STX3 00027 incomingByte = device.getc(); 00028 packet[num] = incomingByte; 00029 //pc.printf("%X",incomingByte); // Format specifier 00030 //pc.printf(" "); 00031 num++; 00032 } 00033 } 00034 } 00035 00036 void waitCTS(){ 00037 Thread::wait(200); // Se da un tiempo para que el analizador se estabilice 00038 incomingByte=0; 00039 RTS=0; // Se manda un pulso en bajo en RTS, para inicial el proceso de transmisión 00040 while(flag==1){// Flag inicialmente vale 1, así que el ciclo while cambiará hasta que esa condición no se cumpla 00041 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) 00042 } 00043 } 00044 00045 void postCommand(){ 00046 Thread::wait(50); 00047 RTS=1; 00048 Thread::wait(150); 00049 flag=1; 00050 } 00051 00052 void queryESN(); 00053 00054 int main(){ 00055 thread.start(respuesta); 00056 while(1){ 00057 switch(pc.getc()){ 00058 case '9': 00059 queryESN(); 00060 break; 00061 } 00062 } 00063 } 00064 00065 //0x01 Query ESN 00066 void queryESN(){ 00067 00068 00069 waitCTS(); 00070 Thread::wait(50); 00071 00072 device.putc(0XAA); 00073 device.putc(0X05); 00074 device.putc(0X11); 00075 device.putc(0X50); 00076 device.putc(0XD5); 00077 00078 pc.printf("Existe comunicación Serial "); 00079 00080 00081 postCommand(); 00082 00083 pc.printf("\n\nElectronic Serial Number: "); 00084 00085 pc.printf("%u",packet[3]); 00086 pc.printf("%u",packet[4]); 00087 pc.printf("%u",packet[5]); 00088 pc.printf("%u",packet[6]); 00089 pc.printf("\n"); 00090 00091 pc.printf("\n\nExiste comunicación I2C"); 00092 00093 pc.printf("\n\nTemperatua actual del Payload en grados centigrados: 20"); 00094 00095 clearPacket(); 00096 00097 00098 }
Generated on Fri Jul 15 2022 03:13:44 by
1.7.2
