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


von Michael O. (michi26206)


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:
1
$regfile = "m8def.dat"
2
$crystal = 4000000
3
4
Ddrd = &B00111111
5
Portd = &B11000000
6
7
Config Lcd = 16 * 2
8
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
9
Config Lcdbus = 4
10
11
Config Debounce = 100
12
13
Taster1 Alias Portd.6
14
Taster2 Alias Portd.7
15
16
17
Initlcd
18
Cursor Off Noblink
19
20
Cls
21
Locate 1 , 3
22
Lcd "Demo-Screen"
23
Locate 2 , 4
24
Lcd "TMPC1-LCD"
25
26
Do
27
28
Debounce Taster1 , 0 , Taster_1 , Sub
29
Debounce Taster2 , 0 , Taster_2 , Sub
30
31
Loop
32
33
End
34
35
Taster_1:
36
   Cls
37
   Locate 1 , 1
38
   Lcd "Taster 1 wurde"
39
   Locate 2 , 1
40
   Lcd "gedrueckt"
41
Return
42
43
Taster_2:
44
   Cls
45
   Locate 1 , 1
46
   Lcd "Taster 2 wurde"
47
   Locate 2 , 1
48
   Lcd "gedrueckt"
49
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

von cyberlink (Gast)


Lesenswert?

Hi,

Mit dem Debounce-Befehl würde ich nicht arbeiten, damit habe ich mich 
schon tagelang rumgeärgert. Mein Codevorschlag wäre folgendermassen:
1
$regfile = "m8def.dat"
2
$crystal = 4000000
3
4
Config PORTD = Output
5
6
Config Lcd = 16 * 2
7
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
8
Config Lcdbus = 4
9
10
11
Config PIND.6 = Input
12
Config PIND.7 = Input
13
14
portd.6 = 1  'Pullups einschalten
15
portd.7 = 1 
16
17
Taster1 Alias Pind.6
18
Taster2 Alias Pind.7
19
20
21
Initlcd
22
Cursor Off Noblink
23
24
Cls
25
Locate 1 , 3
26
Lcd "Demo-Screen"
27
Locate 2 , 4
28
Lcd "TMPC1-LCD"
29
30
Do
31
32
if taster1 = 0 then
33
   goto Taster1
34
end if
35
36
if taster2 = 0 then
37
   goto Taster2
38
end if
39
40
Loop
41
42
End
43
44
Taster_1:
45
   Cls
46
   Locate 1 , 1
47
   Lcd "Taster 1 wurde"
48
   Locate 2 , 1
49
   Lcd "gedrueckt"
50
   while taster1 = 0
51
       waitms 10    'Entprellen
52
   wend
53
Return
54
55
Taster_2:
56
   Cls
57
   Locate 1 , 1
58
   Lcd "Taster 2 wurde"
59
   Locate 2 , 1
60
   Lcd "gedrueckt"
61
   while taster2 = 0
62
       waitms 10    'Entprellen
63
   wend
64
Return

Hoffe, ich konnte helfen!
mfg,
Cyberlink

von Michael O. (michi26206)


Lesenswert?

jop geht jetzt danke dir

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.