@vogon: ich hab mich jetzt noch ein bisschen informiert und es gibt keine mehrdimensionale arrays unter bascom... leider...
ich habe mich jetzt für folgende variante entschieden umd die Zeichen des strings ind die anzuzeigenden spalten zu bekommen:
Code:
$regfile = "m8def.dat"
$crystal = 8000000
$framesize = 512
$swstack = 512
$hwstack = 512
Config Portb = Output
Dim Umdrehung As Word
Dim Spaltenzeit As Byte
Dim A As Byte
Dim X As Byte
Dim I As Byte
Dim Anzeige As String * 30
Dim Zeichen As String * 1
Dim Spalte(150) As Byte
Dim Laenge As Byte
Dim Spalten As Byte
Config Int0 = Falling
On Int0 Int0isr
Enable Int0
Config Timer0 = Timer , Prescale = 64
On Timer0 Timer0isr
Enable Timer0
Config Timer1 = Timer , Prescale = 8
On Timer1 Timer1isr
Enable Timer1
Enable Interrupts
Start Timer0
Anzeige = "ABCDEFGHIJKLO"
Do
If I = Laenge Then
I = 0
X = 0
End If
Incr I
Zeichen = Mid(anzeige , I , 1)
Laenge = Len(anzeige)
Spalten = Laenge * 6
If Zeichen = "A" Then
Incr X
Spalte(x) = &B10000001
Incr X
Spalte(x) = &B01101111
Incr X
Spalte(x) = &B01101111
Incr X
Spalte(x) = &B01101111
Incr X
Spalte(x) = &B10000001
Incr X
Spalte(x) = &B11111111
End If
If Zeichen = "B" Then
Incr X
Spalte(x) = &B00000001
Incr X
Spalte(x) = &B01101101
Incr X
Spalte(x) = &B01101101
Incr X
Spalte(x) = &B01101101
Incr X
Spalte(x) = &B10010011
Incr X
Spalte(x) = &B11111111
End If
If Zeichen = "C" Then
Incr X
Spalte(x) = &B11000111
Incr X
Spalte(x) = &B10111011
Incr X
Spalte(x) = &B01111101
Incr X
Spalte(x) = &B01111101
Incr X
Spalte(x) = &B01111101
Incr X
Spalte(x) = &B11111111
End If
If Zeichen = "D" Then
Incr X
Spalte(x) = &B00000001
Incr X
Spalte(x) = &B01111101
Incr X
Spalte(x) = &B01111101
Incr X
Spalte(x) = &B10111011
Incr X
Spalte(x) = &B11000111
Incr X
Spalte(x) = &B11111111
End If
If Zeichen = "E" Then
Incr X
Spalte(x) = &B00000001
Incr X
Spalte(x) = &B01101101
Incr X
Spalte(x) = &B01101101
Incr X
Spalte(x) = &B01111101
Incr X
Spalte(x) = &B01111101
Incr X
Spalte(x) = &B11111111
End If
If Zeichen = "F" Then
Incr X
Spalte(x) = &B00000001
Incr X
Spalte(x) = &B01101111
Incr X
Spalte(x) = &B01101111
Incr X
Spalte(x) = &B01111111
Incr X
Spalte(x) = &B01111111
Incr X
Spalte(x) = &B11111111
End If
If Zeichen = "G" Then
Incr X
Spalte(x) = &B10000011
Incr X
Spalte(x) = &B01111101
Incr X
Spalte(x) = &B01101101
Incr X
Spalte(x) = &B01101101
Incr X
Spalte(x) = &B01100011
Incr X
Spalte(x) = &B11111111
End If
If Zeichen = "H" Then
Incr X
Spalte(x) = &B00000001
Incr X
Spalte(x) = &B11101111
Incr X
Spalte(x) = &B11101111
Incr X
Spalte(x) = &B11101111
Incr X
Spalte(x) = &B00000001
Incr X
Spalte(x) = &B11111111
End If
If Zeichen = "I" Then
Incr X
Spalte(x) = &B11111111
Incr X
Spalte(x) = &B01111101
Incr X
Spalte(x) = &B00000001
Incr X
Spalte(x) = &B01111101
Incr X
Spalte(x) = &B11111111
Incr X
Spalte(x) = &B11111111
End If
If Zeichen = "J" Then
Incr X
Spalte(x) = &B11111011
Incr X
Spalte(x) = &B01111101
Incr X
Spalte(x) = &B00000001
Incr X
Spalte(x) = &B01111111
Incr X
Spalte(x) = &B11111111
Incr X
Spalte(x) = &B11111111
End If
If Zeichen = "K" Then
Incr X
Spalte(x) = &B00000001
Incr X
Spalte(x) = &B11101111
Incr X
Spalte(x) = &B11010111
Incr X
Spalte(x) = &B10111011
Incr X
Spalte(x) = &B01111101
Incr X
Spalte(x) = &B11111111
End If
If Zeichen = "L" Then
Incr X
Spalte(x) = &B00000001
Incr X
Spalte(x) = &B11111101
Incr X
Spalte(x) = &B11111101
Incr X
Spalte(x) = &B11111101
Incr X
Spalte(x) = &B11111101
Incr X
Spalte(x) = &B11111111
End If
If Zeichen = "O" Then
Incr X
Spalte(x) = &B10000011
Incr X
Spalte(x) = &B01111101
Incr X
Spalte(x) = &B01111101
Incr X
Spalte(x) = &B01111101
Incr X
Spalte(x) = &B10000011
Incr X
Spalte(x) = &B11111111
End If
Loop
Int0isr:
Umdrehung = Timer1
Umdrehung = Umdrehung / 1200
Spaltenzeit = Umdrehung
Timer1 = 0
A = 0
Return
Timer0isr:
Load Timer0 , Spaltenzeit
Incr A
If A > Spalten Then
Portb = 255
Else
Portb = Spalte(a)
End If
Return
Timer1isr:
I = 0
X = 0
Return
Lesezeichen