Hi Paul,
sorry für die späte Antwort… ich war in den letzten Tagen verhindert.
Zur Drehzahlkontrolle habe ich gleich mal einen Gegenfrage: Wie sieht denn die Drehzahlkontrolle aus? Kann ich mir das in etwa so vorstellen:
(1) Drehzahl abfragen
(2a) Wenn zu niedrig => Drehzahl erhöhen
(2b) Wenn zu hoch => Drehzahl verringern
Oder ist es komplizierter?
Ganz allgemein solltest Du Dir vielleicht mal das Nassi-Shneiderman-Diagramm ansehen:
http://de.wikipedia.org/wiki/Nassi-Shneiderman-Diagramm
Damit lassen sich Schleifen, Fall-Unterscheidungen, usw. viel übersichtlicher darstellen. Auf der Wiki-Seite gibt es auch ein paar Links zu freien Editoren, mit denen sich die Diagramme erstellen lassen. Den „Structorizer“ (http://structorizer.fisch.lu/) habe ich mir kurz angesehen, und der macht auf den ersten Blick einen guten Eindruck. Einfach zu bedienen (sogar mit deutschsprachiger Oberfläche) und die Diagramme können als PDF exportiert werden.
Die Frage nach der Latenzzeit ist nicht global zu beantworten, weil sie stark von der Plattform abhängt. Windows ist z.B. kein Echtzeit-Betriebssystem. Die Ausführung der einzelnen Programmschritte erfolgt zwar innerhalb von Mikrosekunden, aber es laufen ja immer gleichzeitig eine Vielzahl von Prozessen. Es ist daher nicht sicher, dass während der Ausführung des Steuerungs-Programms nicht mal eine längere Pause eingelegt wird. Im „worst case“ (je nach Rechnerauslastung) kann es durchaus passieren, dass das Programm mal mehrere Sekunden überhaupt nicht abgearbeitet wird. Unter Windows kann man die Latenzzeiten also keineswegs vernachlässigen. Das lässt sich zwar optimieren, indem dem Steuerungsprogramm z.B. eine höhere Priorität zuweist, aber eine Echtzeit-Garantie gibt es nicht.
Anders sieht das bei Mikrocontrollern aus. Die werden ausschließlich für ihre jeweilige Aufgabe programmiert und müssen nicht nebenbei noch jede Menge andere Dinge erledigen.
Gruß
Uwe