Probleme mit Tasterentprellung

Gast #3127079
Hallo zusammen!

Ich habe vor kurzen eine erste Schaltung mit einem Mikrocontroller 
aufgebaut. Es handelt sich dabei im einen ATtiny2313.

Prinzipell handelt es sich bei der Schaltung um ein einfaches 
Tastenaggregat. Für die benötigte Entprellung der Taster habe ich die 
Entprellroutine von Peter Dannegger verwendet.

Grundlegen funktioniert das Programm auch. Es gibt nur ein Problem das 
denke ich mit der Entprellung zusammenhängt.
Man muss jeden Taster einen kurzen Moment festhalten damit der Wert 
angenommen wird. Mit kurz meine ich schon eine merkliche Zeit. 
Normalerweis tippt man einen Taster an und der Wert wird übernommen.

Ich denke das ich irgendwo einen Programmierfehler gemacht habe, welchen 
ich nicht als solchen erkenne. Ich kenne mich bis jetzt nur grundlegend 
mit der Programmierung aus. Es war schon ein ganzen Stück Arbeit sich 
erstmal einzuarbeiten.

Es währe sehr nett wenn mir jemand helfen könnte. Es ist wahrscheinlich 
nur ein kleiner Fehler der behoben werden muss.

Gruß

Matthias
Angehängte Dateien:
Gast #3127105
Stimmt die Taktfrequenz? Ist vielleicht die CKDIV8-Fuse gesetzt (das ist 
sie nämlich im Auslieferungszustand des Controllers, siehe Datenblatt)? 
Dann ist f_Takt = 1/8 f_Quarz.

Testmöglichkeit: Eine der LEDs mit z. B. 1 Hz blinken lassen und 
checken, wie schnell sie wirklich blinkt.
Gast #3127152
Unfassbar genau das war es.
Dieses Fuse-Bit ist mir entgangen. Da bin ich wohl in ein typische 
Anfägerfalle getappt.

Vielen Dank für die Hilfe, jetzt funktioniert alles so wie es soll. Ich 
hab auch gleich einen Kommentar in die Programmierung gesetzt, damit das 
in Zukunft nicht mehr passiert.

Gruß

Matthias
Gast #3129813
>Hmm, ich hab einfach das Fusebit CKDIV8 deaktiviert.

Allright.

>Hat das irgendwelche Nachteile?

Es kann durchaus vorteilhaft sein, einen Controller mit niedriger 
Frequenz zu takten, vorausgesetzt natürlich, er erfüllt seine Aufgaben. 
Z. B. entstehen alle "langsamen" Outputs eines Controllers letztlich 
durch mehrstufiges Herunterteilen seiner Taktfrequenz, und wenn die 
schon niedrig ist, kann man sich vielleicht eine Teilerstufe sparen, 
oder kommt mit weniger künstlichen Verlangsamungsmaßnahmen in der 
Software aus.

Ein weiterer Punkt: Die Stromaufnahme eines Controllers im Active-Modus 
steigt deutlich überproportional mit der Taktfrequenz. Deshalb ist es 
bei batteriebetriebenen Geräten sinnvoll, den Controller nur so hoch wie 
nötig zu takten.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.