hallo

ich bin wieder auf ein problem gestoßen, und zwar:

meine drei funktionen sollten parallel laufen (jede funktion gleichzeitig), jedoch laufen die sequentiell ab. wie könnte ich dieses problem lösen.

und bei meiner ersten funktion wenn ich die for-schleife weglasse startet es am NULLTEN- BIT aber wenn ich die for- schleife dazugebe startet es am ERSTEN- BIT.
jedoch wenn ich hinschreibe "P2=0x0000" dann läuft es überhaupt nicht.

was könnte das sein.

danke im vorhinein
mfg


Code:
#include <reg167.h>

#define eins 2000
#define zwei 100
#define drei 50

void softdelay (unsigned int);
void erstes();
void zweites();
void drittes();

sbit port15= P2^15;

void main(void)
{	
	while(1)
	{
	DP2=0xFFFF;
	erstes();
	zweites();
	drittes();
	}
}




void erstes (void)
{
	unsigned int i;

	P2=0x0001;
	for (i=0; i<7;i++)
	{  
		P2=P2<<1;
		softdelay(eins);
	 }  
}


void zweites(void)
{
   	unsigned int i;

	P2=0x0100;
	for (i=0; i<6;i++)
	{  
		P2=P2<<1;
		softdelay(zwei);
	 } 
	 
	 for (i=0; i<6; i++)
	 {
	  	P2= P2>>1;
		softdelay(zwei);
	 } 
}


void drittes(void)
{
	port15=1;
	softdelay(drei);
	port15=0;
	softdelay(drei);
}



void softdelay(unsigned int zeit)
{
	int i,j;

	for (i=0; i<zeit; i++)
		for (j=0; j <2000; j++)
		{};
}