Forum: Mikrocontroller und Digitale Elektronik Taster entprellen


von Christine (Gast)


Lesenswert?

Ich bin gerade an meinem Wecker-Projekt, die Uhrzeit funktioniert schon,
jetzt möchte ich mit Hilfe von Tastern eine Weckzeit einstellen.
Aber ich habe gelesen, dass ein Taster prellt und ich würde gerne das
Signal ohne prellen auswerten. Ich habe mir überlegt, dass ich 40 mal
hintereinander den Taster auslese, jedesmal wenn das Signal 1 ist den
Akku erhöhe und dann den Wert des Akkus mit einem von mir vorgegebenen
Wert vergleiche. Schließlich übernehme ich dann das Signal.
Habt ihr Ideen?

von Tobi (Gast)


Lesenswert?

in der codesammlung sind mehrere gute beispielcodes

von ubootfanat (Gast)


Lesenswert?

oder du schaltest einfach einen Tiefpass vor den InterruptPin

mfg ubootfanat

von Jens123 (Gast)


Lesenswert?

RC glied kann schon sehr helfen
ein bissl software und die taste ist entprellt =)

von Axos (Gast)


Lesenswert?

C++ oder Assemblembler ?
Hängt dein taster an einem interrupt ?

So wie du das schilderst nehme ich fast an, dass du asm verwendest.

In Prinzip ist das so wie du es machen willst schon richtig.

MfG Axos

von Karl (Gast)


Lesenswert?

@Jens123

Reicht ein RC-Glied aus oder muss man ZUSÄTZLICH noch
Software-entprellen?

von Christian Schifferle (Gast)


Lesenswert?

Am einfachtsten fragst du die Tastereingänge einfach nur alle paar
Millisekunden ab. Dann stört das Prellen nicht mehr.

von Dirk (Gast)


Lesenswert?

Hi,

>> Jens123 : RC glied kann schon sehr helfen ein bissl software und die
taste ist entprellt =)

Ein Softwareentwickler versucht immer Hardwarebeschaltung zuvermeiden
und das Problem in Software lösen.


Sowie Christian S. gesagt hat fragt man die Taster ein bischen spaeter
nochmal ab. Am besten funktioniert dieses über die Timer. Einfach z.B.
den Timer0 als Timer Overflow Int einstellen.
In diesem Timer Overflow erhoehst du einen Zaehler. Wenn der Zaehler >
x ist dann fragst du die Taste nochmal ab.

Unter www.google.de oder unter der Forum suche solltest du auch fuendig
werden.
Seit nicht so scheu und traut euch die Suchfunktion zunutzen.

Mfg
Dirk

von peter dannegger (Gast)


Lesenswert?

"Ein Softwareentwickler versucht immer Hardwarebeschaltung zuvermeiden
und das Problem in Software lösen."

Volle Zustimmung !!!


Hardware bedeutet immer zusätzliche Kosten bei jedem Projekt und jedem
einzelnen Gerät, zusätzliche (kalte) Lötstellen, zusätzliche (defekte)
Bauelemente.


Software benötigt dagegen nur einmalig etwas Gehirnschmalz und dann
braucht man sich nie mehr damit beschäftigen, sondern kann sie einfach
in jedes neue Projekt includen.


Ich benutze meine 8-Tastenroutine auch bei nur einer Taste.

Nur im ATTiny12 habe ich sie nochmal optimiert, daß nur 4 Bits eines
Registers als Speicher benötigt werden (wurde gerade kürzlich in allen
Einzelheiten von HanneS erklärt).


Peter

von Michael (Gast)


Lesenswert?

Man muß immer die Verhältnismäßigkeit der Mittel sehen. Wenn ich ein
recht anspruchsvolles Programm habe, welches stark an die Grenzen des
Controllers kommt (z. B. DMX-Strom empfangen, verarbeiten und weiter
senden), ist eine Hardware-Lösung nicht immer abzuschmettern, da ich
mehr Rechenzeit für kritische Bereiche habe.
Was die Kosten angeht, ein Widerstand kostet inzwischen ca. 0,1 bis 0,5
Cent, ein Kondensator ca. 5 Cent. Ein fertiges Modul in ein Projekt
einzubinden (Ports definieren usw.) wird von den Kosten nicht günstiger
werden. Und die Routine muß einmal auch geschrieben und getestet werden.
Wenn da 2 Stunden zusammen kommen, kann man schon sehr viel Hardware
einbauen.
Defekte Bauteile: meiner Erfahrung nach macht als erstes der Taster
dicke Backen. Wenn dann die Prellzeiten von 2 ms auf 40 ms steigt, weil
die Kontakte korridiert sind, kann die Software auch schon mal versagen.
Ich meine der Balanceakt zwischen Soft-und Hardware ist der richtige
Weg.
Michael

von Martin (Gast)


Lesenswert?

Hallo!

Es kommt auch darauf an, ob man eine große Serie bauen möchte oder nur
einen Prototypen.

Bei einer großen Serie kommt es bei der Hardwareentwicklung auf jeden
Cent an. Hier ist es sinnvoll sich extra nochmal mehrere Stunden
hinzusetzten und soviel wie möglich in Software zu betten.

Bei einem Prototypen würde ich mehr Hardware vorziehen, da man, wenn
man weiß wie die einzelnen IC's zu beschalten sind, schneller fertig
ist. Dadurch ist das Programm kompakter und man kann auch hier wieder
beim µP sparen.

Wie Michael schon sagte:
Ich meine der Balanceakt zwischen Soft-und Hardware ist der richtige
Weg.

Tschüss

Martin

von Michael (der wahre) (Gast)


Lesenswert?

... ist eine Hardware-Lösung nicht immer abzuschmettern, da ich
mehr Rechenzeit für kritische Bereiche habe.


Aber immer !
Software braucht den Bruchteil eines Prozentes an 'Rechenzeit' und
wiegt all die Nachteile einer Hardwarelösung auf.

von Michael (Gast)


Lesenswert?

Au ja, auf einmal ist Software schneller als Hardware.

von Michael (ein anderer) (Gast)


Lesenswert?

Wieviel Michaels gibt's hier eigentlich?

Also bis jetzt wären da:

- Michael
- Michael (der wahre)
- Michael (ein anderer)

Lustig.... ;-)

von Michael (der wahre) (Gast)


Lesenswert?

Das ist wie mit den Heinos !

""Au ja, auf einmal ist Software schneller als Hardware.""
Das ist ich garnicht einmal ausschliessen :-)

Aber beim Entprellen soll es ja gerade langsam zugehen. Und die paar
Bytes dazu brauchen weder übermäßig Speicher noch Rechenzeit.

Der einzig Wahre :-)

von Martin (Gast)


Lesenswert?

Ich sprach vorhin von komplizierteren Lösungen. Z.B. Wenn ich
einen Prototypen bauen würde, der einen Schrittmotor ansteuert, dann
würde ich den L297 und L298 nehmen. Dadurch ist die Software auf ein
Minimum reduziert und die Stromregelung wird automatisch vom L297
übernommen.
Bei einer Serie müsste man sich überlegen, ob man nicht den L297
weglässt und seine Funktion der µC übernimmt.

Aber ein Entprellen der Taster würde ich immer in Software realisieren,
da eine softwaremäßige Entprellung nicht besonders viel
mehr Aufwand bedeutet.

Tschüss

Martin

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.