statt mit einem pointer das array zu befüllen wwürde ich mit 2 inizes arbeiten
ACHTUNG dieser code kann rechenfehler beinhalten, aber so ungefähr habe ich das gelöstCode:int writecount; int readcount; ISR(){ Buff[writecount++] = RxByte; } ... bytestoread = writecount - readcount; if (bytestoread < 0) bytestoread += buffsize; if (bytestoread > 1) { // mehr als 2 bytes empfangen (also auch das längebyte) if ((bytestoread > buff[readcount+1]+2) // ausreichend bytes anhand der länge im paket ? && (getCRC(&buff[readcount]) == buff[buff[readcount+1]+2])) { // crc nachrechnen und mit der im paket vergleichen doyourwork(); } }







Zitieren

Lesezeichen