Hasibeder Thomas schrieb:
> Danke! Dein Programm läuft auch ja!
>
> Pulsweitenmessung sollte Funktionieren.
Was heißt 'sollte'?
Funktioniert sie oder funktioniert sie nicht!
Wenn du es nicht weißt, dann musst du dir eben einen Test überlegen, mit
dem du das feststellen kannst. Und zwar einen möglichst einfachen Test,
damit die Chance, dass du im Test selbst wieder Fehler hast möglichst
gering ist.
Gleich mal mit dem ermittelten Wert wieder auf eine PWM zu gehen, ist
für einen Profi vielleicht ein gangbarer Test-Weg, für einen Neuling
aber eher nicht. Für einen Neuling wäre der allerbeste 'Test', sich den
ermittelten Wert auf einem LCD oder über UART auszugeben, damit man die
Zahlenwerte sieht. Leider denken Neulinge immer, ausgerechnet sie sind
die Wunderwuzzi, die so etwas nicht brauchen und daher planen sie auch
bei ihren ersten Projekten keine Ausgabemöglichkeit ein. Was regelmässig
immer wieder zu Problemen führt. Aber gut, ist halt so.
Dann muss eben Plan B greifen und man muss den Test auf die aufwändige
Art und Weise machen: Eine LED an einem Ausgangspin. Ist der ermittelte
Messwert größer als eine Grenze, wird sie eingeschaltet, ist er kleiner
wird die LED ausgeschaltet. Durch Variation der Grenze kann man dann den
ermittelten Wert auch einigermassen gut feststellen. Was bei dir
natürlich insofern ganz gut funktioniert, weil du dann die LED 'vom
Fernsteuersender aus' durch Knüppelbewegung ein bzw. ausschalten können
müsstest und durch verändern des Grenzwertes im Programm den Schaltpunkt
am Knüppel 'verschieben' kannst.
Ohne so einen Test, bei dem man sich davon überzeugt, dass die
ermittelten Werte auch tatsächlich so sind wie sie sein sollten, ist es
jedenfalls unklug, da gleich mal die nächste Stufe - Ansteuerung
Motortreiber mittels PWM - drauf zu setzen. Du hast dann 2 Teilsysteme
im Programm, von denen du nicht weißt ob sie funktionieren oder nicht.
Alles was du siehst ist: nichts geht. Aber du hast keine Ahnung warum.
Sind die ermittelten Werte falsch oder ist die Motoransteuerung
fehlerhaft?
Und nein: nur weil der Compiler keinen Senf mehr zu deinem Programm dazu
gibt, heißt das noch lange nicht, dass es funktioniert. Der Compiler
kümmert sich darum, dass deine Grammatik korrekt ist. Um die Logik in
deinem Programm musst du dich schon selbst kümmern. Der Herr Duden hat
auch an dem Satz "Das Flugzeug strickt die Weltmeere." erst mal nichts
auszusetzen. Grammatikalisch ist alles korrekt. Aber die Logik, die
Bedeutung, ist völlig daneben.