Hallo Zusammen Ich habe eine CNC Steuerung entwickelt, die auf einer Standard PC Hardware läuft. Alls Betriebssystem ist FreeDOS im Einsatz. Die Steuerung gibt Takt/Richtungssignale über den LPT Port aus, die dann die Servoantriebe der Maschine steuern. So weit so gut, die Steuerung läuft sehr zuverlässig und sehr stabil. Nun zu meinem Problem: Das Takt signal wird nicht sauber erzeugt, und dadurch laufen die Antriebsmotoren nicht ruhig. Das Signal ist vergleichbar mit einem PWM Signal. Hier ein kleines Test-Programm in PowerBASIC zur Takt Erzeugung: OUT (&H61), INP(&H61) OR 1 'Lautsprecher und damit Zähler 2 aktivieren OUT (&H21), 252 'Interrupts maskieren OUT (&H43), &b10110000 '10110000bin 8253 Zähler 2 auf Modus 0 setzen pause?? = 10000 for a = 1 to 10 out (&h378),&b00000010 'Takt Signal EIN OUT (&H42), 255 'Zähler mit 65535 laden OUT (&H42), 255 DO a? = INP(&H42) 'Zähler auslesen b?? = INP(&H42) shift left b??,8 b?? = a? + b?? loop until b?? < pause?? 'Ist Zähler kleiner als Sollwert out (&h378),&b00000000 'Takt Signal AUS next Diese Methode ist nicht optimal, weil ich manchmal bei Zählerstand 9999, oder 9985, oder 9980, das PWM-bit auf 0 setze. Und somit ist mein PWM Signal nicht schön konstant. Gibt es eine möglichkeit mit interrupts zu arbeiten ? Damit mein PWM Signal immer mit genau der gleichen frequenz kommt ? Ich hoffe mir kann da jemand weiter helfen Gruss Michael
Kennt sich denn niemand mit Timer, Counter oder Interrupts aus ? Oder hat jemand eine andere Lösung ?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.