void enc28j60ReadBuffer(uint16_t len, uint8_t* data) { uint8_t lenpart; CSACTIVE; // issue read command SPDR = ENC28J60_READ_BUF_MEM; waitspi(); /* while(len) { len--; // read data SPDR = 0x00; waitspi(); *data = SPDR; data++; }*/ //Komplizierter, aber schneller, da weniger 16Bit vergleiche gemacht werden müssen, bringt 20kb/sec mehr //Die Daten werden in Blöcke à 256 bytes oder kleiner eingeteilt, somit muss nach jedem gesendeten Byte //keine 16bit Zahl mehr verglichen werden, sondern bloss eine mit 8bit while(len){ if(len<256) { lenpart = (uint8_t)len; len = 0; } else { lenpart = 255; len-=255; } for(uint8_t h=lenpart;h>0;h--) // Gegen Null Zählen, führt zu schnellerer Codeausführung { // read data SPDR = 0x00; waitspi(); *data = SPDR; data++; } } *data='\0'; CSPASSIVE; } void enc28j60WriteBuffer(uint16_t len, uint8_t* data) { uint8_t lenpart; CSACTIVE; // issue write command SPDR = ENC28J60_WRITE_BUF_MEM; waitspi(); /* while(len--) { //len--; // write data uint8_t z = *data; SPDR = z; data++; while(!(SPSR & (1<0;h++) { // read data uint8_t z = *data; SPDR = z; data++; while(!(SPSR & (1<