Anzeige für Sprungrichter

Alle allgemeinen Themen zu Elektronik und Elektro

Alle allgemeinen Themen zu Elektronik und Elektro

Moderator: Moderatorengruppe

Re: Jetzt wirds ernst

Neuer Beitragvon gerold am Donnerstag 7. Februar 2008, 16:45

Hallo zacki!
zacki hat geschrieben:So, ich hab nun die ersten beiden komplett fertig. Siehe Attachment.

Das sieht ja schon super aus. :-)

zacki hat geschrieben:Irgendwie schaffe ich es nicht die Tastaturmatrix auszulesen. Irgendwie muß ich dem ja beibringen welche Anschlüsse der Matrix an welchem pin hängen.

Ich habe leider kein Tastenfeld da um es ausprobieren zu können. Aber hier zwei Möglichkeiten. Auch wenn die erste Möglichkeit nicht funktionieren sollte. Die zweite Möglichkeit funktioniert sicher, denn die habe ich schon ausprobiert.

1. Möglichkeit: Du verwendest den Bascom-Befel ``getkbd()`` http://avrhelp.mcselec.com/index.html?getkbd.htm um auf die Tastencodes zuzugreifen. Mit ``config kbd`` http://avrhelp.mcselec.com/index.html?config_kbd.htm stellst du ein, welches Port (alle 8 Leitungen) für die Tastatur verwendet werden.
Den Anschluss für die vierte Spalte lässt du einfach aus. So bekommst du für jede Taste eine Zahl zurück.

2. Möglichkeit: Claus Kühnel beschreibt in seinem Buch ziemlich genau, wie man die gedrückte Taste manuell ausliest. Siehe: http://books.google.com Seite 192.

mfg
Gerold
:-)

Edit: Ich hatte Claus Kühnel falsch geschrieben
Zuletzt geändert von gerold am Dienstag 12. Februar 2008, 07:10, insgesamt 1-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
31473
Bronze Mitglied
 
Beiträge: 127
Registriert: Montag 30. Juli 2007, 11:19
Wohnort: Oberhofen im Inntal (Tirol)
Postleitzahl: 6410
Land: Austria / Österreich

Virtuelle Verdienstmedallie verliehen !

Neuer Beitragvon Erfinderlein am Montag 11. Februar 2008, 17:07

Hallo Gerold,

nun ist es soweit, mit diesem thread hast du es geschafft einen alten verknöcherten Hardwaremann, der fast allergisch gegen das Programmieren ist, zum Kauf diese AVR Buches und der Testplatine zu bewegen.

Ob es denn einen Wert hat, oder in einer Ecke zu liegen kommt ist natürlich noch eine andere Frage.

Was will ich aber damit sagen, ich habe mich so gefreut über die schöne Zusammenarbeit zwischen euch beiden und natürlich besonders über dein starkes Engagement und nicht zuletzt, dass Zacki das alles auch rucki zucki erfolgreich umgesetzt hat, dass ich einfach mal spontan eine virtuelle Goldmedallie verleihe. :winner: :respekt:

Also ein Dankeschön auch im Namen der Administration und weiter so !

LG aus GR

Lothar
Lothar Gutjahr bestätigt:Senneca hatte recht. Wir haben nicht zu wenig Zeit, sondern vergeuden zu viel.
Benutzeravatar
Erfinderlein
31536
Co-Admin
 
Beiträge: 4275
Registriert: Donnerstag 9. Januar 2003, 18:21
Wohnort: Neukirchen a.T.
Postleitzahl: 83364
Land: Germany / Deutschland

Re: Virtuelle Verdienstmedallie verliehen !

Neuer Beitragvon gerold am Dienstag 12. Februar 2008, 07:36

Hallo Lothar!

Erfinderlein hat geschrieben:zum Kauf diese AVR Buches und der Testplatine zu bewegen
[...]
Ob es denn einen Wert hat, oder in einer Ecke zu liegen kommt ist natürlich noch eine andere Frage.

Mich treibt dabei der Gedanke, an die Dinge die man damit machen kann, an:
Raumklimasteuerung, Wetterstation, Lüftersteuerung, Lift-Steuerung, Pulsweitenmodulation, Zählerschaltungen, Analog/Digital Wandlung, Schaltungsfernsteuerung über wenige Kabel (I²C, RS-485,...), Flankenerkennung (LOW/HI, HI/LOW), Aufzeichnen und abspielen von Tönen, Steuern von HiFi-Geräten über Infrarot (RC5-Protokoll), RC5-Signale von Fernbedienungen erkennen und darauf reagieren, Anzeige von Daten auf LC-Displays, Speichern von Einstellungen im EEPROM, mit einem Computer verbinden (RS-232, USB) und Vieles mehr. :D

Erfinderlein hat geschrieben:ich habe mich so gefreut über die schöne Zusammenarbeit zwischen euch beiden
[...]
Also ein Dankeschön auch im Namen der Administration und weiter so !

Das freut mich sehr! :mrgreen:

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
31550
Bronze Mitglied
 
