-> Hier kostenlos registrieren
Servus in die Runde,
ich stehe gerade vor einer eigentlich recht simplen Aufgabe, ich muss mehr oder weniger eine Nockenwellen ersetzen und Winkel abhängig bei einer Umdrehungen verschieden Funktionen aufrufen, schalten und verwalten. Die Winkel Position bekomme ich über einen Inkrementalgeber über schnelle Zähler. Die Funktionen sehen dann einfach so aus das sie von 45° bis 50° = F1, 20° bis 40° = F2,... u.s.w.
Zur Zeit mache ich das ohne Interrupts und vergleich im Unterprogramm die Werte des Zählers mit den Einstellungen. Jetzt habe ich aber eine Verzögerung von 1ms und ein schwanken von 1ms wenn ich einen Ausgang schalte, sprich die Funktion wird mal 1ms nach erreichen des Winkels und mal 2ms nach erreichen des Winkels aufgerufen. Das Programm besteht dabei auch nur aus dieser kleinen Funktion, Zähler Auslesen, vergleichen, schalten. Und das ist recht Drehzahl unabhängig. Stören tut mich nicht die 1ms Verzögerung sondern das schwanken was ich nicht so einfach kompensieren kann.
Jetzt kann ich den Zähler ja mit einem Wert vorladen bei dem der Interrupt aufgerufen wird, nur habe ich fast 20 Werte und müsste diese ja jeweils Vorladen. Da sie aber per Display verändert werden müsste man sie ja vorher sortieren damit beim Int. der nächste wert und Funktion in den Zähler und Int. geladen wird. Dafür fehlt mir aber gerade jeglicher Ansatz :???:.
Lg Malte
ich stehe gerade vor einer eigentlich recht simplen Aufgabe, ich muss mehr oder weniger eine Nockenwellen ersetzen und Winkel abhängig bei einer Umdrehungen verschieden Funktionen aufrufen, schalten und verwalten. Die Winkel Position bekomme ich über einen Inkrementalgeber über schnelle Zähler. Die Funktionen sehen dann einfach so aus das sie von 45° bis 50° = F1, 20° bis 40° = F2,... u.s.w.
Zur Zeit mache ich das ohne Interrupts und vergleich im Unterprogramm die Werte des Zählers mit den Einstellungen. Jetzt habe ich aber eine Verzögerung von 1ms und ein schwanken von 1ms wenn ich einen Ausgang schalte, sprich die Funktion wird mal 1ms nach erreichen des Winkels und mal 2ms nach erreichen des Winkels aufgerufen. Das Programm besteht dabei auch nur aus dieser kleinen Funktion, Zähler Auslesen, vergleichen, schalten. Und das ist recht Drehzahl unabhängig. Stören tut mich nicht die 1ms Verzögerung sondern das schwanken was ich nicht so einfach kompensieren kann.
Jetzt kann ich den Zähler ja mit einem Wert vorladen bei dem der Interrupt aufgerufen wird, nur habe ich fast 20 Werte und müsste diese ja jeweils Vorladen. Da sie aber per Display verändert werden müsste man sie ja vorher sortieren damit beim Int. der nächste wert und Funktion in den Zähler und Int. geladen wird. Dafür fehlt mir aber gerade jeglicher Ansatz :???:.
Lg Malte