I figured it out. Instead of using only a for-loop, i put in an extra while-loop, that keeps on going, untill a key is pressed and released. i've put in an extra int (iii), that becomes 1 when a key is pressed, and becomes 2 when it is released again.
this is what it looks like now:
void receive_array()
{
int wijzer;
int iii;
int a;
for(wijzer=0;wijzer<=pointer;wijzer++)
{
iii=0;
while(iii!=2)
{
switch(PIND)
{
case 0b00000001:
a=1;
iii=1;
PORTB = PORTB | (1 << 0);
playsound1();
break;
case 0b00000010:
a=2;
iii=1;
PORTB = PORTB | (1 << 1);
playsound2();
break;
case 0b00000100:
a=3;
iii=1;
PORTB = PORTB | (1 << 2);
playsound3();
break;
case 0b00001000:
a=4;
iii=1;
PORTB = PORTB | (1 << 3);
playsound4();
break;
case 0b00000000:
PORTB=0b00000000;
if ( iii==1)
{
iii=2;
hulparray[wijzer]=a;
}
break;
default:
PORTB=0b00000000;
}
}
}
}
And it works perfectly :-D
thx for the interest, it made me straighten my head.