Forum: Mikrocontroller und Digitale Elektronik Probleme mit LCD-Menü


von Tobias C. (Firma: css) (tobi84)


Angehängte Dateien:

Lesenswert?

Hallo,

ich bin seit geraumer Zeit damit beschäftigt, einen Fehler in meinem 
Programm zu finden. Jedoch leider erfolglos.

Das Display zeigt immer den Startmenüeintrag an. Auf eine Eingabe 
reagiert das Display überhaupt nicht.
Da ich mich erst seit kurzem mit Strukturen und Zeigern beschäftige 
fällt mir die Fehlersuche entsprechend schwer.
Es würde mich freuen, wenn sich von euch mal jemand das angehängte 
Listing anschauen und mir einen Tipp geben könnte.

Tobias

von Ralf W. (Gast)


Lesenswert?

Ich glaube diese Zuweisung "bool = 1;" in den Tastenabfragen solltest
du ändern. Es gibt in C jetzt seit dem Standart C99 auch den Datentyp 
bool.
Hier in den Link:
Beitrag "Re: typ bool im Winavr"
steht nochmal was dazu.
Dies wird zwar dein Problem nicht lösen. Der Code wird aber besser.

Zum debuggen könntest du vielleicht LED's einschalten und zB. testen
ob diverse Programmteile überhaupt erreicht werden.
So kannst du auch erstmal deine Entprellroutinen testen. Vielleicht
funktionieren die ja nicht.

gruß ralf

von Tobias C. (Firma: css) (tobi84)


Lesenswert?

Die Tastenabfrage habe ich schon getestet, indem ich am PortA LEDs 
anschalte
(ISR).
Ich habe auch schon verucht der Variablen input einen festen Wert 
zuzuweisen. Dies brachte jedoch keine Änderung.

Tobias

von ManiB (Gast)


Lesenswert?

Hi

in deiner Main-Funktion verwendest du folgende while-Schleife:
1
  while(0);
2
  {
3
    ...
4
  }


Das macht keinen Sinn! Ändere das bitte ab:
1
  while(1)
2
  {
3
    ...
4
  }

Ciao,
Manfred

von Tobias C. (Firma: css) (tobi84)


Lesenswert?

OK, hab ich gemacht, danke Manfred.

Jetzt gibt das Display garnichts mehr aus!
Es wird nur noch initialisiert.

Bin langsam echt am verzweifeln!!

Gruß Tobias

von ManiB (Gast)


Lesenswert?

Hi,

hast du bemerkt, dass ich am Ende der Zeile while(1) kein ; mehr gemacht 
habe?

Ich hoffe das hast du so übernommen, denn while(1); ist eine 
Endlosschleife, die gar nicht macht!

von Tobias C. (Firma: css) (tobi84)


Lesenswert?

Ja, hatte ich kurz übersehen, dann aber richtig gestellt.

Das Programm läuft jetzt schon mal!!!!!!

Aber bei manchen Eingaben (WEITER,ADD und SUB) flakert die Zahl hinter 
Hallo.
Kann das mit dem Entprellen der Taster zu tun haben oder liegt das am 
Programm selbst?

Auf jeden Fall mal ein dickes DANKESCHÖN!!!

Das passiert mir auch nimmer!

Tobias

von ManiB (Gast)


Lesenswert?

Hi,
das Flackern müsste vom Tastenprellen kommen.

Wie verhält sich denn die Zahl hinter Hallo?
Wenn diese Zufallswerte annimt (zwischen 1 und 3) liegt es definitiv am 
Prellen.

Ciao,
Manfred

von Tobias C. (Firma: css) (tobi84)


Lesenswert?

Ja, sie nimmt zufallswerte zwischen 1 und 3 an.

Ich benutze das STK500. Wieviel zeit brauch ich zum entprellen?

Ich habe die for-Schleife in der ISR ein paar mal (5mal) untereinander 
geschrieben. Geändert hat sich jedoch nichts:

Tobias

von ManiB (Gast)


Lesenswert?

Sorry Tobias,

das kann ich leider nicht beantworten (bin Programmierer).

Aber da gibt es hier sicher viele andere Threads zum Thema Entprellen...

Ciao, und schönen Feierabend...
Manfred

von Tobias C. (Firma: css) (tobi84)


Lesenswert?

Ja dir auch, danke nochmals für deine unterstützung!

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.