Hallo zusammen. Der Threadtitel klingt erstmal komisch, aber ich kann mein Problem grad nicht anders zusammenfassen. Mein Problem ist, ich hab einen uC (STM8L151) mit dem internen RC-Oszi auf 38 kHz laufen. An einem Pin zum Timer1 liegt einmal pro Sekunde für 10 ms ein Taktsignal mit 135 kHz an. Jetzt dachte ich mir ich geh einfach hin und nutze dieses externe Signal als Clock für den Timer1 und lese den Timerwert dann einmal pro Sekunde aus. Soweit funktioniert das auch im Prinzip. Jedoch kommt der Timer nicht wie vorgesehen auf 1350 (soviele positive Flanken kommen in den 10 ms an; das ist auch mit einem Oszi überprüft) sondern nur 144. Meine erste Vermutung war, dass ich irgendwo einen Prescaler eingestellt habe. Das ist aber nicht der Fall. Prescaler und alles andere ist auf 0. Jemand eine Idee wo da das Problem sein könnte? Aktuelles vorgehen ist: -> ich lege das externe Signal als Clock an -> ich starte den Timer -> Ist eine Sekunde rum stoppe ich den Timer wieder -> lese den Wert aus -> geb ihn seriell aus -> setze den Timer wieder auf 0 -> wenn die nächste Sekunde abgelaufen ist wird der Timer wieder neu gestartet. -> zurück zum anfang Und ich bekomme eben immer die 144. Mal auch eine 143 oder 145. Eine schwankung in dem Wert ist aber gewollt und gewünscht. Ich hab eine Vermutung, die aber eigentlich nicht sein sollte. Ich bin mir nicht ganz sicher, ob der selbst dennoch auf den internen Chiptakt angewiesen ist oder nicht. Sollte er ja aber eigentlich nicht. Jedenfalls bin ich für jeden Hinweis dankbar.
Könntest du zum Testen nicht einfach mal den internen Takt hochfahren auf ein paar Mhz?
>Ich bin mir nicht ganz sicher, ob der selbst dennoch auf den internen >Chiptakt angewiesen ist oder nicht. Sollte er ja aber eigentlich nicht. Der Timer sollte auf asynchroner Zähler eingestellt werden. Keine Ahnung ob das bei deinem Teil geht. Prescaler muss 1 sein.
Das mit dem internen Takt hab ich noch gar nich probiert. Hmpf so ne simple Idee. Bei dem Prescaler meinte ich auch 1. Intern wird der eingestellte Wert noch um 1 incrementiert.
vogel schrieb: > Ich hab eine Vermutung, die aber eigentlich nicht sein sollte. > Ich bin mir nicht ganz sicher, ob der selbst dennoch auf den internen > Chiptakt angewiesen ist oder nicht. Sollte er ja aber eigentlich nicht. Ist aber bestimmt so. Clock-Synchrone Zähler (und auch Interrupts) findet man oft bei Mikrocontrollern. Siehe holgers Antwort. Schau im Datenblatt nach, ob es einen asynchronen Zählmodus gibt. Wenn es den nicht gibt, haste keine Chance.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.