It is all very well writing code without using a library and I have done that for a DS3231 for a personal project to extend my knowledge. However, if I were to write code that needed maintenance or amendment by someone else I would be more likely to use a library as it almost certainly makes the code easier to understand and update
If you are writing a tutorial on the use of the DS3231 then it would probably be interesting to show how to use it both with and without a library
The matter of not using libraries wasn't my point, my point was:- what is the point of all this? Surely, it has all been done, so isn't this a case of reinventing the wheel and making a square one?
As things are, I'm not advocating dispensing with a library, it just happened to be the first method that worked for me, and I have stuck with it ever since. The code is more efficient, but I don't think there is much in it.
The matter of not using libraries wasn't my point, my point was:- what is the point of all this? Surely, it has all been done, so isn't this a case of reinventing the wheel and making a square one?
Galileo had no idea of telescope. He heard that someone in Europe had made a telescope. He could wait for that gadget to appear; instead, he acknowledged the possibility of making a telescope and he made his own one. What was the point for Galileo to undertake such a painful job of building a telescope from scratch - this was just to enjoy the beauty of the implementation of creative imagination?
There are many Libraries to handle I2CLCD and yet some people are making new libraries. Are they re-inventing the wheel or taking the pain to enjoy the beauty of creation by adding a little bit extra feature?
Let the world be more enjoyable having have more varieties of instances.
The change to checking if the seconds was different as opposed to checking for a difference of exactly 1 (erroneously at that) is similar to
checking for going beyond a value, not meeting it exactly, even if you can see right in front of you that the target value will not be skipped.
and
checking for going beyond a value, not meeting it exactly, like when you might miss an exact millisecond being counted off by millis(); or exactly 12:00:00.
There must be a name for that kind of (sometimes merely defensive) programming.
@GM "Let the world be more enjoyable having have more varieties of instances."