Schrittmotorsteuerung: Unterschied zwischen den Versionen

Aus Hackerspace Ffm
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „Wieso zum Geier schreibe ich den ixten Schrittmotor Steuerungssoftware.... ... Um zu lernen :) Was lernt man dabei... sehr viel kann ich nur sagen! Erst mal vi…“)
 
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 5: Zeile 5:
 
Was lernt man dabei... sehr viel kann ich nur sagen!
 
Was lernt man dabei... sehr viel kann ich nur sagen!
  
Erst mal vielen Dank an Lutz für die Zahlreichen Tips und Hilfe beim Programmieren.  
+
Erst mal vielen Dank an Lutz für die zahlreichen Tips und Hilfe beim Programmieren.  
  
 
Hier grob eine Auflistung was ich bei diesen Projekt an Erfahrungen gesammelt habe.
 
Hier grob eine Auflistung was ich bei diesen Projekt an Erfahrungen gesammelt habe.
Zeile 19: Zeile 19:
 
brutto 1600 CPU Takte. Von den theoretischen 1600 Takten müsste man aber noch die  
 
brutto 1600 CPU Takte. Von den theoretischen 1600 Takten müsste man aber noch die  
 
Umschaltzeit abziehen die der Interrupt für Aufruf und Rücksprung benötigt. Dann natürlich
 
Umschaltzeit abziehen die der Interrupt für Aufruf und Rücksprung benötigt. Dann natürlich
die Takte, die die Befehle die innerhalb des Interrupts ausgeführt werden benötigen.
+
die Takte, die Befehle die innerhalb des Interrupts ausgeführt werden benötigen.
 
Und, meistens hat man ja auch noch Befehle die in der Hauptschleife laufen.  
 
Und, meistens hat man ja auch noch Befehle die in der Hauptschleife laufen.  
 
Summa summarum kann 1600 CPU Takte schnell knapp werden.
 
Summa summarum kann 1600 CPU Takte schnell knapp werden.
  
 
- Ergo, will man mit den 1600 CPU Takte effektiv wie möglich umgehen.
 
- Ergo, will man mit den 1600 CPU Takte effektiv wie möglich umgehen.
Effektiv bedeutet hier, möglichst 100% der Takte nutzen die man zu verfügung hat.
+
Effektiv bedeutet hier, möglichst 100% der Takte nutzen die man zur Verfügung hat.
 
Sprich, Codeoptimierung ist das A und O.
 
Sprich, Codeoptimierung ist das A und O.

Aktuelle Version vom 28. Januar 2015, 11:44 Uhr

Wieso zum Geier schreibe ich den ixten Schrittmotor Steuerungssoftware....

... Um zu lernen :)

Was lernt man dabei... sehr viel kann ich nur sagen!

Erst mal vielen Dank an Lutz für die zahlreichen Tips und Hilfe beim Programmieren.

Hier grob eine Auflistung was ich bei diesen Projekt an Erfahrungen gesammelt habe.

Learnings beim Arduino Programmierung: - digitalWrite von Arduino Library ist lahm. Wenn man ein kurzen Puls generieren möchte, muss man direkt die 8 bit Register für die Digital Ports ansprechen.

- Je nach Atmel gibt es unterschiedliche Interrupts die je nach Anwendung passend ist.

- Die 16.000.000 Hz für ein Mikroprozessor kling auf den ersten blick recht viel. Aber, auch wenn man nur 10 kHz an puls via Interrupt erzeugen möchte, hat man Zwischen den Interrupt aufrufe brutto 1600 CPU Takte. Von den theoretischen 1600 Takten müsste man aber noch die Umschaltzeit abziehen die der Interrupt für Aufruf und Rücksprung benötigt. Dann natürlich die Takte, die Befehle die innerhalb des Interrupts ausgeführt werden benötigen. Und, meistens hat man ja auch noch Befehle die in der Hauptschleife laufen. Summa summarum kann 1600 CPU Takte schnell knapp werden.

- Ergo, will man mit den 1600 CPU Takte effektiv wie möglich umgehen. Effektiv bedeutet hier, möglichst 100% der Takte nutzen die man zur Verfügung hat. Sprich, Codeoptimierung ist das A und O.