How to reset micros() to start/zero ?

So, please, don't be so hard on me.

Just trying to keep you out of trouble.

Still, I have checked the whole code and I still don't understand why it would crash anything just by messing out with one variable that only micros() uses.

The one multibyte variable is shared with an interrupt service routine. To obtain the micros value, the variable is combined with a hardware register. Your reset code ignores both of those very important elements.

Even if you do correctly reset the value, if you ever add a library that uses millis or micros the library will behave erratically when the value is reset.