#define MAX_STRING_SIZE 256 #define DIVIDER 0 char * myString; int stringPosition = 0; byte counter = 0; byte subCounter = 0; void setup(){ Serial.begin(9600); myString = (char *)malloc(sizeof(char) * MAX_STRING_SIZE); memset(myString, 0xff, MAX_STRING_SIZE); } void serialEvent(){ while(Serial.available()){ myString[stringPosition++] = Serial.read(); } if(myString[stringPosition - 1] == '\r' || myString[stringPosition - 1] == '\n'){ // Uncomment to write the counter that is incremented by loop() //Serial.write(counter); Serial.write(stringPosition); memset(myString, 0xff, MAX_STRING_SIZE); stringPosition = 0; } } void loop(){ if(subCounter++ % DIVIDER == 0){ counter++; } }