Ja schon nur das wartet ja so lange, bis ich die Taste wider losgelassen habe.

Noch mal mein Code etwas übersichtlicher.

Code:
//
//    ATMega644
//    lcd-routines.c, lcd-routines.h, i2c.h
//
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
#include <stdlib.h>
#include <stdbool.h>
#include "lcd-routines.h"
#include "i2c.h"

int main(void) //Hauptschleife
{
    DDRD = 0x00; // Pins sind Eingang
    PORTD = 0xff; // mit aktiviertem PullUp, Taster schalten nach GND

    // Initialisierung des LCD
    // Nach der Initialisierung müssen auf dem LCD vorhandene schwarze Balken
    // verschwunden sein
    lcd_init();

    lcd_string("  LCD Start !!! ");
    _delay_ms(500); //Gibt einem die moeglichckeit zu lesen was auf dem LCD steht
    
    lcd_clear();
    lcd_home();
    lcd_string(" Taste druecken"); 

        
TWI_init(FAKTOR, TEILER);

char temperatur; //Temperaturvariable
char einer; //Temperaturvariable einer
char zehner; //Temperaturvariable zehner
char Buffer[100];  //itoa Array 3 stelig
int i = 25; //Laufzeitvariable
                        
    while(1) //Programmschleife
    {

        
        temperatur = TWI_empf(ADRESSE_R); //Temperaturvariablen
        einer = ( temperatur % 10 ) + 48;
        zehner = ( temperatur / 10 ) + 48;

            if(!(PIND & (1<<PD0))) // Taste 0 an PORTD PD0
            {
            _delay_ms(10);

            i++;
            lcd_setcursor( 0, 1);
            lcd_string("Aetzlaufzeit ");
            itoa( i, Buffer, 10 );    //Laufzeitvariable in Integer wandeln
            lcd_string( Buffer );
         
                while(!(PIND & (1<<PD0))); //Warte solange Taste noch getrückt ist.
                _delay_ms(10);
                
            }

            if(!(PIND & (1<<PD1))) // Taste 1 an PORTD PD1
            {
            _delay_ms(10);

            i--;
            lcd_setcursor( 0, 1);
            lcd_string("Aetzlaufzeit ");
            itoa( i, Buffer, 10 );    //Laufzeitvariable in Integer wandeln
            lcd_string( Buffer );

                while(!(PIND & (1<<PD1))); //Warte solange Taste noch getrückt ist.
                _delay_ms(10);
                   
            }

            if (dat2 >= 0b10000000)
            {
            lcd_setcursor( 0, 2);
            lcd_string("Temperatur ");    
            lcd_data(zehner);
            lcd_data(einer);
            lcd_string(",5C ");
            }

            else
            {
            lcd_setcursor( 0, 2);
            lcd_string("Temperatur ");    
            lcd_data(zehner);
            lcd_data(einer);
            lcd_string(",0C ");
            }

    }

    return(0);
}
Wie gesagt ich hab nur Probleme mit der Temperatur aktualisieren.

Danke