Version paralela con display grande y funciones adicionales
Dependencies: BufferedSerial mbed
Fork of ConduSe-Speedometer2 by
Diff: main.cpp
- Revision:
- 1:6f4d8d53996f
- Parent:
- 0:2f13a25aa470
- Child:
- 2:1219ed8d7039
--- a/main.cpp Tue Aug 30 22:31:44 2016 +0000 +++ b/main.cpp Wed Aug 31 18:42:25 2016 +0000 @@ -21,17 +21,23 @@ // HARDWARE SETUP //*********************************** extern BufferedSerial cp(PA_9, PA_10, BUFF_SIZE, TX_MULTIP); +//>>>>>>>> extern Serial usb(USBTX, USBRX); + extern DigitalOut display_unidades[7] = { - PA_12, PB_0, PB_7, PB_6, PB_1, PF_0, PF_1 -}; // a, b, c, d, e, f, g + PB_6, PB_1, PF_0, PF_1, PA_8, PA_11, PB_5 + }; // a, b, c, d, e, f, g + extern DigitalOut display_decenas[7] = { - PA_8, PA_11, PB_5, PB_4, PA_0, PA_1, PA_3 -}; // a, b, c, d, e, f, g + PA_7, PA_6, PA_5, PA_4, PA_3, PA_1, PA_0 + }; // a, b, c, d, e, f, g + extern DigitalOut display_centenas[2] = { - PA_4, PA_5 -}; // b, c -extern PwmOut myled(LED1); // Buzzer -extern RGBLed status_led(PA_2, PA_7, PA_6); // LED RGB + PA_2, PB_4 + }; // b, c + +extern RGBLed status_led(PA_12, PB_0, PB_7); // LED RGB +extern DigitalOut myled(LED1); // Buzzer + // //*********************************** @@ -40,10 +46,11 @@ { // CONFIGURAR PUERTOS cp.baud(9600); + //>>>>>>>> usb.baud(115200); + //>>>>>>>> usb.printf("INICIO!\r\n\r\n"); // DECLARACIÓN DE VARIABLES float velocidad_gps_actual = 0.0; - float velocidad_gps_previa = -1.0; int centenas = 0; int decenas = 0; int unidades = 0; @@ -52,7 +59,7 @@ int trama_recibida = 0; // Lógica de código int trama_valida = 0; // Lógica de código iniciar_data_cp(bytes_entrantes); - status_led.write(0.0, 0.0, 0.0); + status_led.write(1.0, 1.0, 1.0); // Iniciar display con -- iniciar_display7s(display_centenas, display_decenas, display_unidades); @@ -63,50 +70,57 @@ // Recibir datos de la trama del CP trama_recibida = recibir_respuesta_conduse(&cp, bytes_entrantes); - + + // Procesar trama recibida if (trama_recibida) { + //>>>>>>>> usb.printf("Trama recibida - OK\r\n"); wait_ms(50); trama_valida = validar_trama_conduse(bytes_entrantes); if (trama_valida) { + //>>>>>>>> usb.printf("Trama valida - OK\r\n"); wait_ms(50); extraer_velocidad_conduse(bytes_entrantes, &velocidad_gps_actual); if ((velocidad_gps_actual >= CONDUSE_MIN_VEL) && (velocidad_gps_actual <= CONDUSE_MAX_VEL)) { - if (velocidad_gps_actual != velocidad_gps_previa) { - - analizar_velocidad_conduse(&velocidad_gps_actual, - ¢enas, &decenas, &unidades); - // Enviar datos a Display - /* ************************************************** */ - // Segmento para prototipo: - presentar_velocidad(¢enas, &decenas, &unidades, - display_centenas, display_decenas, display_unidades); + analizar_velocidad_conduse(&velocidad_gps_actual, + ¢enas, &decenas, &unidades); + //>>>>>>>> usb.printf("Velocidad: %d %d %d\r\n", centenas, decenas, unidades); wait_ms(50); + + // Enviar datos a Display + /* ************************************************** */ + // Segmento para prototipo: + presentar_velocidad(¢enas, &decenas, &unidades, display_centenas, display_decenas, display_unidades); - actualizar_led(&velocidad_gps_actual, &myled, &status_led); - /* ************************************************** */ - contador_errores = 0; - } + actualizar_led(&velocidad_gps_actual, &myled, &status_led); + /* ************************************************** */ + contador_errores = 0; + } else { + //>>>>>>>> usb.printf("Velocidad fuera de rango - ERROR\r\n"); wait_ms(50); contador_errores++; } } else { + //>>>>>>>> usb.printf("Trama valida - ERROR\r\n"); wait_ms(50); contador_errores++; } } else { + //>>>>>>>> usb.printf("Trama recibida - ERROR\r\n"); wait_ms(50); contador_errores++; } if (contador_errores>=5) { // Presentar mensaje de error + //>>>>>>>> usb.printf("Display7s -> EEE\r\n"); wait_ms(50); mostrar_error7s(display_centenas, display_decenas, display_unidades); + status_led.write(1.0, 1.0, 1.0); } // Limpiar variables iniciar_data_cp(bytes_entrantes); - velocidad_gps_previa = velocidad_gps_actual; + myled = !myled; wait(1); // } } \ No newline at end of file