it seems that _lastCheck, besides the name, was simply used as flag
to detect if _secTimeout is initialized. Now the check is removed
and _secTimeout is initalized in the proper place.
The two File classes have been enclosed into different namespaces.
To guarantee compatibility with old sketches that uses only one of the two
libraries an additional line:
using namespace xxxxx;
has been added so the users can still use "File" where there is no ambiguity.
BridgeLib::File and SDLib::File classes have been also aliased to BridgeFile
and SDFile respectively, users are encouraged to use that instead of File.
When using the stepper library with a 1.8 degrees per step motor, and at high angular speeds, the current Stepper library leads to really loud and jittery rotation. This is due to the fact that the timing is calculated in milliseconds, and the delay length between steps is only 2.5 milliseconds when trying to spin at 120 rpm. Since only integer math is performed, you end up actually bouncing between different step delays, and thus speeds, from step to step instead of giving the motor a constant input. Which causes the motor to freak out.
Changing the library to calculate the step delays in micros() solves that problem for any speed you can reasonably demand from your stepper motor. The down side is that the micros() counter rolls over every hour or so, and any move you perform after that point will hang your code. Easy fix for that is to add an || micros() - this->last_step_time < 0 to the while loop if statement in Stepper.cpp.
Previous commit broke the actual functionality. The code was confusing and worked until the previous commit.
The changes make it logically and functionally correct.
The SDClass class makes a reference to "SD.card" instead of just "card". SD is a global instance of SDClass.
This prevents any other instance of SDClass from functioning correctly.
The fix also allows SDClass to be used with an SD card which is removed and replaced, whereas previously, using the global instance SD did not allow this due to the limitation of begin() which cannot be called more than once.