Gast
#407571
Hallo, weiss jemand wie ich mir eine Verzögerung basteln kann? Also, ich benötige eine Verzögerung für die Ansteuerung eines Schrittmotors. Ich arbeite mit der Entwicklungsumgebung Visual Studio 2005 und programmiere in C++ (MFC). Ich habe bereits versucht, mir eine Verzögerung mit Hilfe des Time Stamp Registers zu basteln. Das hat auch funktioniert, allerdings sind die Zeitabstände nicht immer gleich und gleiche Zeitabstände benötige ich für die Ansteuerung des SM. Der Schrittmotor sollte eine Arbeitsgeschwindigkeit von ungefähr 1mm/sec haben. Der Motor benötigt für 1mm genau 400 Schritte, d.h. ich benötige eine Verzögerung von 1.25ms, dann würde der Motor alle 2.5ms (mit fallender Flanke) einen Schritt machen. Damit ich den Motor beschleunigen und abbremsen und auch langsamer fahren kann müsste die Verzögerung varriert werden können. Ich möchte die Verzögerung in meinem C++ Programm aufrufen, etwa so: delay(us). Der Timer sollte us-Genauigkeit oder besser besitzen. Mittlerweile bin ich soweit, dass ich sagen kann das ganze mit Hilfe eines geeigneten Timer-/Counter-Bausteins oder einem Mikrocontroller zu realisieren. Nur leider habe ich keine Ahnung wie ich da rangehen soll. Die CPU-Frequenz müsste auf jeden Fall fest sein, dann könnte man doch sicherlich änlich wie es bei dem Time Stamp Register der Fall ist das Counter Register mit jedem Takt erhöhen und dieses Register für die Verzögerung auslesen. Nur ist es möglich den Code als Inline-Assembler in C++ zu integrieren? Fragen über Fragen Vielleicht könnt ihr mir dabei helfen Viele Grüsse Olli