volatile uint8_t flagRegister = 0; // Programmsteuerung durch verschiedene Flags volatile int32_t stepCount; // Anzahl der Schrittmotorschritte int32_t sm1_schritte; // Uebergebene Schtittmotorschritte int32_t vorher; // Intervall f. millis() uint8_t errorZaehler = 1; //////////////////////////////////////////////////////////////////////////////// // Schrittmotor Sinusrampe // https://www.arduinoforum.de/arduino-Thread-Sinus-Rampen-f%C3%BCr-den-Schrittmotor?pid=91095#pid91095 // //------------ BEGIN Rampenberechnung -------------- // Immer dran denken: // 'minSpeed'ist die große Zahl, 'maxSpeed' die kleine. //Hier kann herumexperimentiert werden! // schnellste Geschwindigkeit const uint16_t speedMax = 27; // 66.667Hz ohne Sinusrampe // langsamste Geschwindigkeit const uint16_t speedMin = speedMax + SM_SPEED_RANGE; // // Anzahl der Schritte innnerhalb der Rampe const uint16_t rampenLaenge = ( speedMin - speedMax ) / 4; // Ende des Herumexperimentierens :=) //--------- END Rampenberechnung ------------------- //volatile uint16_t rampeArray[ rampenLaenge ]; // //volatile uint16_t rampeArray2[ rampenLaenge ]; // //volatile uint16_t rampeArray3[ rampenLaenge ]; // uint16_t spanne; // UEBERGANG_SINUS - speedMax // Mit hoechsten Wert beginnen, also langsamste Geschwindigkeit volatile int16_t rampeArrayZeiger = rampenLaenge; // -1; //volatile int16_t rampeArrayZeiger = speedMin; // -1;