-
-
Erfahrener Benutzer
Roboter Genie
Mit Elektronik hat das meiner Meinung nach nichts zu tun, das ist ein reines Softwareproblem. Daher sollte dieser Thread in die Bascom Abteilung verschoben werden, da kann man Dir wahrscheinlich besser helfen.
Ich kenn' mich nicht aus in Bascom, aber für mich sieht es klar nach fehlender Rechnleistung aus. Solche zeitkritischen Dinge in Bascom zu lösen ist keine Option, denke ich.
Und dann auch noch mit diesem geringen Takt!!!
Bei Pulsbreiten von 0,1-2ms und davon 10% bist du im Bereich 10-x00µs. 10µs halbwegs reproduzierbar ist auch in C schon nicht einfach und wenn es dann auch noch Messwerte sind, die genau sein sollen, kommst Du meiner Meinung nach an Assembler nicht vorbei.
Hast Du mal verglichen, wie genau Deine Pulse verlängert werden? Und ob sie überhaupt alle verlängert werden? Vielleicht fehlt auch ab und zu mal einer, das ist schwer zu erkennen ohne gute Oszis.
Was da passiert ist folgendes: Bevor ein kompletter Rechenablauf für einen Puls beendet wird, kommt bereits der nächste Puls und die nächste Rechnung wird begonnen. Das geht dann solange gut, bis entweder der Stack überläuft und/oder bis ein kompletter Impuls nicht registriert wird, weil nur max 1 weiterer IRQ gespeichert werden kann.
Die Unregelmäßigkeit hängt vermutlich auch mit der Eingangspulsbreite zusammen. Mit einem niedrigen Eingangstakt wird es möglicherweise funktionieren.
Was Du machen kannst, ist, den Takt auf 16MHz zu erhöhen.
Das wird aber vermutlich nicht reichen. Also solltest Du alles aus dem Program nehmen, was nicht unbedingt gebraucht wird.
Division durch 400 ist kontraproduktiv. Daher solltest Du lieber mit einer Zahl multiplizieren, die ungleich 2^x ist, anstatt zu dividieren, wenn es unbedingt sein muss. Das könnte auch helfen, aber ich weiß nicht, wie Bascom das intern handhabt.
Wenn es einen "ShiftRight oder-Left" Befehl gibt, dann benutze den anstatt * oder / 256 usw.
Zeitmessungen macht man am elegantesten mit dem ICP Pin!
Vielleicht hilft es ja...
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen