Hallo

Mein Code ist jetzt soweit fertig
(Satz wird auch zentriert)
Code:
 '--------Drehlicht-----V1.13-neu---------------
 ' 8MHz RC Intern

$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 200
$swstack = 200
$framesize = 200


'---Config Port's -----------------
Config Portb = Output                                       'Leds
Portb = 255

Config Portd = Input
Portd = 255

'---config Int0------
Config Int0 = Falling
Enable Int0
On Int0 Kontakt

'--- Config Timer1 ----
Config Timer1 = Timer , Prescale = 8
Enable Timer1

'--- Config Timer0 ------
Config Timer0 = Timer , Prescale = 8
Enable Timer0
On Timer0 Spalten


Enable Interrupts
Load Timer0 , 255


Dim Drehzeit As Long
Dim Spaltenzeit As Word
Dim B1 As Byte

Dim Spalte(350) As Byte
Dim Array_zaehler As Word


Dim A As Byte
Dim I As Byte

'Saetze
Dim Satz As String * 45
Dim Zeichen As String * 1
Dim Asc_zeichen As Byte
Dim Satzlaenge As Word
Dim X As Word                                               'Spaltenzaehler für Zeichen auftragen
Dim Zeichenasc As Byte

Dim Lowchar As Byte
Dim Hichar As Byte
Dim Tabadr As Word
Dim Index As Word

Timer1 = 0
Timer0 = 0
Array_zaehler = 0
X = 0



 '--------------------Hauptprogramm--------------------------
For X = 1 To 350                                            'Array Löschen
    Spalte(x) = 255                                         'max. Spalten
Next X
X = 0
'--------------------------------------------------
Waitms 20
Do
Satz = "Test Test Test Test Test Test"
Gosub Auswerten
Waitms 20


Satz = "0123456789"
Gosub Auswerten
Waitms 50

Satz = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Gosub Auswerten
Waitms 50

Satz = "abcdefghijklmnopqrstuvwxyz"
Gosub Auswerten
Waitms 50

Satz = "Ende"
Gosub Auswerten
Waitms 50


Loop


End





'==============================Unterprogramme===================================
'--------------ISR von Int0--------------------
Kontakt:
Drehzeit = Timer1
Timer1 = 0
Timer0 = 0
Spaltenzeit = Drehzeit / 510
Array_zaehler = 0
Return

'------------ISR von Timer0 --------------------
Spalten:
Load Timer0 , Spaltenzeit

Portb = 255                                                 'Lösche Spalte
If Array_zaehler < 350 Then
   Incr Array_zaehler
   Portb = Spalte(array_zaehler)                            'Werte auf Rotor auftragen
  End If

Return





'--------------------Zeichen Auswerten ----------------------
Auswerten:
For X = 1 To 350                                            'Array Löschen
    Spalte(x) = 255
Next X


Satzlaenge = Len(satz)                                      'Ermittle die  Satzlänge
X = Satzlaenge * 7                                          'Errechne die Position
X = X / 2                                                   'für den Start
X = 175 - X

For A = 1 To Satzlaenge                                     'Eine Schleife für jedes Zeichen der Satzlänge
    Zeichen = Mid(satz , A , 1)                             'Zeichen pro Zeichen auswerten
    Zeichenasc = Asc(zeichen)

   If Zeichen = " " Then                                    'Leerzeichen machen
       For I = 1 To 7
        Incr X
        Spalte(x) = 255
       Next I
    End If

   Lowchar = 65                                             'Prüfe Zeichen A-Z
   Hichar = 90
   Tabadr = Loadlabel(abc_gross)
   Gosub Daten_suchen

   Lowchar = 97                                             'Prüfe Zeichen a-z
   Hichar = 122
   Tabadr = Loadlabel(abc_klein)
   Gosub Daten_suchen

   Lowchar = 48                                             'Prüfe Zahlen 0-9
   Hichar = 57
   Tabadr = Loadlabel(123)
   Gosub Daten_suchen
Next A

Return

'--------------Daten von Zeichen suchen---------------------------------------
Daten_suchen:
   If Zeichenasc >= Lowchar And Zeichenasc <= Hichar Then
     Index = Zeichenasc - Lowchar
     Index = Index * 5
     Tabadr = Tabadr + Index
     For I = 1 To 5
         Incr X
         Spalte(x) = Cpeek(tabadr)                          'hole Daten
         Incr Tabadr
         Incr Index
     Next I
     Incr X
     Spalte(x) = 255                                        'leere Spalte
     Incr X
     Spalte(x) = 255                                        'leere Spalte
   End If
Return




'----------Zeichensatz--------------------

