Habs jetzt ein bisschengeändert.
Code:
'--------Drehlicht-----V1.07---------------
' 8MHz RC Intern
$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 200
$swstack = 200
$framesize = 200
'---Config Port's -----------------
Config Portb = Output
Portb = 255
Config Portd = Input
Portd = 255
'---config Int0------
Config Int0 = Falling
Enable Int0
On Int0 Kontakt
'--- Config Timer1 ----
Config Timer1 = Timer , Prescale = 1024
Enable Timer1
'--- Config Timer0 ------
Config Timer0 = Timer , Prescale = 8
Enable Timer0
On Timer0 Spalten
Enable Interrupts
Load Timer0 , 255
Dim Drehzeit As Word
Dim Spaltenzeit As Byte
Dim Auftrag As Word
Auftrag = 0
'--------------------Hauptprogramm--------------------------
Do
Loop
End
'==============================Unterprogramme===================================
'--------------ISR von Int0--------------------
Kontakt:
Drehzeit = Timer1
Timer1 = 0
Spaltenzeit = Drehzeit / 2
Auftrag = 0
Return
'------------ISR von Timer0 --------------------
Spalten:
Load Timer0 , Spaltenzeit
If Auftrag < 100 Then
Toggle Portb
Incr Auftrag
End If
Return
Der Simulator wollte kein Byte bei der Variabel : Spaltenzeit.
Bei AVR macht das aber nix aus. (Darum wieder auf Byte geändert)
Haltet jetzt so ungefähr die Lage. Aber nicht schön 
Wenn man den Motor in der Drehzahl verändert, merkt man genau wo er auf oder Abrundet .....
Ein zweiter 16bit Timer wäre da wohl viel genauer
Lesezeichen