so ich hab jetzt mal die timer anhand der drehzahl richtig eingestellt und es funktioniert jetzt nicht schlecht die schrift wackelt so ca 2-3mm... die timer funktionieren ab ca. 800 U/min und nach oben praktisch unbegrenzt (bis mein drehflügel auseinanderfliegt...)
hier mein vorschlag für die zeichenprogrammierung, für jedes Zeichen ein array mit 5 Spalten (meine Zeichen sind 7*5 Punkte) das währen bei mir ca 30 arrays aber es wird relativ aufwändig zum programmieren, und dann kommt die zeichenerkennung noch dazu...
kann man nicht irgendwie ein array definieren so in dieser art:
x(i)
Incr x
Incr i
damit man beide zahlen hochzählen kann....
hier mal mein prog (es zeigt die ersten 3 Buchstaben von HALLO)
:
Code:
$regfile = "m8def.dat"
$crystal = 8000000
$framesize = 512
$swstack = 512
$hwstack = 512
Config Portb = Output
Dim Umdrehung As Word
Dim Spaltenzeit As Byte
Dim I As Byte
Dim X As Byte
Dim 0(5) As Byte
Dim 1(5) As Byte
Dim 2(5) As Byte
Config Int0 = Falling
On Int0 Int0isr
Enable Int0
Config Timer0 = Timer , Prescale = 64
On Timer0 Timer0isr Nosave
Enable Timer0
Config Timer1 = Timer , Prescale = 8
On Timer1 Timer1isr Nosave
Enable Timer1
Enable Interrupts
Start Timer0
Do
0(1) = &B00000001
0(2) = &B11101111
0(3) = &B11101111
0(4) = &B11101111
0(5) = &B00000001
1(1) = &B10000001
1(2) = &B01101111
1(3) = &B01101111
1(4) = &B01101111
1(5) = &B10000001
2(1) = &B00000001
2(2) = &B11111101
2(3) = &B11111101
2(4) = &B11111101
2(5) = &B11111101
Loop
Int0isr:
Umdrehung = Timer1
Umdrehung = Umdrehung / 1200
Spaltenzeit = Umdrehung
Timer1 = 0
I = 0
X = 0
Return
Timer0isr:
Load Timer0 , Spaltenzeit
Incr I
If I > 5 Then
I = 0
Incr X
Portb = 255
Else
If X = 0 Then
Portb = 0(i)
Elseif X = 1 Then
Portb = 1(i)
Elseif X = 2 Then
Portb = 2(i)
End If
End If
Return
Timer1isr:
I = 0
X = 0
Return
--EDIT--
und so siehts nun aus:
Lesezeichen