Hi for_ro

Von der Grundfunktion, funktionier das Programm nun
Code:
$regfile = "m16DEF.DAT"
$crystal = 16000000
Config Porta = Output
Config Portb = Output
Config Portc = Output                             'Zeilen
Config Portd = Input                              'Spalten

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

End

Sub Out_zeichen(byval Z As String)
   Offset = Asc(z) - 49                           'sucht Werte für Zeichen "1"
   Offset = Offset * 5                            'immer 5 Werte pro Zeichen
   Spalte = 1
   Portc = &B11111111
   Do
      Porta = 0                                   'zum Verhindern von Geisterbildern
      Incr Offset                                 'geht die 5 Werte durch
      Werte = Lookup(offset , Zeichen_data)

      Portc = Werte                               'lädt die Werte
      Porta = Spalte                              'Gibt die Spalte frei
      Waitms 5

      Shift Spalte , Left                         'erhöht auf die nächste Spalte
   Loop Until Spalte = 32                         'stoppt nach der 5. Spalte

End Sub



Zeichen_data:
Data &B00000000                                   'Zelle 0 im EEProm nicht benutzen!!!
Data &B11111111 , &B10111101 , &B10000000 , &B10111111 , &B11111111       '1
Data &B10111101 , &B10011110 , &B10101110 , &B10110110 , &B10111001       '2
Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000000       '3 TEST
Leider ist die gleichmäßige Ausleuchtung sehr schlecht...
Wäre es nicht eigentlich besser die Zeilen immer frei zu geben und den spalten ein Bitmuster zu geben?
Oder müsste man das Programm mit Absicht verlangsamen, sodass die LEDs länger angesprochen werden? Waitus XX ?

Ich habe noch ein weiteres Programm gefunden, das eine Matrix ansteuern kann
Code:
$regfile = "m16DEF.DAT"
$crystal = 16000000
$baud = 19200


Dim A(7) As Byte

Dim Leds As Byte
Dim I As Byte
Dim J As Byte

Config Porta = Output
Porta = 0

Config Portc = Output
Portc = &HFF

Restore Dotmatrix

For I = 1 To 8
    Read A(i)
Next

Do


For I = 0 To 6
 Portc = &HFF
 Reset Portc.i
 J = I + 1
 Waitus 750
 Porta = A(j)
 Next
Loop
End

Dotmatrix:
Data &B11100110 , &B11100100 , &B11100100 , &B11100100 , &B11100100 , &B11101110 , &B11100100
Data &B11110001 , &B11100000 , &B11100000 , &B11100000 , &B11100000 , &B11101110 , &B11101110
Nur habe ich es da leider noch nicht geschafft in die zweite "Datenzeile" zu springen, wie es mit dem deinem Programm so einfach war.



Mfg Tryan[code]