mal das test programm:
Code:
$regfile = "m8def.dat"
$crystal = 3686400                                          'ext. Quarz
Config Lcd = 16 * 2                                         'LCD-Typ

Config Lcdmode = Port                                       'Ports zur Ansteuerung benutzt

Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2

On Icp1 Oncapture                                           'Port B0 ist Interupt

Dim Wcapture As Word
Dim Stopuhr As Word


Ddrb.0 = 0                                                  'Eingang B0  Drehzahl
Ddrb.1 = 1                                                  'Ausgang B1  LED 6000U/min
Ddrb.2 = 0                                                  'Eingang B2  KIPS
Ddrb.3 = 0                                                  'Eingang B3  LCD normal/einfrieren
Portb.0 = 1                                                 'Eingang hochziehen
Portb.1 = 0                                                 'Ausgang LED
Portb.2 = 1                                                 'Eingang hochziehen
Portb.3 = 1                                                 'Eingang hochziehen

 Dim Merker As Bit                                          'Selbsthaltung KIPS Eingang B
 Dim Timerword As Word                                      'Rückwärtszähler als Timer
Timerword = 15000



Tccr1a = &B00000000                                         'Timer1 Register A
Tccr1b = &B10000101                                         'Timer1 Register B Bit7:noise cancel, Bit6: fall.Flanke

Timsk.ticie1 = 1                                            'Capture IR ein
Sreg.7 = 1                                                  'IR global ein



Main:

 If Pinb.2 = 0 Then                                         'KIPS Stellung
  Set Merker                                                'Selbsthaltung
  Set Portb.1                                               'Test Ausgang
  End If


 If Merker = 0 Then                                         'Timer LCD Anzeige
Decr Timerword
End If

If Timerword = 10000 Then
   Cls                                                      'Display löschen
   Lcd Wcapture                                             'neuen Wert in Display schreiben
   End If

   If Timerword = 10000 Then
   Timerword = 15000
   End If



   Goto Main


Oncapture:
Timer1 = Timer1 - Capture1
Wcapture = Capture1                                         'Anz in 1/100s

 Wcapture = 10000 / Wcapture                                'Anzeige in Zehntel Hz
 Wcapture = Wcapture * 6                                    'Anzeige in U/min




'If Wcapture > 6000 Then                                     'LED an über 6000U/min
'Set Portb.1
'End If





Return




End
hab noch n fehler entdeckt. Eingang hochgezogen und benutze ind. Näherungsschalter, der ein 1 signal bei betätigung liefert. werd das erstmal beheben..