Die mögliche Grenze wird durch die Anzahl der Befehle in der ISR bestimmt. Das kann man noch um Einiges verbessern.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Hallo mal wieder!
ISR ist die Interrupt Sub-Routine?? Wenn das so wär, dann würd ich verstehen, was du geschrieben hast, da ich ja fast mein ganzes programm da drin hab, ist das entsprechend langsam, sollte man also extra machen, und in die sub-routinnen so wenig wie möglich.
na gut, aber mein programm ist vom prinzip her schon ungeeignet, wie ich feststellen musste. ich muss die berechnungszeit viel zu groß machen, um eine vernünftige auflösung von 2,5 1/min hin zu kriegen (das wären 0,25s, möchten aber mit 10ms rechnen), schließlich kann ich das ungefähr mit den DACs auflösen bei 0bis 10000 1/min.
Dann muss ich also das Prinzip ändern und nicht impulse in einer festgelegten Zeit, sondern festgelegte Impulse und dann die Zeit messen.
Ich würde das dann gestaffelt machen, dass ich am amfang die zeit für einen Impuls zum nächsten messe und ab einer bestimmten drehzahl die zeit für mehrere impulse.
Bleibt erstmal nur die Frage: Wie kann ich die Zeit zwischen zwei impulsen bestimmen? Die Timer/Counter funktion kann nur ereignisse zählen, oder?, es müsste also was sein, was mit einem Impuls startet, mit dem nächsten wieder stoppt, und die zeit dann in ner variablen speichert.
Kannst du mir noch mal helfen?
Lesezeichen