Valor de variable incorrecto.

Hola a todos:

Tengo el problema que se ve en este video, a partir del segundo 20 aproximadamente:

Estoy enviando desde el PIC el valor 40.000, en dos bytes. Primero llega el byte
156, y despues el byte menos significativo: 64

Ese valor 40.000, corresponde a la cuenta de pulsos en el PIC para una señal
de 100hz de frecuencia.

Para recuperar el valor de esa señal de 100Hz, tengo que dividir 4.000.000 por 40.000
antes de presentarlo por el display LCD.

Pero antes de eso, tendria que resolver el problema del segundo byte(64), que alterna
con el 156 al comienzo de la ejecucion del programa, pero que despues desaparece,
mostrando en el display, solo el byte 156.

Que puede estar pasando con el codigo?

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

int inByte = 0; // for incoming serial data uart

void setup()
{
Serial.begin(57600); // opens serial port, sets data rate to 57600 para virtual terminal 
delay(500); // uart
}


void loop()

{
  
inByte=Serial.read(); 

lcd.clear();
lcd.setCursor(0,1);
Serial.println(inByte);
lcd.println(inByte);


delay(10);
}

Moderador:
Edita el enlace usando etiquetas.

Tengo el problema que se ve en este video, a partir del segundo 20 aproximadamente:

Arduino problema con variable. - YouTube

NO se cual es el PIC, ahí veo un NANO.

llega 156, y despues el byte menos significativo: 64

Los bytes se envian con peso binario: 156 * 256 + 64 = 40000

El MSB tiene un peso 256 y el otro lo sumas tal como esta. La suma te da 40000.

Hola surbyte, gracias por responder.

El pic aparece al principio del video, pero queda oculto debajo del
terminal virtual (centro) conectado a la salida TX del pic, entrada RX del nano.

El terminal virtual de la izquierda, esta conectado en la salida TX del nano.

Al comienzo el nano muestra en el LCD y en el monitor, la secuencia correcta de bytes
156-64-156-64-etc, y asi sigue hasta el segundo 24, momento a partir del cual, el LSB
desaparece, y solo presenta el byte mas significativo: 156 y el segundo byte desaparece la mayor parte del tiempo.

El sketch tiene algun fallo de programacion que no se de donde proviene.

En el terminal virtual conectado a la salida del pic, los bytes 156 y 64, alternan de forma correcta.

Y tu problema es que en un simulador tu NANO no recibe los datos?
Pense que hablabas de un problema que existía en un NANO real.

El problema que veo que los valores llegan demasiado rápido y es posible que el buffer del NANO luego de recibir tantos datos se bloquee y solo libere uno de ellos.
Mi consejo es que modifiques el código del emisor en este caso el PIC y que lo envíe mas lentamente.
La otra alternativa que no es fácil es ampliar el buffer de recepción del Arduino.

El problema que veo que los valores llegan demasiado rápido y es posible que el buffer del NANO luego de recibir tantos datos se bloquee y solo libere uno de ellos.

Sospechaba algo asi, como si el contenido de la variable inByte, se apilara
una arriba de la otra.

Voy a intentar lo que me recomendás.

El visual code studio sirve para depurar codigo arduino?

Se puede x ejemplo , ejecutar codigo paso a paso, ver contenido de variables, o ingresarle
valores al arduino por los pines de entrada ?.

Esa en una capacidad muy util que tiene el simulador del MPlab de microchip, para depurar los programas.

Algo asi para sketchs arduino. O para ATmega, si pasamos el codigo de C++ a ensamblador:

No se puede. En el nuevo IDE PRO pero esta en versión Beta (creo) se puede.

IDE pro beta, gracias x el dato.