Hi
Ich versuche eine Funktion zu bauen mit der ich bauen entprellt an PORT's Abfragen kann, nun leider funktioniert mein Programm nicht und ich weis nicht warum?

Kann mir einer Tipps, geben wie ich mein Funktion testen könnte oder wo das Problem ist?

Mein Setup ist AVR Studio 4, STK500 mit Atmega644 8MHz.


Code:
/*
Funktion zum Tasten entprellen 
taster([PORTx], ([PDx]|[PDy]|[PDz]|.usw ))

Ich lese den PIND, PD0 ein und gebe ihn entprellt wider am PORTB aus.
Test Bort ist das STK500 mit Atmega644 8MHz.
PORTB ist auf LED's, und PORTD ist auf Taster geschaltet.

*/
#include <avr/io.h>
#include <stdint.h> 
#ifndef F_CPU
#warning "F_CPU war noch nicht definiert, wird nun mit 8000000 Hz definiert"
#define F_CPU 8000000UL     /* Quarz mit 8000000 Hz  */
#endif
#include <util/delay.h>     /* bei alter avr-libc: #include <avr/delay.h> */      
 
//Funktions Prototypen

uint8_t taster(uint8_t pinx, uint8_t px);


int main (void)
{

DDRB = 0xff;        //PORTB Ausgang



    while(1)           //Hauptschleife
    {

        if(taster(PIND, PD0)) //Taster0 Abfragen 
        {

                        
            PORTB = PD0;  //LED0 Einschalten 
        }    

    }                //Hauptschleife Ende
return 0;

}    //Main Ende                


//Funktion, taster([PORTx], ([PDx]|[PDy]|[PDz]|.usw ))
uint8_t taster(uint8_t pinx, uint8_t px)
{

    if( pinx == (1 << px))
    {
        _delay_ms(10);
    }
    
    else
    {
        return 0;
    }

    if( pinx == (1 << px))
    {
        return pinx;
    }

    else
    {    
        return 0;
    }

}
Danke
by Ferdinand.