Hallo, wie kann ich mit angeschlossenen Taster (die als Tastatur funktionieren sollen) einen Text auf´s angeschlossene Lcd-Display schreiben. Ich programmiere mit Bascom und einem 2313 Gruß und Dankeschön Max
Wieviele Taster haste denn zur Verfügung? Prinzipiell sollte es mit einem einzelnen gehen, aber dann mußt du alles über Zeitunterschiede machen, also Wie lange der Taster gedrückt wird etc. Gruss Chriss
Yo,Ein Problem ohne jegliche Information. Typisch Weihnachtstopics. @Max Schau dich mal in der Bascomhilfe um da wird ne Matrixtastatur behandelt. Kannst dir das also entsprechend anpassen.
Meine Frage bezog sich eigentlich auf Allgemeine Vorgehen. Wie es überhaupt funktioniert... Da ich einen Text schreiben will muss ich Taster von a-z haben. Mittlerweile habe ich es mit einer Schleife gelöst und waitms 180 dahintergehängt, damit wirklich nur ein Buchstaben pro Tastendruck angezeigt wird. Mit der Bascom Hilfe konnte ich in diesem Fall leider nicht zu viel anfangen.
Schließ' doch einfach 'ne PC-Tastatur an. Da bist Du das Problem des Entprellen los (das macht der µC in der Tastatur selbst), brauchst nur zwei Portleitungen und musst so gut wie kein Geld investieren - einfache PC-Tastaturen bekommt man für unter 10 EUR.
@Max >Meine Frage bezog sich eigentlich auf Allgemeine Vorgehen. >Wie es überhaupt funktioniert... >Da ich einen Text schreiben will muss ich Taster von a-z haben. Geht auch mit mehrfachbelegungen ala Handy/Schnurlostelefon. >Mittlerweile habe ich es mit einer Schleife gelöst und waitms 180 >dahintergehängt, damit wirklich nur ein Buchstaben pro Tastendruck >angezeigt wird. >Mit der Bascom Hilfe konnte ich in diesem Fall leider nicht zu viel >anfangen. Dann haste se nicht richtig gelesen (Häufiger Fehler.Schnell was zusammenkloppen und dabei keine Zeit für die Hilfe haben) denn wenn dann wäre dir "Debounce" aufgefallen der einzig und alleine genau für den Zweck einer Entprellung einer Taste oder eines Schalters gedacht ist. '-)
Kennst du diese APP-Note schon? http://www.atmel.com/dyn/resources/prod_documents/doc1232.pdf Das ist eine Ansteuerung einer 4x4 Tastatur erläutert, allerdings Assembler, glaub ich. Gruss Chriss
@Ratber Das mit Debounce hab ich schon versucht hat aber bei mir nicht so ganz geklappt, da ich nicht wusste wie man es einbindet und konfiguriert...trotz Bascom Hilfebeispiel Aber da werd ich mir das nochmal genauer angucken müssen, wenn man das mit diesem normal macht @Chriss ja kenn ich schon...aber ich brauche 26 Taster. 4x4=16 ...wenn man jetzt eine zweite Matrix mit 4x4 noch dazu anschließen würde (parallel?)dann hätte ich 32 und hätte sogar noch en paar frei. nur wie frage ich dann einen parallelangeschlossene Tastatur ab??
Was ist denn an der Bascom-Hilfe so schwer ? ============================================= Example '----------------------------------------------------- ' DEBOUN.BAS ' Demonstrates DEBOUNCE '----------------------------------------------------- Config Debounce = 30 'when the config statement is not used a default of 25mS will be used 'Debounce Pind.0 , 1 , Pr 'try this for branching when high(1) Debounce Pind.0 , 0 , Pr , Sub Debounce Pind.0 , 0 , Pr , Sub ' ^----- label to branch to ' ^---------- Branch when P1.0 goes low(0) ' ^---------------- Examine P1.0 'When Pind.0 goes low jump to subroutine Pr 'Pind.0 must go high again before it jumps again 'to the label Pr when Pind.0 is low Debounce Pind.0 , 1 , Pr 'no branch Debounce Pind.0 , 1 , Pr 'will result in a return without gosub End Pr: Print "PIND.0 was/is low" Return =======================================0 (Farbliche Hervorhebungen fehlen) Also da ist alles sonnenklar erklärt und kommentiert. Du hast anscheinend arge Probleme damit Bascom zu verstehen. Warum ?
@Max: von Bascom weiss ich gar nix... ..aber Du kannst ja doch einfach ne 6x6-Tastatur-Matrix oder ne 5x6-Matrix basteln...hast genauso viele Tasten und verbrätst nicht so viele Portpins.... Und Gruss!
@Nilspeter >von Bascom weiss ich gar nix... Aber mitreden wollen. tststs >..aber Du kannst ja doch einfach ne 6x6-Tastatur-Matrix oder ne >5x6-Matrix basteln...hast genauso viele Tasten und verbrätst nicht so >viele Portpins.... Ja,was meinste denn wovon die Leute hier reden ? Sorry wenn es nun hart klingt aber wenn man nicht richtig mitliest und vom betreffenden Compiler nix weiß dann hält man sich besser raus aus dem Thema. Oder bringst du auch woanders Kommentare zu Themen von denen du auch nix weißt ?
"Du hast anscheinend arge Probleme damit Bascom zu verstehen. Warum ?" weil ich noch nicht soviel programmiert habe (außer halt Pascal (;) Ich habe ehrlich gesagt auch noch nicht so ganz den Anschluss einer Matrix verstanden.Bei 5x6 hätte ich ja 30 Taster und 11 Anschlüsse? Oder hab ich das doch richtig verstanden? Aber wo schließe ich dann 11 Anschlüsse an einen 2313 an . Ich habe schon mal gelesen, dass man da so viel bzw noch viel mehr anschließen kann ..nur ist mir das noch nicht ganz klar(trotz verschiedenenr Tutorials) Könntest du mir diesen Part vielleicht doch mal kurz erklären: 'Debounce Pind.0 , 1 , Pr 'try this for branching when high(1) Debounce Pind.0 , 0 , Pr , Sub Debounce Pind.0 , 0 , Pr , Sub ' ^----- label to branch to ' ^---------- Branch when P1.0 goes low(0) ' ^---------------- Examine P1.0 DAnkeschön (;
Hallo wieviel "Text" willst du denn eintippen??? 1,2,3 Zeichen oder ganze Romane? wenn es sich nur um ein paar kleine Strings handelt wuerde ich endweder 4 - 5 Tasten nehmen Taste1 Set Taste2 Vor Taste3 Zurueck Taste4 Zeichen hoch Taste5 Zeichen runter in dieser Art laeuft das auch in einigen OnScreenMenes bei Media geraeten wie Fernseher etc kannst ja mal schauen, ob du irgendwo einen kleinen Joystick findest damit sind geuebte Finnger recht flot oder eben die doppelt bis 4fach belegte Zahlentasten wie bei einem Handy oder Telefon.. da brauchtest 3 + 4 Leitungen evtl kannst du auch 4 + 4 leitungen nutzen und hast noch einge Tasten frei fuer Diverse Aufgaben wie Save Print etc Mit freundlichen Grüßen Jens
@Max >weil ich noch nicht soviel programmiert habe (außer halt Pascal (;) Ja,das ist verständlich aber es ändert ja nix daran das du mit der Hilfe nicht klarkommst denn da steht eigentlich alles drinne. Sogar schöne Beispiele gibt es dort zu fast jedem Befehl Das man sich erstmal einliest halte ich dabei für selbstverständlich. Da du schon in Pascal programiert hast sollte dir der Einstig eigentlich noch viel einfacher fallen. >Ich habe ehrlich gesagt auch noch nicht so ganz den Anschluss einer >Matrix verstanden.Bei 5x6 hätte ich ja 30 Taster und 11 Anschlüsse? Das ist korrekt. Wenn ein Taster geschlossen wird dann verbindet er eine Spalte mit einer Zeile und damit ist die Taste lokalisierbar. Die auswertung erfolgt dann in Software. >Oder hab ich das doch richtig verstanden? Aber wo schließe ich dann >11 >Anschlüsse an einen 2313 an . Direkt anschließen kannst du das natürlich nur an einen Controller der auch die entsprechenden Ports hat. soviel sollte noch Logisch sein oder ? >Ich habe schon mal gelesen, dass man da >so viel bzw noch viel mehr anschließen kann ..nur ist mir das noch >nicht ganz klar(trotz verschiedenenr Tutorials) Das ist garnicht so kompliziert wie es sich anhöhrt. Es gibt mehrere Möglichkeiten aber ich greife mal 2 heraus die recht Brauchbar sind. Zum einen nimmst du 3 Portpinne und 1 bis X (Je nach Zahl der benötigten Bits) Bidirektionale Schieberegister (Oder I2C Portbausteine) und machst es Seriell. Da die Lesegeschwindigkeit eh nicht sehr hoch sein muß reicht das vollkommen aus und du brauchst eben nur 3 Portbits egal ob 4x4 oder 16x16 Matrix (Immerhin 256 mögliche Tasten) Die andere Möglichkeit ist einen (Oder mehrere. je Nach Zahl der Tasten) AD-Port zu nehmen und mit den Tasten eine Matrix plus Widerständen aufzubauen. Eine 4x4 Matrix braucht dann nurnoch einen AD-eingang und hat immernoch eine gute zuverlässige Lesemöglichkeit. >Könntest du mir diesen Part vielleicht doch mal kurz erklären: > 'Debounce Pind.0 , 1 , Pr 'try this for branching when high(1) > Debounce Pind.0 , 0 , Pr , Sub > Debounce Pind.0 , 0 , Pr , Sub > ' ^----- label to branch to > ' ^---------- Branch when P1.0 goes low(0) > ' ^---------------- Examine P1.0 Yo,kann ich.(Steht aber auch schon in der Befehlerklärung) Die Syntax ist "DEBOUNCE Px.y , state , label [ , SUB]" "Px,Y" Steht für Port und Bit (zb. Port A Bit 4 wäre "Debounce PinA.4" "State" gibt an wann ein Tastendruck erkannt werden soll. Also entweder bei Logisch 1 (Wenn Taster Schließt) oder 0 (Wenn Öffner verwendet werden) "Label" gibt an zu welcher Routine es geht wenn eine Taste gedrückt wird. Steht da also "Williwutz" dann springt er zur Routine "Williwutz" Und wenn dann noch hinten ein "Sub" steht dann gilt der Sprung nicht nur als "Goto" sondern als "Gosub" also als klassischer Unterroutinenaufruf mit rückkehr wenn diese erledigt ist. Das ist schon alles. Mit "Configdebiounce" wird dann noch festgelegt wie lange die Prüfzeit (in Millisekunden) ist bevor die der Tastendruck als gültig gegeben wird. Fehlt "Configdebounce" dann wird standardmäßig 25ms genommen. Hast du also Taster die länger als 25ms Prellen dann wird eben entsprechend verlängert um fehlinterpretationen zu vermeiden. Und mal so nebenbei: Mit 99% der Befehler in Bascom bin ich sofort zurechtgekommen. Beim Rest hab ich dann auch etwas nachdenken müssen wie man das so gemeint haben könnte aber mit "mal eben" rumprobieren war das auch kein akt. Das ist übrigens die beste Methode. Einfach mal auf nem Steckboard alles ausprobieren und rumspielen. Dann kommen auch schnell die Ideen wie man möglichst effektiv mit dem Controller Arbeiten kann. Hau dir ne kleine 4x4 Matrix drann und einige LED's,vieleicht noch nen LCD und Spiel ne Weile mit dem Teil herum (Den Controller kannste locker über 10'000 mal programieren.(Meist das Doppelte) bis der Speicher schlapp macht). Das nimmt die Hemmungen und gibt Übung mit allen Komponennten. Von "0" direkt auf Anhieb auf "Endprodukt" wirds meistens garnix. Oder hast du schon jemanden gesehen der sofort nach dem ersten aufsteigen perfekt mit seinem Krad umgehen konnte ? Ich nicht. Ich brauch bei jedem neuen Bock immer ne Weile (mit viel Probieren) bis ich behaupten kann das ich ihn behersche und nicht er mich. Bei Controllern und sprachen ist es genauso. Vielzuviele wollen ohne Übung gleich ein Megaprojekt auf die Beine stellen und oft landet der ganze Dreck dann nach einigen Problemen in der Ecke weil man zb. nichtmal genau weiß wie man die Ports richtig beschaltet und auch anspricht. Lass dir also Zeit und Probier rum bis der Professor glüht. anders lernste nix. '-)
>
Lass dir also Zeit und Probier rum bis der Professor glüht.
*=)*
Zitat eines Kollegens
"... der Schmit Trigger... " =)
Gruss
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.