Forum: Mikrocontroller und Digitale Elektronik LCD und PS2 Tastatur an Atmega 8


von Bastian F. (berryblue)


Lesenswert?

Hallo und schönen Abend erstmal euch allen und schonmal vielen 
herzlichen Dank fürs öffnen und evtl. lesen des Threads :)

Also erstmal meine Problemstellung und vorweg es handelt sich weder um 
eine Hausaufgabe, noch um einen Troll oder ähnlichem.

Und zwar habe ich hier eine alte Ps2 tastatur rumfahren und versuche sie 
über, wie oben genannt, einen einem Atmega 8 (mit Quarz auf 16 Mhz) die 
Eingabe auszulesen und dann für den Anfang an einem Text LCD (40*2) 
auszugeben.

Alle Versuche scheiterten bis jetzt kläglich und ich bitte nun um 
Sinvolle Links und Hilfestellungen.
"Gegoogelt" habe ich auch schon, aber keiner der Links hat mir  WIRKLICH 
weiter geholfen.

Ich benutze Bascom AVR in der Demo und würde es auch gerne weiter 
benutzen.

Mit freundlichen Grüssen,

Bastian

von Blaurock (Gast)


Lesenswert?

Bastian Frey schrieb:
> "Gegoogelt" habe ich auch schon, aber keiner der Links hat mir  WIRKLICH
> weiter geholfen.

Dann verwende die richtigen Suchbegriffe:
ps2 avr bascom

von Bastian F. (berryblue)


Lesenswert?

danke, aber auf diese Idee bin ich auch schon gekommen, aber wie gesagt, 
ich habe noch nichts gefunden was funktioniert hat.

MFG Bastian Frey

von Bastian F. (berryblue)


Lesenswert?

Hallo nochmal
hab nen Code gefunden der wenigstens Teilweise Funktioniert :)
zum ASM Teil, bin mich grade noch am zurechtfinden, also verzeiht bitte 
mein Leien-Dasein

Nur zu dem was nicht funktioniert:
Ich bekomme die Anschläge mit, jedoch wird mir immer ein griechisches 
"Alpha" angezeigt, bitte um Hillfestellung.

MFG Bastian
1
$regfile = "m8adef.dat"
2
$crystal = 16000000
3
4
Config Lcd = 40 * 2
5
Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 = Portc.3 , Db7 = Portc.2 , E = Portc.1 , Rs = Portc.0
6
Config Keyboard = Pind.1 , Data = Pind.0 , Keydata = Keydata
7
8
Cursor On Blink
9
Dim Text As String * 40
10
Dim I As Byte
11
Dim L As Byte
12
13
$serialinput = Kbdinput
14
$serialinput2lcd
15
16
Text = "This is a Test!"
17
L = Len(text)
18
Cursor Off
19
Cls
20
Print Text
21
22
23
Do
24
25
Cls
26
Cursor Blink
27
Cursor On
28
Print "Enter Text :"
29
Locate 2 , 1
30
Input Text
31
L = Len(text)
32
33
Cls
34
Print Text
35
For I = 1 To 16
36
 Shiftlcd Right
37
 Wait 1
38
Next I
39
Wait 1
40
L = L + 16
41
For I = 1 To L
42
 Shiftlcd Left
43
 Wait 1
44
Next I
45
Loop
46
47
End
48
49
Kbdinput:
50
51
$asm
52
53
push r16           ; save used register
54
55
push r25
56
57
push r26
58
59
push r27
60
61
Kbdinput1:
62
63
rCall _getatkbd    ; call the function
64
65
tst r24            ; check for zero
66
67
breq Kbdinput1     ; yes so try again
68
69
pop r27            ; we got a valid key so restore registers
70
71
pop r26
72
73
pop r25
74
75
pop r16
76
77
$end Asm
78
79
Return
80
81
I = Getatkbd()
82
83
Keydata:
84
85
Data 0 , 0 , 0 , 0 , 0 , 200 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , &H5E , 0
86
Data 0 , 0 , 0 , 0 , 0 , 113 , 49 , 0 , 0 , 0 , 122 , 115 , 97 , 119 , 50 , 0
87
Data 0 , 99 , 120 , 100 , 101 , 52 , 51 , 0 , 0 , 32 , 118 , 102 , 116 , 114 , 53 , 0
88
Data 0 , 110 , 98 , 104 , 103 , 121 , 54 , 7 , 8 , 44 , 109 , 106 , 117 , 55 , 56 , 0
89
Data 0 , 44 , 107 , 105 , 111 , 48 , 57 , 0 , 0 , 46 , 45 , 108 , 48 , 112 , 43 , 0
90
Data 0 , 0 , 0 , 0 , 0 , 92 , 0 , 0 , 0 , 0 , 13 , 0 , 0 , 92 , 0 , 0
91
Data 0 , 60 , 0 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0
92
Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0
93
94
Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
95
Data 0 , 0 , 0 , 0 , 0 , 81 , 33 , 0 , 0 , 0 , 90 , 83 , 65 , 87 , 34 , 0
96
Data 0 , 67 , 88 , 68 , 69 , 0 , 35 , 0 , 0 , 32 , 86 , 70 , 84 , 82 , 37 , 0
97
Data 0 , 78 , 66 , 72 , 71 , 89 , 38 , 0 , 0 , 76 , 77 , 74 , 85 , 47 , 40 , 0
98
Data 0 , 59 , 75 , 73 , 79 , 61 , 41 , 0 , 0 , 58 , 95 , 76 , 48 , 80 , 63 , 0
99
Data 0 , 0 , 0 , 0 , 0 , 96 , 0 , 0 , 0 , 0 , 13 , 94 , 0 , 42 , 0 , 0
100
Data 0 , 62 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0 , 0
101
Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45

: Bearbeitet durch User
von Hans Peter (Gast)


Lesenswert?

Samples/getatkbd.bas
Samples/getatkbd_int.bas
Samples/getkbd.bas


so schwer? o.O

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.