Hi,

also ich poste euch mal meinen code. ich habe einen waitms befehl drin und einen pulsein befehl. Allerdings ändert sich an der Tatsache auch nichts wenn ich die beiden befehle aus dem Programm nehme, habe ich eben ausprobiert.

Code:
'*******************************************************************************
'* PROGRAMM: RPM-ControllerV1.0BETA  DATUM: 02.07.2007                         *
'*******************************************************************************

'===============================================================================
' Hardware:
'
' RN-Minicontrol Controllerboard mit Mega8
'
' RPM-Controllermodul V1.0, Anschluss an JP5 von RN-Minicontrol
'
' RN-LCD-Adaptermodul, Anschluss an 10-pol Wannenbuchse CTRL, Anschluss der
' LCD Bedientaster: T1 an JP6/1, T2 an JP6/2, GND an JP6/4, T3 an JP1/1
'
' Potentiometer an JP3
'
'
'
'===============================================================================



'===============================================================================
' Compiler
'===============================================================================
 $regfile = "m168def.dat"                                   'Mega8
 $crystal = 16000000                                        '16Mhz Quarz
 '$baud = 9600
'-------------------------------------------------------------------------------


'===============================================================================
' Ein- und Ausgänge:
'
' PD4: Ausgang, Ansteuerung von ZU-Relais
' PB4: Eingang, Rechtecksignal der Zündspannung
' PC1: ADC1 Eingang, Potentiometer von JP4 zur Drehzahleinstellung
' PD5: Eingang, LCD Taster 1
' PB2: Eingang, LCD Taster 2
' PD2: Eingang, LCD Taster 3
'
'
'===============================================================================

Config Pind.4 = Output                                      'ZU-Relais
Config Pinb.4 = Input                                       'Zündspannung
Config Pinc.1 = Input                                       'Poti
Config Pind.5 = Input
Portd.5 = 1                                                 'Taster1
Config Pinb.2 = Input
Portb.2 = 1                                                 'Taster2
Config Pind.2 = Input
Portd.2 = 1                                                 'Taster3
'-------------------------------------------------------------------------------

'===============================================================================
' ADC-Kanäle
'===============================================================================
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc

Config Debounce = 5
'-------------------------------------------------------------------------------

'===============================================================================
' Variablen
'===============================================================================
 Dim Signal_in As Word                                      'eingangsimpulse in 1x10µs
 Dim Rpm_ist As Long                                        'Istwert Drehzahl
 Dim Adc1 As Word                                           'Eingangswert Poti 0-1023
 Dim Rpm_soll As Word                                       'Sollwert Drehzahlbegrenzung
 Dim Faktor As Byte                                         'Drehzahlfaktor
 Dim Unterbrecherdauer As Byte                              'Einschaltdauer Unterbrecher
 Dim Unterbrecherfrequenz As Byte                           'Zuschaltfrequenz Unterbrecher
 Dim Timerunterbrecher As Byte                              'Timing für Unterbrecher
 Dim Rpm_dif As Word                                        'Differenz Soll und Ist
'-------------------------------------------------------------------------------

'===============================================================================
' Variablenvoreinstellung bei Programmstart
'===============================================================================
Faktor = 1
Unterbrecherdauer = 10
Unterbrecherfrequenz = 200
'-------------------------------------------------------------------------------


'===============================================================================
' Subs
'===============================================================================
 Declare Sub Displayaktualisierung
 Declare Sub Faktoreinstellung
 Declare Sub Unterbrecherdauer
 Declare Sub Unterbrecherfrequenz
 Declare Sub Unterbrecher
'-------------------------------------------------------------------------------

'===============================================================================
'    LCD Parametrieren
'-------------------------------------------------------------------------------

Config Lcd = 20 * 4a , Chipset = Ks077
Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.0 , Db6 = Portd.7 , Db7 = Portd.6 , E = Portb.3 , Rs = Portc.2
Config Lcdbus = 4

Initlcd

Config Pind.3 = Output                                      'R/W = 0 -> Schreiben
Portd.3 = 0

Config Pinc.3 = Output                                      'Portc.3 = 0 -> Beleuchtung aus
Portc.3 = 0

Waitms 200

Initlcd

Locate 1 , 1
Cls
Locate 2 , 1
Cls
Locate 3 , 1
Cls
Locate 4 , 1
Cls

'*******************************************************************************
'* HAUPTPROGRAMM                                                               *
'*******************************************************************************

 Do


'===============================================================================
'    Datenerfassung Drehzahl
'-------------------------------------------------------------------------------

 'Pulsein Signal_in , Pinb , 4 , 0

   Rpm_ist = 1500000 / Signal_in

   Rpm_ist = Rpm_ist * Faktor

