Simulink

Du musst beim Zugriff auf die Variable impulse die Interrupts ausschalten.

volatile int impulse=0;
int drehzahl;
unsigned long detektzeit =0;
volatile unsigned long beginnzeit;

void setup() {
Serial.begin(9600);
//pinMode(2,INPUT); die Zeile kann raus
pinMode(2,INPUT_PULLUP);
attachInterrupt(0,impulsez,RISING); //reagiere auf steigende Flanken auf PIN 2

}

void loop() {
  beginnzeit=millis();
  if (beginnzeit-detektzeit>=1000){
      noInterrupts();
      drehzahl=(impulse*60);
      impulse=0;
      i[quote][/quote]nterrupts();
 Serial.print("Drehzahl ="); //print the word "RPM" and tab.
 Serial.print(drehzahl); // print the rpm value.
 Serial.print("\t Hz=");
 Serial.println(impulse);
 detektzeit=beginnzeit;
}

}
void impulsez(){
  impulse++;
       
  }

Gruß Tommy