 // I2C-Communikation bei  4MHz, als Master
 //
 //
 // Michael Dworkin
 // 26.05.2003
 // Compiler CC5x

void bstart(void)		// Startbedinung generieren
{
sda=1;
tsda=0;					//sda,scl-ausgänge
tscl=0;
scl=0;
nop();
scl=1;
nop2();
nop2();
nop();
sda=0;
nop2();
nop2();
nop();
scl=0;
nop2();
}

void bstop(void)		// Stopbedinung generieren
{
tsda=0;					//sda,scl-ausgänge
sda=0;
nop2();
nop();
scl= 1;
nop2();
nop();
sda=1;
nop2();
scl= 0;   				//? eigentlich hochomig machen
nop2();
nop();
}

bit bitein (void)		// Ein Bit Einlesen
{
bit din;
tsda=1;					//sda input
tscl=0;
sda=1;					// braucht man nicht
scl=1;
nop2();
nop2();
nop();
din=sda;
scl=0;
return din;
}

void bitaus	(bit dout)	// Ein Bit Schreiben
{
tsda=0;					//sda output
sda=dout;
nop();
scl=1;
nop2();
nop2();
scl=0;
}

char lesen(void)		// Byte empfangen
{
char DATEIN, i ;
for(i=0;i<8;i++)
	{
	DATEIN =DATEIN<<1;
	if( bitein() ) DATEIN.0=1;
	}
return DATEIN;
}

bit schreib (char DATAUT)
{
char i ;
	for(i=0;i<8;i++)
	{
	bitaus(DATAUT.7 );
	DATAUT =DATAUT<<1;
	}
return bitein();					//if din=1 dan fehler
}

