En primer lugar, me disculpo en caso de cometer algunos errores al publicar esta pregunta. Estoy escribiendo desde Argentina y estoy tratando de enviar datos desde ATmega32 (a través de UART) a ESP8266, y ESP8266 vuelve a transmitir estos datos en el aire (a través de WiFi).
El problema es que a algunos datos les faltan ALGUNAS VECES, y algunas veces se envían OK.
Por ejemplo, si envío valores de voltaje, frecuencia y corriente, me gustaría recibir en mi computadora estos datos en una secuencia cíclica, como la siguiente
"220.00" [V] "10.000" [A] "50.00" [Hz] "220.00" [V] "10.000" [A] "50.00" [Hz] "220.00" [V] "10.000" [A] "50.00" [Hz]
Sin embargo, veo algo como esto
"220.00" [V] "50.00" [Hz] "220.00" [V] "10.000" [A] "50.00" [Hz] "220.00" [V] "50.00" [Hz]
Como ve, faltan algunos datos (no siempre el mismo campo, ni todo el tiempo).
El código es el siguiente.
int main(void)
{
char _buffer[150];
uint8_t Connect_Status;
USART_Init(); /* Initiate USART with 115200 baud rate */
sei(); /* Start global interrupt */
while(!ESP8266_Begin());
ESP8266_WIFIMode(BOTH_STATION_AND_ACCESPOINT);/* 3 = Both (AP and STA) */
ESP8266_ConnectionMode(SINGLE); /* 0 = Single; 1 = Multi */
ESP8266_ApplicationMode(NORMAL); /* 0 = Normal Mode; 1 = Transperant Mode*/
if(ESP8266_connected() == ESP8266_NOT_CONNECTED_TO_AP)
ESP8266_JoinAccessPoint(SSID, PASSWORD);
ESP8266_Start(0, DOMAIN, PORT);
while(1)
{
Connect_Status = ESP8266_connected();
if(Connect_Status == ESP8266_NOT_CONNECTED_TO_AP)
ESP8266_JoinAccessPoint(SSID, PASSWORD);
if(Connect_Status == ESP8266_TRANSMISSION_DISCONNECTED)
ESP8266_Start(0, DOMAIN, PORT);
switch (counter)
{
case 0: memset(_buffer, 0, 150);
sprintf(_buffer,"220.00");
ESP8266_Send(_buffer);
counter++;
_delay_ms (500); /* Thingspeak server delay */
break;
case 1: memset(_buffer, 0, 150);
sprintf(_buffer,"10.000");
ESP8266_Send(_buffer);
counter++;
_delay_ms(500); /* Thingspeak server delay */
break;
case 2: memset(_buffer, 0, 150);
sprintf(_buffer,"50.00");
ESP8266_Send(_buffer);
counter++;
_delay_ms(500); /* Thingspeak server delay */
break;
}
}
}
Gracias por cualquier ayuda.