Hallo, ich möchte gern den Abstand zwischen zwei Flanken messen, das Problem ist dass es positive und negative Flanken dind und ich nie weiß ob als nächstes eine postive oder negative kommt. Positv heißt hier von 0 auf 5V, dann wieder absinken auf 0 V und negative heißt von 5 auf 0V und dann wieder ein ansteigen. Es sind also zwei verschiedene Leitungen. Gleichzeitig gibt es keine Flanken. Kann man das über zwei Channel mit einem Timer Interrupt eralisieren oder muss das Signal "gleichgerichtet" werden und auf einen Channel gegeben werden? Sprich aus der negativen mach eine postive Flanke. Ich verwende den stm32107VC und wollte Timer 2 als Interruptgestuerten Timer nutzen.
Hallo! > Positv heißt hier von 0 auf 5V, dann wieder absinken auf 0 V und negative > heißt von 5 auf 0V und dann wieder ein ansteigen. > Es sind also zweiverschiedene Leitungen. Bedeutet das es das Signal mit der "negativen" Flanke liegt einmal an einem Pin an und das mit der "positiven" Flanke an einem anderen? Es gibt die Möglichkeit mehrere Timer zu kaskadieren. Wobei ein Timer ein Master Timer ist und der oder die anderen Timer als Slaves dienen. Damit kann man z.B.: eine 32bit Auflösung erzielen. Sieh dir dazu am besten die STM32F10x Standard Peripherals Firmware Library an mit den Beispielen zu dem Kapitel TIM. MfG
EXTI Trigger auf 2 Inputs mit den beiden Signalen auf beide Flanken 1. Interrupt startet Timer 2. Interrupt stoppt Evtl ausserdem noch in der Interruptroutine den komplementären Flankeninterrupt disabeln oder ein Ignorier-Flag setzen. Oder ist das zu einfach gedacht? Gruss ASCII-Zeichnung.
Hallo, Ohje, das habe ich schon mal aus einem anderen Grund versucht bzw. um eben einen 32 bit Timer zu erhalten... Das auslesen des zweiten Timers hatte nicht wirklich funktioniert wenn ich mich recht erinnere und man riet mir dann zu einer Variablen als Speicher. Sollte es wirklich ein Beispiel geben wo ein 32 Bit Timer aufgebaut wurde? Welches ist das? Seite 353 und 337 des RM0008 sehen mir so aus als könnte man zwei Channel verwenden, ich versuchs mal. Vielleicht gehts so irgendwie. Und ja die Signale kommen im Endeffekt von zwei verschiedenen Leitungen.
Hallo! Wie ASCII-Zeichnung schon schrieb ist es mit 2 EXTI-Lines auch möglich. Du könntest dir sogar den Timer sparen und den SysTick im Free-running Modus betreiben. Mit dem kannst du die Zeit mit einer Genauigkeit von 1ms erfassen, wenn dir das ausreicht mache es so. Auf http://www.st.com/internet/mcu/class/1734.jsp findest du unter der Kategorie Resources -> Software Resources -> Firmware die zip-Datei STM32F10x standard peripheral library. Lade dir das bitte runter und schau dir dort die Beispiele an. Der direkte Download-Link ist http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/stm32f10x_stdperiph_lib.zip Ansonsten findest du dort auch wie man zwei Timer verknüpft um 32bit zu erzielen -> How to achieve 32bit timer resolution using the link system. MfG
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.