G26-Telemetry-Software/G26-Telemetria.ino
Alejandro Guerrero 72dc48807d perf(serial): aumentar velocidad del puerto a 2.000.000 baudios
Se eleva la tasa de transferencia del puerto Serie al máximo régimen estable soportado por el microcontrolador (2 Mbps). Esta optimización reduce drásticamente el tiempo de bloqueo de la CPU al imprimir mensajes de depuración, liberando ciclos de reloj que son vitales para garantizar la lectura ininterrumpida del bus CAN y soportar la futura carga de la pila Wi-Fi/UDP.
2026-02-23 15:57:34 +01:00

59 lines
1.4 KiB
C++

#include <Arduino.h>
#include <SPI.h>
#include "SdFat.h"
#include "include/can.hpp"
#include "include/data_processor.hpp"
// --- CONFIGURACIÓN SD (VSPI) ---
#define SD_CS_PIN 5
#define SPI_CLOCK SD_SCK_MHZ(20)
SdFat sd;
SdFile logFile;
// Instancias
CAN can_interface;
DataProcessor processor;
void setup() {
Serial.begin(2000000);
delay(1000);
Serial.println("\n--- G26 TELEMETRY: INICIO DE SISTEMA ---");
// 1. INICIALIZACIÓN SD
if (!sd.begin(SD_CS_PIN, SPI_CLOCK)) {
Serial.println("[FALLO] SD no detectada. El sistema continuará sin Datalogging.");
} else {
if (logFile.open("G26.csv", O_RDWR | O_CREAT | O_APPEND)) {
// Si el archivo es nuevo (tamaño 0), escribimos la cabecera
if (logFile.fileSize() == 0) {
logFile.println("Time,ECT");
logFile.sync();
}
// El archivo se queda abierto y listo.
Serial.println("[OK] Archivo abierto");
} else {
Serial.println("[ERROR] No se pudo abrir el archivo G26.csv");
}
}
// 2. VINCULACIÓN
// Le damos al procesador acceso a la SD para que guarde cuando lleguen datos
processor.setLogSystem(&sd, &logFile);
can_interface.set_data_proccessor(&processor);
// 3. INICIO CAN
can_interface.start();
can_interface.start_listening_task(); // Escucha en Core 1 (Background)
Serial.println("[OK] Sistema ONLINE.");
}
void loop() {
delay(100);
}