Máš pravdu. Toto snad bude lepší.
while(1)
{
if(bit_is_clear(PIND,7)) // pokud se na PD7 objeví log 0
{
PORTD ^= (1 << PD6); // invertuj PD6
_delay_ms(50);
do {} while (bit_is_clear(PIND,7)
_delay_ms(50);
}
}