Beiträge: 127
Registriert: Montag 30. Juli 2007, 11:19
Wohnort: Oberhofen im Inntal (Tirol)
Postleitzahl: 6410
Land: Austria / Österreich

Verflixt

Neuer Beitragvon zacki am Samstag 16. Februar 2008, 11:03

Also wiedermal ich. Ich drehe gleich durch. Ich habe nun die Tastatur in allen möglichen varianten und Belegungen angeschlossen und er bringt sämtliche Zahlen einfach durcheinander. Irgendwas hab ich da wohl falsch verstanden.
Code: Alles auswählen
$regfile = "m16def.dat"                                   ' specify the used micro

$crystal = 4000000                                         ' used crystal frequency

$baud = 19200                                               ' use baud rate

$hwstack = 32                                               ' default use 32 for the hardware stack

$swstack = 10                                               ' default use 10 for the SW stack

$framesize = 40                                             ' default use 40 for the frame space




Config Kbd = Porta

Dim B As Byte

Do

B = Getkbd()

LCD B


Loop

End


Vielleicht kann mir ja mal einer ein Beispiel geben wie ich die Tastatur (3x4) an PortA betreibe. Ich komme mit Config Kbd nicht wirklich klar. Danke Euch
zacki
Threadstarter
31620
Junior Mitglied
 
Beiträge: 23
Registriert: Freitag 4. Januar 2008, 08:31

Re: Verflixt

Neuer Beitragvon gerold am Samstag 16. Februar 2008, 13:38

zacki hat geschrieben:er bringt sämtliche Zahlen einfach durcheinander

Hallo Zacki!

Das macht nichts. So lange nicht jede Taste den gleichen Wert zurück gibt, ist alles in Ordnung.

Du musst nur noch den Wert den du zurück bekommst abgleichen und in den gewünschten Text umwandeln.

Erster Schritt: Finde heraus, was du bei welchem Tastendruck zurück bekommst.

Code: Alles auswählen
$regfile = "m16def.dat"
$crystal = 4000000
$baud = 19200
$hwstack = 32
$swstack = 10
$framesize = 40

Config Kbd = Porta

Dim Key As Byte

Do
   Key = Getkbd()
   Print Key
   Wait 1
Loop

End


Du musst bei diesem Code wahrscheinlich eine Sekunden auf der Taste bleiben, wegen dem ``Wait 1``. Aber so bekommst du raus, was bei welcher Taste zurück gegeben wird.

Schreibe mir bitte was du bei welcher Taste zurück bekommst. Dann machen wir weiter. Und vergiss nicht, das Tastenfeld wieder so anzuschließen, wie hier gezeigt wird: http://avrhelp.mcselec.com/index.html?getkbd.htm

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
31626
Bronze Mitglied
 
Beiträge: 127
Registriert: Montag 30. Juli 2007, 11:19
Wohnort: Oberhofen im Inntal (Tirol)
Postleitzahl: 6410
Land: Austria / Österreich

Na mal schaun

Neuer Beitragvon zacki am Samstag 16. Februar 2008, 14:01

Hier das komische Ergebnis:

Taste Anzeige
1 - 12
2 - 13
3 - 14
4 - 8
5 - 9
6 - 10
7 - 4
8 - 5
9 - 6
0 - 0
* - 1
# - 2

Allerdings habe ich jetzt PA3 weggelassen weil ja nur 3 Spalten !
zacki
Threadstarter
31628
Junior Mitglied
 
Beiträge: 23
Registriert: Freitag 4. Januar 2008, 08:31

Re: Na mal schaun

Neuer Beitragvon gerold am Samstag 16. Februar 2008, 14:48

zacki hat geschrieben:Hier das komische Ergebnis:

Taste Anzeige
1 - 12
2 - 13
...

Hallo zacki!

Das ist ja wunderbar. Und so kannst du jetzt aus den Keycodes das machen, was auf den Tasten steht:

Code: Alles auswählen
...

Dim Key As Byte
Dim Txt As Byte

Do
   Key = Getkbd()

   Select Case Key
   Case 0 : Txt = "0"
   Case 1 : Txt = "*"
   Case 2 : Txt = "#"
   Case 4 : Txt = "7"
   Case 5 : Txt = "8"
   Case 6 : Txt = "9"
   Case 8 : Txt = "4"
   Case 9 : Txt = "5"
   Case 10 : Txt = "6"
   Case 12 : Txt = "1"
   Case 13 : Txt = "2"
   Case 14 : Txt = "3"
   Case Else : Txt = ""
   End Select

   If Txt <> "" Then
      Print Txt
   End If

Loop

End

Das ginge auch mit ``LOOKUP`` aber ich denke, dass das hier einfacher für dich ist, weil man hier sofort sieht was passiert.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
31630
Bronze Mitglied
 
Beiträge: 127
Registriert: Montag 30. Juli 2007, 11:19
Wohnort: Oberhofen im Inntal (Tirol)
Postleitzahl: 6410
Land: Austria / Österreich

noch besser

Neuer Beitragvon zacki am Sonntag 17. Februar 2008, 07:11

