Hallo
Habe gesucht, aber nix vernünftiges gefunden![]()
Bei ein paar passte der Code nicht..
Werde mir den wohl selber machen.
@bluesmash
Habe den Code jetzt so:
Hatte das zuerst auch so wie du gemacht, zwischen den Spalten, jeweils die X um eins hochzählen.Code:'--------Drehlicht-----V1.12--------------- ' 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 Word Dim B As Word Dim C 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 Timer1 = 0 Array_zaehler = 0 C = 254 X = 0 '--------------------Hauptprogramm-------------------------- For X = 1 To 350 'Array Löschen Spalte(x) = 255 Next X X = 0 '-------------------------------------------------- Do Satz = "A A ABH AA AAAA AA A A AAA A" Gosub Auswerten Waitms 5 For X = 1 To 350 'Array Löschen Spalte(x) = 255 Next X Waitms 5 Satz = "HHHHBBBAA A AA B" Gosub Auswerten Waitms 5 For X = 1 To 350 'Array Löschen Spalte(x) = 255 Next X Waitms 10 Loop End '==============================Unterprogramme=================================== '--------------ISR von Int0-------------------- Kontakt: Drehzeit = Timer1 Timer1 = 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: X = 0 'Spaltenzaehler auf Null Satzlaenge = Len(satz) 'Ermittle die länge der Satzlänge For A = 1 To Satzlaenge 'Eine Schleife für jedes Zeichen der Satzlänge Zeichen = Mid(satz , A , 1) 'Zeichen pro Zeichen auswerten If Zeichen = " " Then 'für Leerzeichen Incr X : Spalte(x) = 255 Restore Leerzeichen For B = 1 To 3 Incr X Read Spalte(x) Next B Incr X : Spalte(x) = 255 End If If Zeichen = "A" Then 'grosses A Incr X : Spalte(x) = 255 Restore Gross_a For B = 1 To 5 Incr X Read Spalte(x) Next B Incr X : Spalte(x) = 255 End If If Zeichen = "B" Then 'grosses B Incr X : Spalte(x) = 255 Restore Gross_b For B = 1 To 5 Incr X Read Spalte(x) Next B Incr X : Spalte(x) = 255 End If If Zeichen = "H" Then 'grosses H Incr X : Spalte(x) = 255 Restore Gross_h For B = 1 To 5 Incr X Read Spalte(x) Next B Incr X : Spalte(x) = 255 End If Next A Return '----------Zeichensatz-------------------- Leerzeichen: Data &B11111111 Data &B11111111 Data &B11111111 Gross_a: Data &B11000000 Data &B10110111 Data &B01110111 Data &B10110111 Data &B11000000 Gross_b: Data &B00000000 Data &B01101110 Data &B01101110 Data &B01101110 Data &B10010001 Gross_c: Data &B10000001 Data &B01111110 Data &B01111110 Data &B01111110 Data &B10111101 Gross_d: Data &B00000000 Data &B01111110 Data &B01111110 Data &B01111110 Data &B10000001 Gross_e: Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Gross_f: Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Gross_g: Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Data &B11111111 Gross_h: Data &B00000000 Data &B11101111 Data &B11101111 Data &B11101111 Data &B00000000
Bin aber wieder davon abgekommen.
Mit Schleifen kann man dann leichter einen neuen Zeichensatz hinzufügen![]()







Zitieren

Lesezeichen