Zitat Zitat von Mxt Beitrag anzeigen
Siehst du, Computer machen immer genau das, was man sagt. Das ist das Problem beim Programmieren.
Das musste ich auch schon von ca. 46 Jahren erfahren.


Zitat Zitat von Mxt Beitrag anzeigen
Ach ja, weiterhin macht eine Zeile wie
Code:
else if (dir == 1 && (micros() - M2_microsalt) > Schrittdauer) {
nicht das, was du glaubst.

Erstmal wird micros() - M2_microsalt berechnet. micros() liefert unsigned long, das wird in float umgewandelt und dann M2_microsalt abgezogen.

Dann muss Schrittdauer von unsigned int nach float umgewandelt werden, damit es verglichen werden kann.

Die ganze Zeile dauert wahrscheinlich etliche Mikrosekunden, weil der 8-Bit Prozessor die 32 Bit Werte nur in Häppchen verarbeiten kann.
Danke für den Tipp.
Wenn ich das richtig verstehe, sollte ich also M2_microsalt und Schrittdauer als unsigned long definieren?? Geht das dann schneller?

vG

fredyxx