Mikrocontroller und Digitale Elektronik
›
Thread
LCD - Text via Taster ändern
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
C
cyberlink
Gast
28.06.2009 17:03
#1315616
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
↑ Nach oben
← Zurück zu Mikrocontroller und Digitale Elektronik
Antwort schreiben