Abc_gross:
Data &B10000001 , &B01101111 , &B01101111 , &B01101111 , &B10000001
Data &B00000001 , &B01101101 , &B01101101 , &B01101101 , &B10010011
Data &B11000111 , &B10111011 , &B01111101 , &B01111101 , &B01111101
Data &B00000001 , &B01111101 , &B01111101 , &B10111011 , &B11000111
Data &B00000001 , &B01101101 , &B01101101 , &B01111101 , &B01111101
Data &B00000001 , &B01101111 , &B01101111 , &B01111111 , &B01111111
Data &B10000011 , &B01111101 , &B01101101 , &B01101101 , &B01100011
Data &B00000001 , &B11101111 , &B11101111 , &B11101111 , &B00000001
Data &B11111111 , &B01111101 , &B00000001 , &B01111101 , &B11111111
Data &B11111011 , &B01111101 , &B00000001 , &B01111111 , &B11111111
Data &B00000001 , &B11101111 , &B11010111 , &B10111011 , &B01111101
Data &B00000001 , &B11111101 , &B11111101 , &B11111101 , &B11111101
Data &B00000001 , &B10111111 , &B11001111 , &B10111111 , &B00000001
Data &B00000001 , &B11011111 , &B11101111 , &B11110111 , &B00000001
Data &B10000011 , &B01111101 , &B01111101 , &B01111101 , &B10000011
Data &B00000001 , &B01101111 , &B01101111 , &B01101111 , &B10011111
Data &B10000011 , &B01111101 , &B01110101 , &B01111011 , &B10000101
Data &B00000001 , &B01101111 , &B01100111 , &B01101011 , &B10011101
Data &B10011101 , &B01101101 , &B01101101 , &B01101101 , &B01110011
Data &B01111111 , &B01111111 , &B00000001 , &B01111111 , &B01111111
Data &B00000011 , &B11111101 , &B11111101 , &B11111101 , &B00000011
Data &B00000111 , &B11111011 , &B11111101 , &B11111011 , &B00000111
Data &B00000011 , &B11111101 , &B11100011 , &B11111101 , &B00000011
Data &B00111001 , &B11010111 , &B11101111 , &B11010111 , &B00111001
Data &B00011111 , &B11101111 , &B11110001 , &B11101111 , &B00011111
Data &B01111001 , &B01110101 , &B01101101 , &B01011101 , &B00111101

Abc_klein:
Data &B11111011 , &B11010101 , &B11010101 , &B11010101 , &B11100001
Data &B00000001 , &B11110101 , &B11101101 , &B11101101 , &B11110011
Data &B11100011 , &B11011101 , &B11011101 , &B11011101 , &B11111011
Data &B11110011 , &B11101101 , &B11101101 , &B11110101 , &B00000001
Data &B11100011 , &B11010101 , &B11010101 , &B11010101 , &B11100111
Data &B11101111 , &B10000001 , &B01101111 , &B01111111 , &B10111111
Data &B11001111 , &B10110101 , &B10110101 , &B10110101 , &B10000011
Data &B00000001 , &B11101111 , &B11011111 , &B11011111 , &B11100001
Data &B11111111 , &B11111111 , &B10100001 , &B11111111 , &B11111111
Data &B11111011 , &B11111101 , &B11011101 , &B01000011 , &B11111111
Data &B00000001 , &B11110111 , &B11101011 , &B11011101 , &B11111111
Data &B11111111 , &B01111101 , &B00000001 , &B11111101 , &B11111111
Data &B11000001 , &B11011111 , &B11100111 , &B11011111 , &B11100001
Data &B11000001 , &B11101111 , &B11011111 , &B11101111 , &B11100001
Data &B11100011 , &B11011101 , &B11011101 , &B11011101 , &B11100011
Data &B11000001 , &B11010111 , &B11010111 , &B11010111 , &B11101111
Data &B11101111 , &B11010111 , &B11010111 , &B11100111 , &B11000001
Data &B11000001 , &B11101111 , &B11011111 , &B11101111 , &B11101111
Data &B11101101 , &B11010101 , &B11010101 , &B11010101 , &B11111011
Data &B11011111 , &B00000011 , &B11011101 , &B11111101 , &B11111011
Data &B11000011 , &B11111101 , &B11111101 , &B11111011 , &B11000001
Data &B11000111 , &B11111011 , &B11111101 , &B11111011 , &B11000111
Data &B11000011 , &B11111101 , &B11110011 , &B11111101 , &B11000011
Data &B11011101 , &B11101011 , &B11110111 , &B11101011 , &B11011101
Data &B11001111 , &B11110101 , &B11110101 , &B11110101 , &B11000011
Data &B11011101 , &B11011001 , &B11010101 , &B11001101 , &B11011101


123:

Data &B10000011
Data &B01011101
Data &B01101101
Data &B01110101
Data &B10000011

Data &B11111111
Data &B10111101
Data &B00000001
Data &B11111101
Data &B11111111

Data &B10111101
Data &B01111001
Data &B01110101
Data &B01101101
Data &B10011101

Data &B01111011
Data &B01111101
Data &B01011101
Data &B00101101
Data &B01110011

Data &B11100111
Data &B11010111
Data &B10110111
Data &B00000001
Data &B11110111

Data &B00011011
Data &B01011101
Data &B01011101
Data &B01011101
Data &B01100011

Data &B11000011
Data &B10101101
Data &B01101101
Data &B01101101
Data &B11110011

Data &B01111111
Data &B01110001
Data &B01101111
Data &B01011111
Data &B00111111

Data &B10010011
Data &B01101101
Data &B01101101
Data &B01101101
Data &B10010011

Data &B10011111
Data &B01101101
Data &B01101101
Data &B01101011
Data &B10000111
@bluesmash
Hatte deinen Code auch mal probiert.
Deiner reagiert ein bisschen anders als meiner.
Bei dir flackern die Led's auch, wenn der Rotor sich nicht dreht..
Bei mir nur, nach einer Drehung..

Wegen dem Zeichensatz.
Schade das man so eigentlich die 8the Led nicht benutzt. (nur 1-7)
Müsste man eventuell umschreiben... (Fleissaufgabe )