Forum: Mikrocontroller und Digitale Elektronik Taster entprellen!


von B.K. (Gast)


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.

von Uhu U. (uhu)


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.

von Peter D. (peda)


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

von B.K. (Gast)


Lesenswert?

ahhhh danke

von BK (Gast)


Angehängte Dateien:

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

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.