mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Taster entprellen


Autor: Christine (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
in der codesammlung sind mehrere gute beispielcodes

Autor: ubootfanat (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oder du schaltest einfach einen Tiefpass vor den InterruptPin

mfg ubootfanat

Autor: Jens123 (Gast)
Datum:

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

Autor: Axos (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jens123

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

Autor: Christian Schifferle (Gast)
Datum:

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

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: peter dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael (der wahre) (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Au ja, auf einmal ist Software schneller als Hardware.

Autor: Michael (ein anderer) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wieviel Michaels gibt's hier eigentlich?

Also bis jetzt wären da:

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

Lustig.... ;-)

Autor: Michael (der wahre) (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :-)

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.