Hallihallo, nochmal ich,

aus irgend einem grund hängt sich mein dzm ab und zu auf, manchmal nach sehr kurzer zeit, aber ich weiß noch nicht so richtig warum. ich dachte mir jetzt mal die messung der drehzahl durch das messen der zeit zwischen den impulsen zu bestimmen. einziger haken meine software macht nicht was se soll

hier die erklärung dazu, vll könnte nochmal einer von euch mir auf die sprünge helfen. problem ist übrigenz das mein display nichts anzeigt.

danke im vorraus

int0 ist der interrupt der zündung
timer1 misst die zeit zwischen den impulsen
timer0 sollte eigentlich etwa alle halbe sekunde mein dislpay aktualisieren

berechnung der drehzahl:
Numb = Numa (vom timer gezählt) / 0,1229079 (Wert aus 16Bit Timer / Prescaled frequenz)
Numc = Numb / 65536 (16Bit Timer)
Numd = 1 / Numc
Umin = Numd * 60

ich hoffe das versteht einer, ist recht verwirrend, vll liegt da auch schon ein fehler?
Code:
$regfile "m8def.dat"
$crystal = 3686400
Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.4 , Db6 = Portb.3 , Db7 = Portb.2 , E = Portb.0 , Rs = Portb.1
Config Lcdpin = 16 * 2
Config Portb = Output

Config Pind.2 = 0
Portd.2 = 1

Dim Umin As Word                                            'Drehzahl
Dim Speed As Word                                           'Geschwindigkeit
Speed = 113
Dim Numa As Word                                            'zahl1 für berechnung                                                               'zahl1 für berechnung
Dim Numb As Single
Dim Numc As Single
Dim Numd As Single
Dim Zahler As Word                                          'zahl2 für berechnung

Config Int0 = Falling                                       'int0
Enable Int0
On Int0 Isrcounter

Config Timer0 = Timer , Prescale = 1024
Enable Timer0
On Timer0 Isrdisplay

Config Timer1 = Timer , Prescale = 8                        'timer1
Enable Timer1
On Timer1 Isrtimer

Enable Interrupts
Timer1 = 0

Do

      If Zahler = 7 Then

      Zahler= 0

      Numb = Numa * 0.1229079                               'Berechnung umin
      Numc = Numb / 65536
      Numd = 1 / Numc
      Umin = Numd * 60

      Cls

      Locate 1 , 1
      Lcd "Drehzahl:"                                       'Display

      Locate 1 , 11
      Lcd Umin

      Locate 2 , 1
      Lcd "Speed: "

      Locate 2 , 8
      Lcd Speed

      Locate 2 , 11
      Lcd "Km/h"

      End If

Loop
End

Isrcounter:
Numa = Timer1
Timer1 = 0                                                  'Zähler durch Interrupt
Return

Isrdisplay:
Incr Zahler
Return

Isrtimer:                                                   'Wenn Timer1 Überlaufen sollte
Umin = 0
Return