'-------------------------------------------------------------------------------

'===============================================================================
'    Aufruf Displayaktualisierung
'-------------------------------------------------------------------------------


   Gosub Displayaktualisierung


'-------------------------------------------------------------------------------

'===============================================================================
'    Counter für Zündunterbrechung
'-------------------------------------------------------------------------------

 Incr Timerunterbrecher

   If Timerunterbrecher = Unterbrecherfrequenz Then
   Gosub Unterbrecher

 End If

'-------------------------------------------------------------------------------

'===============================================================================
'    Abfrage Tastereingabe
'-------------------------------------------------------------------------------

 Debounce Pind.2 , 0 , Faktoreinstellung , Sub

 Debounce Pind.5 , 0 , Unterbrecherdauer , Sub

 Debounce Pinb.2 , 0 , Unterbrecherfrequenz , Sub

 '-------------------------------------------------------------------------------

 Loop


'-------------------------------------------------------------------------------

'*******************************************************************************
'* SUBS                                                                        *
'*******************************************************************************


'OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
   Sub Displayaktualisierung
'OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO

'===============================================================================
'  Zeile 1: Anzeigen der Ist-Drehzahl
'-------------------------------------------------------------------------------
   If Rpm_ist < 5000 Then

   Locate 1 , 6
   Lcd "     "

      Locate 1 , 1
      Lcd "RPM= " ; Rpm_ist
      Locate 1 , 10
      Lcd "U/min"




   End If
'-------------------------------------------------------------------------------


'===============================================================================
'  Zeile 1: Bargraph-Animation
'-------------------------------------------------------------------------------

   Rpm_dif = Rpm_soll - Rpm_ist

   Locate 1 , 16
   Lcd "     "

      If Rpm_dif < 2000 Then
      Locate 1 , 16
      Lcd ">    "
      End If

         If Rpm_dif < 1600 Then
         Locate 1 , 16
         Lcd ">>   "
         End If

            If Rpm_dif < 1200 Then
            Locate 1 , 16
            Lcd ">>>  "
            End If

               If Rpm_dif < 800 Then
               Locate 1 , 16
               Lcd ">>>> "
               End If

                  If Rpm_dif < 400 Then
                  Locate 1 , 16
                  Lcd ">>>>>"
                  End If


'-------------------------------------------------------------------------------


'===============================================================================
'  Zeile 2:  Anzeige Soll-Drehzahl
'-------------------------------------------------------------------------------

   Locate 2 , 11
   Lcd "     "

   Adc1 = Getadc(1)
   Rpm_soll = Adc1 * 15

   Locate 2 , 1
   Lcd "RPM-Limit=" ; Rpm_soll
   Locate 2 , 16
   Lcd "U/min"

'-------------------------------------------------------------------------------


'===============================================================================
'  Zeile 3:   Anzeige Drehzahlfaktor
'-------------------------------------------------------------------------------

Locate 3 , 16
Lcd " "

Locate 3 , 1
Lcd "Drehzahlfaktor " ; Faktor

'-------------------------------------------------------------------------------


'===============================================================================
'  Zeile 4:   Anzeige Unterbrecherdauer und -Frequenz
'-------------------------------------------------------------------------------

Locate 4 , 7
Lcd "   "
Locate 4 , 18
Lcd "   "

Locate 4 , 1
Lcd "Dauer=" ; Unterbrecherdauer
Locate 4 , 10
Lcd "ms"
Locate 4 , 13
Lcd "Freq=" ; Unterbrecherfrequenz


'-------------------------------------------------------------------------------


End Sub
'===============================================================================



'OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
   Sub Faktoreinstellung
'OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO

If Faktor = 1 Then

   Faktor = 2
   Return

End If


If Faktor = 2 Then

   Faktor = 4
   Return

End If


If Faktor = 4 Then

   Faktor = 1
   Return

End If



End Sub
'===============================================================================


'OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
   Sub Unterbrecherdauer
'OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO

   Unterbrecherdauer = Unterbrecherdauer + 10

   If Unterbrecherdauer > 150 Then
   Unterbrecherdauer = 10
   End If



End Sub
'===============================================================================


'OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
   Sub Unterbrecherfrequenz
'OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO

   Unterbrecherfrequenz = Unterbrecherfrequenz + 10

   If Unterbrecherfrequenz > 240 Then
   Unterbrecherfrequenz = 50
   End If

End Sub
'===============================================================================


'OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
   Sub Unterbrecher
'OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO

   If Rpm_ist > Rpm_soll Then
   Portd.4 = 1
   'Waitus Unterbrecherdauer
   Portd.4 = 0
   End If

End Sub
'===============================================================================


'===
 End
'===