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++)
{};
}
Lesezeichen