www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD - Text via Taster ändern


Autor: Michael O. (michi26206)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe ein LCD an einem Atmega8 hägen auf dem ich den Text via Taster 
ändern möchte.

Hab mir mal ein Demo-Programm geschrieben:
$regfile = "m8def.dat"
$crystal = 4000000

Ddrd = &B00111111
Portd = &B11000000

Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
Config Lcdbus = 4

Config Debounce = 100

Taster1 Alias Portd.6
Taster2 Alias Portd.7


Initlcd
Cursor Off Noblink

Cls
Locate 1 , 3
Lcd "Demo-Screen"
Locate 2 , 4
Lcd "TMPC1-LCD"

Do

Debounce Taster1 , 0 , Taster_1 , Sub
Debounce Taster2 , 0 , Taster_2 , Sub

Loop

End

Taster_1:
   Cls
   Locate 1 , 1
   Lcd "Taster 1 wurde"
   Locate 2 , 1
   Lcd "gedrueckt"
Return

Taster_2:
   Cls
   Locate 1 , 1
   Lcd "Taster 2 wurde"
   Locate 2 , 1
   Lcd "gedrueckt"
Return

Der 1. "Schriftzug" wird auch angezeigt ohne Probleme, allerdings wenn 
ich einen der Beiden Taster drücke passiert nichts.

Kann mir wer helfen?

Gruß Michi2626

Autor: cyberlink (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Mit dem Debounce-Befehl würde ich nicht arbeiten, damit habe ich mich 
schon tagelang rumgeärgert. Mein Codevorschlag wäre folgendermassen:
$regfile = "m8def.dat"
$crystal = 4000000

Config PORTD = Output

Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
Config Lcdbus = 4


Config PIND.6 = Input
Config PIND.7 = Input

portd.6 = 1  'Pullups einschalten
portd.7 = 1 

Taster1 Alias Pind.6
Taster2 Alias Pind.7


Initlcd
Cursor Off Noblink

Cls
Locate 1 , 3
Lcd "Demo-Screen"
Locate 2 , 4
Lcd "TMPC1-LCD"

Do

if taster1 = 0 then
   goto Taster1
end if

if taster2 = 0 then
   goto Taster2
end if

Loop

End

Taster_1:
   Cls
   Locate 1 , 1
   Lcd "Taster 1 wurde"
   Locate 2 , 1
   Lcd "gedrueckt"
   while taster1 = 0
       waitms 10    'Entprellen
   wend
Return

Taster_2:
   Cls
   Locate 1 , 1
   Lcd "Taster 2 wurde"
   Locate 2 , 1
   Lcd "gedrueckt"
   while taster2 = 0
       waitms 10    'Entprellen
   wend
Return


Hoffe, ich konnte helfen!
mfg,
Cyberlink

Autor: Michael O. (michi26206)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jop geht jetzt danke dir

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.