hochfrequentes signal mit niedrigem chiptakt messen

Gast #2743964
Lesenswert?

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.
Gast #2744001
Lesenswert?

>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.
Gast #2744196
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren