Forum: Mikrocontroller und Digitale Elektronik STM32 Timer3 Input-Capture Timeout


von doc (Gast)


Lesenswert?

Die Timer der STM32 sind ja eierlegende Wollmilchsäue...
Leider dadurch auch erfrischend kompliziert, um es mal nett auszudrücken 
:-)

Frage:
Ich habe einen Input-Capture auf Timer3, Channel1.
Dieser funktioniert soweit.

Nun hätte ich gern, daß bei einem Capture-Event sich der Counter auf 0 
zurückstellt.

Geht das ?
Wenn ja, wie ?

Wenn nein: Gibt es eine Möglichkeit, eine Art Timeout für das 
Capture-Event zu realisieren ? Also, wenn innerhalb einer bestimmten 
Zeit kein Flankenwechsel stattgefunden hat, einen Interrupt auszulösen ?

von (prx) A. K. (prx)


Lesenswert?

Idee, nicht verifiziert: Capture/Compare-Channel 1 für Capture, Channel 
2 für Compare. Bei jedem CC1 Interrupt wird CC2 auf CC1 plus Timeout 
gesetzt (modulo Timerzyklus). Der CC2 Interrupt ist der Timeout. Wobei 
man natürlich berücksichtigen muss, dass beide Events annähernd 
gleichzeitig auflaufen können.

Eignet sich natürlich nicht für Timeouts im Nanosekunden- oder untersten 
Mikrosekundenbereich.

von doc (Gast)


Lesenswert?

Hi A. K.,

vielen Dank,ja, sowas hatte ich mir als "Notlösung" auch schon überlegt.
Ich hatte nur gehofft, in dem "Flag-Register-Dschungel" der Timer etwas 
übersehen zu haben, mit dem das eventuell eleganter geht.

Timing ist kein Thema, es geht um Zeiten zwischen 300us-3ms.


Abgesehen davon, bin ich von den Timern stark beeindruckt...
Damit kann man ja Sachen realisieren, für die man auf AVR z.b. ne Menge 
Code braucht - und das nur durch Konfiguration. Auch die andere 
Periphrerie...Heftig
Hätte ich das gewußt, wäre ich schon viel früher umgestiegen :-)

von (prx) A. K. (prx)


Lesenswert?

doc schrieb:

> vielen Dank,ja, sowas hatte ich mir als "Notlösung" auch schon überlegt.
> Ich hatte nur gehofft, in dem "Flag-Register-Dschungel" der Timer etwas
> übersehen zu haben, mit dem das eventuell eleganter geht.

Man kann das wohl auch mit 2 Timern vollständig in Hardware realisieren, 
aber ob das eleganter ist?

Timer 1 mit Capture definiert dieses Event als Master und Timer 2 setzt 
sich als Slave basierend auf diesem Event zurück.

von (prx) A. K. (prx)


Lesenswert?

doc schrieb:

> Abgesehen davon, bin ich von den Timern stark beeindruckt...
> Damit kann man ja Sachen realisieren, für die man auf AVR z.b. ne Menge
> Code braucht - und das nur durch Konfiguration. Auch die andere
> Periphrerie...Heftig

Auf der anderen Seite kann man einem µC-Anfänger eben deshalb nicht 
wirklich einen STM32 empfehlen. Die Timer vom AVR sind viel einfacher, 
aber dafür ziemlich detailliert im Datasheet erklärt. Beim STM32 muss 
man den tieferen Sinn vieler Funktionen selber rausfinden und wird von 
den Bits und Möglichkeiten geradezu erschlagen.

von Frank B. (frank_boe)


Lesenswert?

Stimmt auffallend.

Mit einer besseren Doku, evtl vergleichbar mit der zu den AVRs würden 
bestimmt viel mehr, evtl auch prof. Entwickler zu diesen Controllern 
wechseln.
An der Doku muss wirklich noch gearbeitet werden.
Das gilt gerade auch für die Lib (obwohl..die sollte selbst auch 
grundlegend geändert werden..aber das ist ein anderes Thema :-)

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
Noch kein Account? Hier anmelden.