Forum: Mikrocontroller und Digitale Elektronik STM32 debounce Entprellung Zeitverzögerung Empfehlenswerte Verfahren


von STM (Gast)


Lesenswert?

Hallo, ich möchte Softwaretechnisch Fehlimpulse herausfiltern und 
Entprellen. Dazu benötige ich erstmal eine Zeitverzögerung. Ich habe 
diesen Artikel dazu gefunden.

http://www.emcu.it/STM32/STM32Discovery-Debounce/STM32Discovery-InputWithDebounce_Output_UART_SPI_SysTick.html#Debounce

Das ganze gibt es auch in den ST-Beispielen. Ich möchte allerdings 
Zeitabstände von 1 bis 2 µs haben. Jetzt ist die Frage ob die Systick 
Interrupts das System belasten oder ob die nebenher laufen? Oder gibt es 
eventuell noch besser Methoden für diese Verzögerungen?

von Matthias K. (matthiask)


Lesenswert?

STM schrieb:
> Jetzt ist die Frage ob die Systick
> Interrupts das System belasten oder ob die nebenher laufen?

Der SysTick belastet wie jeder andere Interrupt das System. Wie stark, 
hängt davon ab, was Du in der Interruptroutine machst. Während dieser 
Zeit wird das Hauptprogramm nicht ausgeführt. Anders die DMA-Technik, 
dieses belastet das System nicht.

STM schrieb:
> Zeitabstände von 1 bis 2 µs haben

1us Interrupt ist selbst für die STM32 nicht leicht zu beherschen, aber 
machbar. Kommt auch auf den Typ an, die F4 mit 168MHz schaffen da 
mehr...

von STM (Gast)


Lesenswert?

Es geht primiär um Entprellung und ein herausfiltern von Fehlimpulsen 
(maximal gemessene "Prellung" ca. 2 µs. Die Genauigkeit spielt also 
keine sehr große Rolle. Ich hoffe maximale Abstände von 1 bis 2 µs 
sollten drinn sein. Da ich die Zeiten nur bei eingehenden Flanken 
benötige würde ich sonst versuchen einen Timer mit Capture Compare zu 
nutzen? Oder kann man die Systick Interrupts auch schnell abschalten 
wenn man sie nicht braucht?

von Sven Wagner (Gast)


Lesenswert?

STM schrieb:
> Es geht primiär um Entprellung und ein herausfiltern von Fehlimpulsen
> (maximal gemessene "Prellung" ca. 2 µs.
Wenn es sich um mechanische Systeme handelt, dann gehe
1. von einer Streuung aus und
2. rechne mit Alterung.
Ich würde dort 8 µs als Sicherheit aufschlagen.

> Da ich die Zeiten nur bei eingehenden Flanken
> benötige würde ich sonst versuchen einen Timer mit Capture Compare zu
> nutzen? Oder kann man die Systick Interrupts auch schnell abschalten
> wenn man sie nicht braucht?
Das verwirrt mich jetzt. Wenn ich entprellen will, interessiert mich ob 
eine Taste gedrückt ist und evtl. noch, ob sie nach einer bestimmten 
Zeit immer noch gedrückt ist. Damit kann ich kurze von langen 
Tastendrücken unterscheiden.

Auf jeden Fall wird dabei ständig entprellt.
Vielleicht willst Du ja etwas ganz anderes machen? Erzähl doch mal, wo 
Deine "Impulse" herkommen und was Du an diesen feststellen möchtest?

Grüße
Sven

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.