mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Neuling braucht Hilfe(Tastenabfrage) ?


Autor: BK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ich möchte 4 tasten abfragen und als ergebnis einen zähler auf lcd 
ausgeben mit der 1. taste klappt es super nur bei 2- 4 passiert nichts.
Mich stellt sich die frage ob ich die abfrage überhaupt so machen 
kann???


Main:

      sbic PINC, PINC0
      rcall EinfEGp1

      sbic PINC, PINC1
      rcall AusfEGp1

      sbic PINC, PINC2
      rcall EinfOGp1

      sbic PINC, PINC3
      rcall AusfOGp1

      rjmp Main

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
An der Abfrage an sich sehe ich eigentlich kein Problem (allerdings 
dürfte es Probleme mit Kontaktprellen geben). Hast Du mal versucht, den 
Pinzustand in ein Register zu laden und dann mit sbrc die Abfrage zu 
machen?

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>       rcall EinfEGp1

...funktioniert also...

>       rcall AusfEGp1
>       rcall EinfOGp1
>       rcall AusfOGp1

...funktionieren also nicht ...

Vielleicht liegt der Fehler ja in den entsprechenden Unterprogrammen?

Gruß,
Magnetus

Autor: BK (Gast)
Datum:
Angehängte Dateien:
  • qd.txt (2,38 KB, 120 Downloads)

Bewertung
0 lesenswert
nicht lesenswert
Ja genau und wenn ich unter die ausw, wie es sich eigentlich gehört ein 
ret schreibe springt er nur zwischen null und eins hin und her.

Im anhang ist der code.


Wäre sehr dankbar wenn mir jemand den fehler nennen kann.

Verzweifel langsam da ich es bald abgeben muss.

THX

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du ausw aufrufst, wird wegen des fehlenden ret am Ende "EinfEGp1" 
auch mit ausgeführt, weil erst danach ein ret kommt!

Autor: BK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zur erklärung:
Es ist eine Parkhaussteuerung mit 2 parkdecks.
es gibt insgesamt 4 lichtschranken einfEG, ausfEG,einfOG und ausfOG.
Nun möchte ich die anzahl der geparkten autos jeweils auf dem EG und dem 
OG auf einem lcd dastellen. Es funktioniert auch alles ausser das mit 
den tastern.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo ist übrigens Deine Stack-Initialisierung? Die ist bei den meisten 
AVRs (abgesehen von einigen neueren Typen, bei denen der Stack Pointer 
automatisch initialisiert wird) unbedingt erforderlich, wenn 
Unterprogrammaufrufe verwendet werden!

Autor: BK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja aber mit ret zählt er nur noch zwischen 0 und 1.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Außerdem solltest Du Dir dringendst endlich mal angewöhnen, Deine 
Programme zu kommentieren! Wenn ich mich recht entsinne, hab ich Dir das 
gestern schon mal gesagt, aber gebracht hat es anscheinend nichts...

Autor: BK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja sorry hab nicht alles mit gesendet ist auf jeden fall da.

Es muss an diesem teil liegen.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
BK wrote:
> Ja aber mit ret zählt er nur noch zwischen 0 und 1.
Ohne Stack-Initialisierung wundert es mich nicht! Liest Du die anderen 
Beiträge überhaupt?

Autor: BK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja tut mir leid, hab es jetzt kommentiert.
Hoffe es reicht.

Gruß

Autor: BK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Reicht es wenn ich ihn ganz am anfant initialisiert habe oder muss ich 
es im hauptprogramm nochmal tuhen.

Autor: BK (Gast)
Datum:
Angehängte Dateien:
  • qd.txt (2,84 KB, 158 Downloads)

Bewertung
0 lesenswert
nicht lesenswert
Hier ist der kommentierte code.

Sorry nochmal

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
BK wrote:
> Hier ist der kommentierte code.

Jo, aber da fehlen noch massenhaft ";" und im unteren Teil des Codes 
fehlen die Kommentare nach wie vor gänzlich.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Heißt die Datei in Deinem Projekt auch .txt am Ende? Vermutlich nein! 
Stelle bitte die .asm-Datei rein. Die wird auch automatisch von der 
Forensoftware in formatierten Code umgewandelt. Das liest sich 
leichter...

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

Bewertung
0 lesenswert
nicht lesenswert
So, nun hab ich es vollständig kommentiert.
Sorry nochmal, stehe sehr unter zeitdruck.

Hoffe jetzt kann mir jemand helfen.

Vielen dank schonmal im voraus.

Gruß

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du sollst nicht die Projektdatei posten! Mit der kann ohne den 
Assembler-Code keiner was anfangen! Du sollst die Assembler-Datei 
schicken, und die endet mit .asm!

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

Bewertung
0 lesenswert
nicht lesenswert
Ok bin halt noch nicht so fit,

zur info nochmal:
Wenn ich es simuliere passiert in den registern genau das was ich auch 
will nur die lcd springt zwischen null und eins und das merkwürdige ist 
das wenn ich das ret unter der auswertung wech lasse zählt er von 0-20 
wie schon erwähnt also kann mit der hardware auch nichts sein.

Gruß

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Zahl.asm

braucht man SOOOO viel text um 4 Tasten abzufragen und auf dem LCD 
auszugeben?

Autor: BK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nee eigentlich nicht aber wie gesagt bin neuling.

Irgendwie geht es mal und mal muss ich fünf mal drücken bis was 
passiert.
Aber zähle´n tut er richtig.
Keiner ne ahnung was das sein könnte

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
BK wrote:
> Irgendwie geht es mal und mal muss ich fünf mal drücken bis was
> passiert.
Ach, manchmal geht's? Hätteste auch mal früher sagen können.

> Keiner ne ahnung was das sein könnte
Entprellung

Autor: BK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry ist mir auch grade aufgefallen. aber er zählt ja richtig wenn es 
denn mal geht.

Kann es dann trotzdem an der entprellung liegen???

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
BK wrote:
> Kann es dann trotzdem an der entprellung liegen???
Wenn überhaupt, dann liegt es an der nicht vorhandenen Entprellung...

Autor: BK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum die habe ich doch gemacht oder funktioniert das so nicht????

Autor: BK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab es fast hinbekommen nun macht er alles ausser beim ersten 
tastendruck macht er immer das gegensätzliche was er machen soll, ab dem 
2. infolge dann klappts.

Was kann das sein.


Danke für deine Mühe

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.