Hallo
Ich verstehe das auch nicht ganz....
Aber irgendwie habe ich mich jetzt da festgefressen 
Vielleicht weis da jemand mehr ??
Also:
minimale Umdrehungen sind 500 U/min = 8,3 U/sek
Mittelere Umdrehungen sind 1000 U/min = 16,6 U/sek
Höchste Umdrehungen sind 1500 U/min = 25 U/sek.
Zwischen min und Max sollte es zumindest reglen!
Wenn ich jetzt für den Timer1 einen Prescaler mit 8 nehme, wären das für 1000 U/min, 60240,96 Takte pro Umdrehung und pro sek.
Jetzt teile ich die Takte pro Umdrehung durch 510, damit ich im Berreich vom Timer0 bleibe (1-256)
Also bei 1000 U/min, wäre dann ein Strich: 118,11 Takte vom Timer0
Wenn ich aber unter der ISR vom Timer0 einen Wert von 100 eintrage.
Also zeichne 100 Striche, dann füllt das schon fast den ganzen Kreis.
Eigentlich müsste ich ja 510 Striche Auftragen können ?!
Hier nochmal der aktuelle Code:
Code:
'--------Drehlicht-----V1.08---------------
' 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 Single
Dim Spaltenzeit As Word
Dim Auftrag As Single
Auftrag = 0
Timer1 = 0
'--------------------Hauptprogramm--------------------------
Do
Loop
End
'==============================Unterprogramme===================================
'--------------ISR von Int0--------------------
Kontakt:
Drehzeit = Timer1
Timer1 = 0
Spaltenzeit = Drehzeit / 510
Auftrag = 0
Return
'------------ISR von Timer0 --------------------
Spalten:
Load Timer0 , Spaltenzeit
If Auftrag < 100 Then
Toggle Portb
Incr Auftrag
End If
Return
Vielleicht kan sich jemand dieser Denkaufgabe stellen 
@Bluemash
Für dich habe ich noch den alten Code.
Ganze einfach! Startet einfach ab Kontakt vom Schalter und schreibt dann den Namen Andre in die Luft (Mein Junior
)
Geht für das eigentlich recht gut.
Mich störte nur, dass die Weite von der Drehzahl abhängt.
Code:
'--------Drehlicht-----V1.04---------------
' 8MHz RC Intern
'
'
' schreibt ANDRE !!!!!!
$regfile = "m8def.dat"
$crystal = 8000000
'---Config Port's -----------------
Config Portb = Output
Portb = 255
Config Portd = Input
Portd = 255
Dim A As Byte
Dim B As Byte
Dim B1 As Byte
A = 1
'--------------------Hauptprogramm--------------------------
Do
If Pind.2 = 0 Then
Waitms 5
Restore Xxx
'7*Zeichen lesen
For A = 1 To 7
'8*Spalten pro Zeichen lesen
For B = 1 To 8
Read B1
B1 = 255 - B1
Portb = B1
Waitus 20
Next B
Portb = 255 'Für Abstand zwischen den Zeichen
Waitus 200
Next A
End If
Portb = 255
Loop
End
'Red Message
Xxx:
Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 'Leerzeichen
Data 31 , 36 , 68 , 132 , 132 , 68 , 36 , 31 'A
Data 255 , 64 , 32 , 16 , 8 , 4 , 2 , 255 'N
Data 255 , 129 , 129 , 129 , 129 , 129 , 66 , 60 'D
Data 255 , 136 , 136 , 136 , 136 , 140 , 82 , 33 'R
Data 255 , 137 , 137 , 137 , 137 , 137 , 129 , 129 'E
Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 'Leerzeichen
Lesezeichen