char pin_def[8]={0b11111110,0b11111101,0b11111011,0b11110111,0b11101111,0b11011111,0b10111111,0b01111111};
char type_test(void)
{
char i;
for(i=0;i<=7;i++)
{
delay_ms(100);
PORTB=pin_def;
DDRB=~pin_def;
if(PIND!=0xFF)
{
//delay_ms(10);
return 2;
}
}
return 1;
}
И вот такая схема

По идее когда подключено как на схеме то функция type_test(void),должна возвратить 2,когда хотя б на одном из пине порта Д появится нолик,но почемуто возвращает 1,поскольку не работает как надо ,хотя в протеусе всё работает на ура ((...Может нужно добавить тот делей что я закоментировал ??Когда я сам замикаю любой пин порта Д на землю,то работает ,но когда минус идёт с другого порта ,програмноо ,то он не определяется,что может быть *?А может быть из за какого то неправильного фуз-бит(например деление на

