Gast
#635212
Hallo, ich hab hier einen Code mit dem ich 5 Zeichen über die Uart
empfangen will. die zeichen werden auch definitiv vom PC gesendet, das
hab ich schon überprüfft.
ich speicher die zeichen in einem unsigned char array und geb sie dann
wieder an den PC aus. allerdings fehlt dabei immer 1 zeichen, meistens
das 2 zeichen.
z.b. bei "test1" kommt nur "tst1" zürück.
das senden eines arrays klappt ohne jegliche probleme, mit den gleichen
einstellungen was baudrate und co angeht,das hab ich auch schon in nem
anderen teil programmiert. ich vversteh aber nicht warum dies so
problematisch ist. hab in der while (z<=4) schon diverse reihenfolgen
der zeilen ausprobiert, so klappt es noch am besten bei mir.
unsigned char test[5];
unsignede char z;
int main(void)
{
UCSRC |= (1<<URSEL)|(3<<UCSZ0); // Asynchron 8N1
UBRRH=0;
UBRRL =53; /* Faktor aus ((CPU_C/(Boud*16))-1); */
UCSRB &= ~(1<<TXEN); //deaktiviert das Senden über Uart
UCSRB |= (1<<RXEN); //aktiviert das Empfangen über Uart
while(1)
{
if (UDR!=0)
{
while (z<=4)
{
test[z]=UDR;
z++;
while (!(UCSRA & (1<<RXC))) {}
}
z=0;
}
}