Hallo Tryan,
unabhängig von der Programmiersprache würde ich zunächst mal in Frage stellen, jeden Punkt einzeln anzusteuern. Dass würde erstens zu viele Befehle benötigen (wie du bei dir siehst) und zweitens bestimmt zu ziemlichem Flimmern führen.
Wenn dein Portd immer eine Spalte freigibt, dann kannst du die 7 Punkte in einem Befehl schalten. Dazu würde ich für jedes Zeichen die fünf Spalten nacheinander durchgehen und die 5 Werte z.B. aus dem EEProm holen, wo du sie vorher für jede Zahl abgespeichert hast.
In Bascom würde das dann etwa so aussehen:
GrußCode:Dim Offset As Word Dim Zeichen As String * 1 Dim Spalte As Byte Dim Werte As Byte Declare Sub Out_zeichen(byval Z As String) Do Zeichen = "1" Call Out_zeichen(zeichen) Loop Sub Out_zeichen(byval Z As String) Offset = Asc(zeichen) - 49 'sucht Werte für Zeichen "1" ab EEProm Adresse 1 Offset = Offset * 5 'immer 5 Werte pro Zeichen Spalte = 1 Portb = &B11111111 Do Portd = 0 'zum Verhindern von Geisterbildern Incr Offset 'geht die 5 Werte durch Readeeprom Werte, Offset Portb = Werte 'lädt die Werte Portd = Spalte 'Gibt die Spalte frei Print Bin(werte) 'zum Testen Shift Spalte , Left 'erhöht auf die nächste Spalte Loop Until Spalte = 32 'stoppt nach der 5. Spalte End Sub $eeprom Data &B00000000 'Zelle 0 im EEProm nicht benutzen!!! Data &B11111111 , &B10111101 , &B10000000 , &B10111111 , &B11111111 '1 Data &B10111101 , &B10011110 , &B10101110 , &B10110110 , &B10111001 '2
Rolf







Zitieren

Lesezeichen