Hi there,
Thanks for keeping up the best developing work on the Arduino. I think I found a bug:
unsigned long lastSecondLaserTriggedTime=0;
unsigned long lastFirstLaserTriggedTime=0;
long lowestLaserTriggedTimeInterval=2^20; // initiate it to a very high value
long passedTimeTemp=0; // only used in interrupts
lastSecondLaserTriggedTime = 100;
lastFirstLaserTriggedTime = 1000;
passedTimeTemp = abs(lastSecondLaserTriggedTime - lastFirstLaserTriggedTime);
Serial.println(passedTimeTemp);
If you'd take the above code it return a negative value! I guess the arguments to ABS (called overloading?) are performing correctly.
To fix I had to do like this:
unsigned long lastSecondLaserTriggedTime=0;
unsigned long lastFirstLaserTriggedTime=0;
long lowestLaserTriggedTimeInterval=2^20; // initiate it to a very high value
long passedTimeTemp=0; // only used in interrupts
lastSecondLaserTriggedTime = 100;
lastFirstLaserTriggedTime = 1000;
passedTimeTemp = lastSecondLaserTriggedTime - lastFirstLaserTriggedTime;
passedTimeTemp = abs(passedTimeTemp);
Serial.println(passedTimeTemp);
Is this a known bug ?