Taster entprellen!

Gast #707135
Lesenswert?
• ▲
▼
Habe in dem Beitrag Beitrag "Entprellen gleich  aller Tasten mit nur 7 Zeilen" 
folgenden code gefunden:

.def cntr =  R16
.def taste = R17



waitfreekey:                  ;Wartet, bis alle Tasten losgelassen sind.
  clr cntr
  nook: in taste, PIND
  cpi taste, 0b00111111 ;Für jeden Knopf ein Einser
  brne waitfreekey
  inc cntr
  breq ok
    rjmp nook
ok: ret


Irgendwie ging es einmal und nun nicht mehr. Kann mir einer sagen ob es 
grundsätzlich überhaupt gehen würde.
Verstehe nicht inc -1 dann springe zu ret.

Schonmal danke.
#707155
Lesenswert?
• ▲
▼
> Verstehe nicht inc -1 dann springe zu ret.

Wo steht 'inc -1'?

Die Funktion ist folgende:

Zuerst wird gewartet, bis von PIND 0b00111111 eingelesen wird.

Wenn PIND über 256 Durchläufe konstant 0b00111111, dann läuft cntr über 
(255 -> 0). Dabei wird das Zero-Flag gesetzt und breq ok springt nach 
ok.
#707159
Lesenswert?
• ▲
▼
B.K. wrote:

> Irgendwie ging es einmal und nun nicht mehr.

Was ging denn und was geht nicht mehr?


> Kann mir einer sagen ob es
> grundsätzlich überhaupt gehen würde.

Das ist ja nur ein Codefragment, welches sehr abhängig vom restlichen 
Code ist, d.h. je nach Anforderungen und Laufzeit könnte es sogar mal 
gehen.

Besser ist es, der nachfolgenden Diskussion zu folgen oder mal in die 
Artikelsammlung zu sehen:

http://www.mikrocontroller.net/articles/Entprellung


Peter
Gast #707171
Lesenswert?
• ▲
▼
Ich möchte eine Parkhausanzeige realisieren mit anzeige EG und OG, halt 
wieviele autos sich dort grade befinden.

Erst ging die Anzeige EG und seit dem 2. versuch zeigt sie mir nix mehr 
an, wenn ich nun die entprellung wech nehme kommt wieder eine null und 
wenn ich taste betätige halt 20 wegen prellen.

Wenn jemand lust hat kann er sich es ja mal anschauen.

Wäre sehr dankbar.

P.S. Da ich absoluter Neuling auf diesem Gebiet bin bitte ich die 
Programmieresthetik zu vernachlässigen.


Danke
Angehängte Dateien:

Antwort schreiben

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.

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.