Danke Dir. Nur bringt er jetzt ohne Tastendruck ne 55555.....

Bei der 1 bringt er ne 49, bei ner 2 eine 50 usw. :?:
zacki
Threadstarter
31646
Junior Mitglied
 
Beiträge: 23
Registriert: Freitag 4. Januar 2008, 08:31

Re: noch besser

Neuer Beitragvon gerold am Sonntag 17. Februar 2008, 09:32

zacki hat geschrieben:Danke Dir. Nur bringt er jetzt ohne Tastendruck ne 55555.....
Bei der 1 bringt er ne 49, bei ner 2 eine 50 usw. :?:

Hallo zacki!

Das sind die ASCII-Codes der Zeichen "1", "2", usw.
Siehe hier: http://de.wikipedia.org/wiki/ASCII-Tabelle

Normalerweise werden die ASCII-Codes mit PRINT als normale Textzeichen über die Leitung zum Terminalprogramm geschickt. Wenn du also PRINT verwendest und du trotzdem die ASCII-Codes angezeigt bekommst, dann muss dein Terminalprogramm irgendwie falsch eingestellt sein.

Und im meinem Code liefert er "ohne Tastendruck" **gar nichts** zurück.

Ich brauche den Code, damit ich sehe was falsch läuft.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
31648
Bronze Mitglied
 
Beiträge: 127
Registriert: Montag 30. Juli 2007, 11:19
Wohnort: Oberhofen im Inntal (Tirol)
Postleitzahl: 6410
Land: Austria / Österreich

Oh man

Neuer Beitragvon zacki am Sonntag 17. Februar 2008, 10:53

Ja, hab ich was falsch verstanden. Hab natürlich Print einfach mal so in LCD umgewandelt. Nagut, wandel ich jetzt ASCII mal in meine Zahlen um.
zacki
Threadstarter
31652
Junior Mitglied
 
Beiträge: 23
Registriert: Freitag 4. Januar 2008, 08:31

Re: Oh man

Neuer Beitragvon gerold am Sonntag 17. Februar 2008, 11:14

zacki hat geschrieben:Ja, hab ich was falsch verstanden. Hab natürlich Print einfach mal so in LCD umgewandelt. Nagut, wandel ich jetzt ASCII mal in meine Zahlen um.

Hallo zacki!

Du kannst den ASCII-Code mit CHR in einen Text umwandeln.
http://avrhelp.mcselec.com/index.html?chr.htm

Du kannst die Variable ``Txt`` auch direkt als STRING dimensionieren. Dann sollte das auch der Befehl LCD als Text erkennen und direkt ausgeben.
Code: Alles auswählen
Dim Txt as STRING * 1

Funktioniert das?

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
31653
Bronze Mitglied
 
Beiträge: 127
Registriert: Montag 30. Juli 2007, 11:19
Wohnort: Oberhofen im Inntal (Tirol)
Postleitzahl: 6410
Land: Austria / Österreich

Neuer Beitragvon zacki am Sonntag 17. Februar 2008, 13:14

:D Ja das funktioniert. Nur bringt er mir zur Abwechslung dauerhaft, also ohne Tastendruck ne 7 und * ist 7, 0=8 und #=9 .
zacki
Threadstarter
31654
Junior Mitglied
 
Beiträge: 23
Registriert: Freitag 4. Januar 2008, 08:31

Neuer Beitragvon gerold am Sonntag 17. Februar 2008, 13:38

zacki hat geschrieben::D Ja das funktioniert. Nur bringt er mir zur Abwechslung dauerhaft, also ohne Tastendruck ne 7 und * ist 7, 0=8 und #=9 .

Ich brauche Code und Anschlussplan. Wie ist das Tastenfeld genau angeschlossen?

http://img167.imageshack.us/img167/1848/keypad44tk2.png
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
31655
Bronze Mitglied
 
Beiträge: 127
Registriert: Montag 30. Juli 2007, 11:19
Wohnort: Oberhofen im Inntal (Tirol)
Postleitzahl: 6410
Land: Austria / Österreich

Genau so

Neuer Beitragvon zacki am Sonntag 17. Februar 2008, 13:55

Genau so wie im Bild, nur PB3 weggelassen weil ich ja 3x4 habe
zacki
Threadstarter
31656
Junior Mitglied
 
Beiträge: 23
Registriert: Freitag 4. Januar 2008, 08:31

Re: Genau so

Neuer Beitragvon gerold am Sonntag 17. Februar 2008, 14:02

zacki hat geschrieben:Genau so wie im Bild, nur PB3 weggelassen weil ich ja 3x4 habe

Hallo zacki!

Dann stimmt ``Config Kbd = Porta `` nicht.

Und wie soll ich jetzt ohne Code von dir herausfinden was falsch läuft? ;-)

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
31657
Bronze Mitglied
 
Beiträge: 127
Registriert: Montag 30. Juli 2007, 11:19
Wohnort: Oberhofen im Inntal (Tirol)
Postleitzahl: 6410
Land: Austria / Österreich

VorherigeNächste

Zurück zu Elektronik Allgemein

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 47 Gäste