Also erstmal zur Hardware: 10 mal 5x7 Dotmatrix Bausteine die 50 Spalten sind jeweils immer an einem Ausgang eines Schieberegisterausgangs, die 7 Reihen werden immer an einen Port-Ausgang vom µC verbunden (porta 0-6). Das ganze wird Zeitmultigeplext (Zeilenweise) also 1/7 der Zeit ist immer eine Zeile aktiv und dazu die spalten angestuert. Das was ich auf der Matrix ausgeben will gebe ich per PC Tastatur ein. Ich verwende einen Atmel 8515 und programmiere in Bascom Nun zur Software: Die Software hab ich mir so gedacht: Ich lege einen Zeichensatz an in der ich jeden Buchstabe abspeicher H wäre dann z.b 10001 10001 10001 11111 10001 10001 10001. Wenn nun die erste Zeile aktiv ist lade ich die 10001 in das schieberegister die 2 aktiv 10001 bei der 4 dann die 11111 usw. somit hätte ich dann ein H! Nun zu meinem Problem: Ich will ja nicht nur ein H anzeigen lassen sondern ein Text der dann nach links durchläuft. Wie bekomme ich das hin das wenn ich auf der Tastatur ein HALLO tippe es dann auf der MAtrix ausgegeben wird?? Dazu müsste ich ja eine Variable anlegen in der das eingetippte gespeichert wird Dann im Zeichensatz nachschaun und immer die ersten bytes bei H 10001 bei A 011110 bei L 10000 usw in das Schieberegister laden. Aber wie mach ich das, das ich immer die ersten bytes von den buchstaben in das schieberegister bekomme. Vielleicht versteht ja einer mein Problem wenn nicht ihr könnt gerne Fragen oder wenn in ICQ anschreiben 120008371 MfG Daniel
>> Vielleicht versteht ja einer mein Problem
.. ich glaube schon: zu faul zum suchen !!
Das Thema kommt ja fast wöchentlich vor (nicht das Faul sein, ich mein
das Ansteuern von Matrix-Displays)
Versuchs mit der Forum-Suche und mit google. Und wenn du konkrete
Fragen hast wird dir in diesem Forum sicher kurzfristig geholfen.
grüsse leo9
Ja, Du brauchst eine Character-Table. In Asm die Bytes hintereinander, wenn Du das dritte Byte des sechsten Buchstabens brauchst, ist die gesuchte Adresse base+6*5+3. Wenn Du genug Platz hast oder Dein µC nicht multiplizieren kann, reserviere pro Buchstaben 8 Bytes, dann kannst Du die 6 um 3 nach links schieben und 3 addieren. In C: char chartable[128,5] gesuchtes Byte chartable[6,3] In Bascom: kann ich nicht, aber da wird es auch zweidimensionale (zur Not geht auch eindimensionales, s. Assembler) Arrays geben. Hilft Dir das? Ja, Du musst den Text in einem String speichern und für Laufschrift alle xx Millisekunden um eine Spalte weiter hinten beginnen. Das Multiplexen musst Du auch noch bedienen. Weitere Fragen? Her damit!
@ leo9 hättest du mal die ganzen einzelnen themen über ansteuerung einer dotmatrix hier durchgelesen wäre dir aufgefallen das soetwas was ich braucht in keinem beschrieben wird sondern immer nur das Multiplex verfahren oder sonstwas. Glaub mir ich hab die alle schon durchgelesen. Also mein Ansatz war mal so: In Bascom gibt es ein Befehl der nennt sich Shiftout mit dem kann man immer 8 bits rauschieben, die man in einer Variable gespeichert hat. So nun muss ich irgendwie (das ist mein Problem) immer das erste byte von einem Buchstaben den ich in nem Zeichensatz angelegt habt in die Variable bekommen in der dann das bitmuster für die erste zeile ist. Und das dann alles noch Variabel sodas ich je nach eingegebenem Text die Bitmuster ausgebe
So würde ein HALLO aussehen. Da ich das ganze ja zeilenweise multiplex brauche ich ja immer die ersten bytes des buchstabens 1. Byte: 10001 01110 10000 10000 01110 2. Byte: 10001 10001 10000 10000 10001 3. Byte: 10001 10001 10000 10000 10001 4. Byte: 11111 11111 10000 10000 10001 5. Byte: 10001 10001 10000 10000 10001 6. Byte: 10001 10001 10000 10000 10001 7. Byte: 10001 10001 11111 11111 01110 Also würde das Bitmuster für die erste Zeile so aussehn 10001 01110 10000 10000 01110
Ja und wo ist jetzt das Problem? dim chartab(128,7) chartab( 65,1)=$0e ;A chartab( 65,2)=$11 chartab( 65,3)=$11 chartab( 65,4)=$1F chartab( 65,5)=$11 chartab( 65,6)=$11 chartab( 65,7)=$11 chartab( 66,1)=$1E ;B .... out1=chartab(strin(1),1) out2=chartab(strin(2),1) out3=chartab(strin(3),1) wobei ich die Syntax von Basic nicht (mehr) kann. strin(1) ist der erste Buchstabe (H) des Strings strin (HALLO). chartab(strin(1),1) ist das erste (oberste) Byte des 1. Buchstabens (H) chartab(strin(2),1) ist das erste (oberste) Byte des 2. Buchstabens (A) chartab(strin(1),2) ist das zweite Byte des 1. Buchstabens (H) Stell Deine Frage (im letzten Post war gar keine Frage...) doch ein wenig genauer, dann kann Dir auch geholfen werden.
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.