Hallo zusammen, ich habe folegendes Problem und hoffe das mir einer von euch helfen kann. Ich nutze einen STM32L433 für eine Anwendung mit Batterie. In der Anwendung muss ich die Quadratursignale eines Drehgebers auslesen. Damit dabei so wenig Strom wie möglich verbraucht wird möchte ich den LPTIM1 im Encoder Mode dafür verwenden und den µC in den Low-Power-Mode STOP2 schicken. Leider sind die 16Bit des Zählers nicht außreichend für mich, sodass es im Betrieb zu Überläufen des Zählerwertes kommen kann. Ist dies der Fall muss der µC kurz aufwachen und intern einen Wert inkrementieren oder dekrementieren. Um dies richtig zu erfassen, habe ich das Auto-Reload-regsiter auf 0xFFFF und das Compare Register 0x0000 gesetzt und die jeweiligen Interrupts eingeschaltet. Zusätzlich verwende ich noch die Interrubts bei einem Richtungswechsel. Mit dieser Konfiguration kann ich zwar einen Überlauf richtig erkennen, der µC muss aber auch dauernd aus dem Low-Power Modus aufwachen. Besonders kritisch ist das Verhaletn natürlich wenn das Signal von 0x0000 nach 0xFFFF und zurück toggelt. Hat jemand eine Idee wie ich die gewünschte Funktionaliät implementieren kann und die beschriebene Problematik umgehen. Folgende anderen Ansätze hatte ich mir noch überlegt: - Den Zählerert beim erreichen von 0x0000 oder 0xFFFF auf 0x7FFFF setzen. Dies geht aber leider nicht, da das Zählerregister im Encoder Mode nur lesbar ist. - Einfach keinen Encoder Interrupt verwenden und statdessen einfach nach einer Zeit x durch die RCT aufwachen und schauen wie sich der Zählerwert verändert hat. Wenn man den Intervall so kurz wählt, dass bei der maximalen Drehgeschwinindigkeit nur der halbe Wertebereich des Zählers durchlaufen werden kann, kann der Überlauf immer richtig zugeordnet werden. Dann müsste in meinem Fall der µC aber auch jede Minute aufachen. Vielen Dank für eure Antworten.
Kannst Du den Übertrag irgend wie in LPTIM2 bringen?
pegel schrieb: > Kannst Du den Übertrag irgend wie in LPTIM2 bringen? Im Stop2 funktioniert nur der LPTIM1. Wenn der LPTIM2 benötigt wird, kann man nur in Stop1 gehen. Es gibt wie ich das sehe kein Signal mit dem man den LPTIM2 füttern könnte. Es gibt auch keinen Overflow interrupt.
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.