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