Danke SprinterSB, werd ich morgen versuchen.

Aber bei der ISR les ich das UDR auch zweimal und dieses funktioniert richtig, d.h. die Byte stehen in der richtigen Reihenfolge im Array.

Irgendwie scheints so, als ob wenn er das if das erste Mal wahr ist (~ empfangen) auch das else abarbeitet.....


Bei dieser ISR stehen die Bytes in der richtigen Reihenfolge, ich benötige aber die Funktion der vorhin geposteten.


ISR (USART0_RXC_vect)
{
if(startbit == 1)
{
data_in[d]=UDR0;
d++;

}


if (UDR0 == '~')
{
startbit=1;
}


if(d == 5)
{
auswerten=1;
startbit=0;
d=0;
}
}