www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Parkhauszähler mit lcd ausgabe


Autor: B.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

bin ein neuling und nachdem ich jetzt das tut durchgearbeitet habe 
möchte eine parkhausanzeige für 2 parkdecks mittels lcd
darstellenjeweils die ein und ausfahrt von EG und OG besitzen eine 
lichtschranke die mittels taster simuliert werden.
Irgendwie finde ich keinen ansatz.

Kan mir jemand helfen?

Gruß

Autor: Fred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

wo genau sind denn die Probleme, bzw. was ist denn als Grundstruktur 
schon vorhanden? Prinzipiell sehe ich das so, dass Du zwei Einfahrten 
und zwei Ausfahrten hast. Die beiden Einfahrten registrieren einfahrende 
Fahrzeuge und dabei wird dann ein Zähler jeweils um eins erhöht. 
Erreicht der Zähler einen vordefinierten Wert (maximale Stellplatzzahl), 
dann werden die einfahrten (Schranken) gesperrt. Fährt ein Auto aus 
einer der beiden Ausfahrten aus, dann wird der Zähler wieder um eins 
verringert.
Wegen der Ausgabe auf LCD schau doch mal ins Tutorial auf der linken 
Seite, da kann ich Dir wenig helfen.
Gruß

Fred

Autor: BK (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Habe schon ein Code(anhang) geschrieben.
Nur springt die anzeige immer gleich auf 20.
soll halt 0-20 einmal für EG und für OG darstellen.

Ich weiß das der code warscheinlich sehr umständlich ist aber wie gesagt 
bin absoluter neuling.


Gruß

Autor: Mathias U. (munter)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich kenn mich jetzt nicht mit Assambler aus, aber entprellst Du 
deine Taster? Das er gleich von 0 auf 20 springt klingt stark nach 
prellenden Tastern...

Autor: Martin Kreiner (maart)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>aber entprellst Du
>deine Taster?

Nein, macht er nicht.

Autor: B.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie entprell ich sie denn???

Autor: B.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok weiß schon bescheid einfach 100ms delay einbauen.

Danke

Autor: Martin Kreiner (maart)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wie entprell ich sie denn???

Steht auch im Tutorial, aber egal, mal kurz angerissen:

Dein Programm muss prüfen: Taster gedrückt? Ja? ca. 4ms Sekunden warten. 
Taster immer noch gedrückt? Ja? Taster ist wirklich gedrückt.

Weiterhin muss dein Programm auch prüfen, ob der Taster immer noch 
gedrückt gehalten wird, sonst rast der Zähler auch bis in den Anschlag.

Autor: edson (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Dein Programm muss prüfen: Taster gedrückt? Ja? ca. 4ms Sekunden warten.
>Taster immer noch gedrückt? Ja? Taster ist wirklich gedrückt.

Wenn Du Pech hast ist das bestenfalls eine Vermutung, ob der Taster 
wirklich geschlossen ist. Manche (zugegeben nicht uC-freundliche) Taster 
prellen länger als 65ms...

Gruss,
Edson

Autor: Martin Kreiner (maart)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wenn Du Pech hast ist das bestenfalls eine Vermutung, ob der Taster
>wirklich geschlossen ist. Manche (zugegeben nicht uC-freundliche) Taster
>prellen länger als 65ms...

Ja, hast natürlich Recht. Besser sollte es man natürlich so machen:
Prüfen, x-ms warten, und das mindestens vier mal hintereinander. Wenn 
der Status viermal in Folge gleich war, so ist er als gültig anzusehen.

Autor: B.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könnt ihr mir vielleicht mal ein Beispiel posten bekomme es irgendwie 
nicht hin.

Gruß

Autor: B.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe folgendes programm zum entprellen 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 (davor evtl. 
AND-en).
  brne waitfreekey
  inc cntr
  breq ok
    rjmp nook
ok: ret


Kann mir jemand sagen ob das wirklich funktioniert?????

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
B.K. wrote:
> Könnt ihr mir vielleicht mal ein Beispiel posten bekomme es irgendwie
> nicht hin.

Die Sache mit der aktiven Warterei ist doch Mist.

> waitfreekey:                  ;Wartet, bis alle Tasten losgelassen sind.
>   clr cntr
>   nook: in taste, PIND
>   cpi taste, 0b00111111 ;F�r jeden Knopf ein Einser (davor evtl.
> AND-en).
>   brne waitfreekey
>   inc cntr
>   breq ok
>    rjmp nook
> ok: ret

Weist du wie schnell dein µC den cntr einmal von 0 bis wieder
auf 0 durchgezählt hat? Das geht so schnell, da hat die
Taste noch nicht mal zu Prellen angefangen, ist der µC
bereits durch.
Eine Millisekunde ist für einen µC eine halbe Ewigkeit!

Hier findest du eine full-proof Tastenentprellung:

http://www.mikrocontroller.net/articles/AVR-Tutorial:_Tasten

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.