Answer the question
In order to leave comments, you need to log in
Why are bytes sent via com to arduino missing?
There was a problem: when sending data to arduino, 1-2 bytes of information periodically disappear. For verification, I sent the same line several times. As you can see below, the correct result was obtained only once. Debug output and code attached. Am I such a krivoruk, or cant in something else?
Problematic section of code
char inpbyte,rowbyte1, rowbyte2;
int row = 0;
int x = 0;
while (true) {
if (Serial.available() > 0)
{
inpbyte = Serial.read(); //читаем байт из буфера
if (inpbyte == 'Z') { // проверка на признак новой строки битмапа
TV.clear_screen();
Serial.println("--------------------");
Serial.println("New string "); //плюемся в монитор порта отладочной строкой
rowbyte1= Serial.read(); //читаем первый hex-символ номера строки
rowbyte2= Serial.read(); //читаем второй hex-символ номера строки
row = ReadHexByte(rowbyte1,rowbyte2); //преобразовываем символы в номер строки
Serial.println(rowbyte1); //плюемся в монитор порта отладочной строкой
Serial.println(rowbyte2); //плюемся в монитор порта отладочной строкой
Serial.write("Row "); //плюемся в монитор порта отладочной строкой
Serial.println(row,HEX); //плюемся в монитор порта отладочной строкой с номером строки
TV.print(10,10,row); //выводим номер строки на тв. чтоб наверняка
x=0; //сбрасываем счетчик пикселей в строке
}
else { //если конца строки не предвидится,
TV.set_pixel(x,row, inpbyte-'0'); //то выводим пиксель соответствующего цвета (0 или 1)
x++; //накидываем счетчик пикселей, чтоб не топтаться на месте
}
}
}
--------------------
New string
0
3
Row 3
--------------------
New string
0
3
Row 3
--------------------
New string
0
2
Row 2
--------------------
New string
0
1
Row 1
--------------------
New string
0
3
Row 3
Answer the question
In order to leave comments, you need to log in
The code is terribly crooked. It is necessary to change the architecture - not to wind cycles in vain while waiting for a byte, but to respond only to an interrupt.
Well, look at the sender code, maybe there is no check for an error when sending.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question