Sorry lag vorhin als ich das gepostet hab mit dem Tablet im Grünen,hatte da den Code nicht zur Hand.

Hier mal der Code:
Code:
//*****Grundeinstellungen

//defines:
#define F_CPU 16000000

//includes:
#include <avr/io.h>

#include <util/delay.h>

#include <avr/interrupt.h>             

#include "lcd-routines.h"               

#include <stdlib.h>                        

  
char Buffer[20];                       
  
int counter = 0;                      

unsigned short countert0 = 0;            

long rpm = 0;                   




//3***Interrupt Service Routine - Interrupt Eingang INT0****************************************
ISR (INT0_vect)
{
counter++;
} 

ISR (TIMER0_COMP_vect)
{

countert0++;

if (countert0 == 100)
{

cli();

countert0 = 0;

rpm = (counter * 60) / 50;

counter = 0;

            lcd_clear();

            lcd_setcursor( 0, 1 );
 
              
              itoa( rpm, Buffer, 10 );

              lcd_string( Buffer ); 
 
sei();
}

}

//main programm:
int main (void)
{

//1***pwm init**********************************************************************************
TCCR1B |= (1<<CS12);                    //Prescaler 256

TCCR1A |= (1<<WGM10);                    //Fast PWM Mode
TCCR1B |= (1<<WGM12);

TCCR1A |= (1<<COM1A1) | (1<<COM1B1) ;

OCR1A = 0;                                //PWM Start-Wert

DDRD |= (1<< PD5);                        //PWM aktivieren


//2***Switch init*******************************************************************************
DDRA = 0b00000000;                      //Setze Port A auf Eingang

PORTA = 0b00000000;                        //Deaktiviere alle internen Pull-Ups an Port A

//3***Interrupt INT0 init***********************************************************************
GICR |= (1<<INT0);                        //Aktivieren des INT0 Interrupt Eingangs

MCUCR |= (1<<ISC01) | (1<<ISC00);        //Löst aus bei Wechsel von "low" nach "high" 

//4***Interrupt TIMER0 init*********************************************************************
TCNT0 = 0;                                //Anfangszählerstand = 0

TCCR0 = (1<<CS02) | (1<<CS00);            //Prescaler von 1024 auswählen
/*    CPU-Takt = 16.000.000Hz        Prescaler = 1024
    Zeit bis overflow = CPU-Takt/Prescaler    =    16.000.000HZ / 1024 = 15.625Hz
*/

OCR0 = 50;                                //Zähler zählt bis 156
/*    Zeit bis overflow = 15625Hz        Zählwert = 156
    Zeit bis Interrupt = 15625Hz / 156 = 100,16Hz ~ 100Hz
    1s / 100 = 0,01s = 10ms
*/

TIMSK |= (1<<OCIE0);                    //Interrupt aktivieren

//5**LCD init***********************************************************************************

lcd_init();

//***main***************************************************************************************


//Test
while(1)
        {

        sei();

            if ( PINA & (1<<PINA0) ) 
            {
            OCR1A = 75;
            }
            else
            {OCR1A = 17;

//            lcd_clear();
            }
        





        }


}
Gruß Andi