wow das mit dem laser ist wirklich kewl! aber sicher extrem schwierig anzusteuern...
mein prog ist so gut wie fertig und schön schlank... habe nun das grose und kleine abc eingefügt... und braucht nur 25% auf dem mega8. hier wiedermal mein prog (wenn du möchtest kanst du das kleine abc von mir kopieren...):
und noch ein bild, ich werde den ganzen rotor nochmals neu bauen da er fast auseinanderfällt ;) und auf jedenfall hellere LED's...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 L As Byte
Dim Anzeige As String * 30
Dim Zeichen As String * 1
Dim Zeichenasc As Byte
Dim Spalte(150) As Byte
Dim Laenge As Byte
Dim Spalten As Byte
Dim Index As Word
Dim Stelle 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
Start Timer1
Anzeige = " Roboternetz"
Do
If L = Laenge Then
L = 0
X = 0
Stelle = 0
End If
Incr L
Zeichen = Mid(anzeige , L , 1)
Laenge = Len(anzeige)
Spalten = Laenge * 7
Zeichenasc = Asc(zeichen)
If Zeichen = " " Then
For I = 1 To 6
Incr Stelle
Spalte(stelle) = 255
Next I
End If
If Zeichenasc >= 65 And Zeichenasc <= 90 Then
Index = Zeichenasc - 65
Index = Index * 5
For I = 1 To 5
Incr Stelle
Spalte(stelle) = Lookup(index , Abc_gross)
Incr Index
Next I
Incr Stelle
Spalte(stelle) = 255
Incr Stelle
Spalte(stelle) = 255
End If
If Zeichenasc >= 97 And Zeichenasc <= 122 Then
Index = Zeichenasc - 97
Index = Index * 5
For I = 1 To 5
Incr Stelle
Spalte(stelle) = Lookup(index , Abc_klein)
Incr Index
Next I
Incr Stelle
Spalte(stelle) = 255
Incr Stelle
Spalte(stelle) = 255
End If
If Zeichenasc >= 48 And Zeichenasc <= 57 Then
Index = Zeichenasc - 48
Index = Index * 5
For I = 1 To 5
Incr Stelle
Spalte(stelle) = Lookup(index , 123)
Incr Index
Next I
Incr Stelle
Spalte(stelle) = 255
Incr Stelle
Spalte(stelle) = 255
End If
Loop
Int0isr:
Waitms 2
Umdrehung = Timer1
Umdrehung = Umdrehung / 1200
Spaltenzeit = Umdrehung
Timer1 = 0
Timer0 = 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
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:
--edit--
hab gerade bemerkt das beim kleinen "r" noch ein fehler drin ist...