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:







Zitieren

Lesezeichen