void I2C_ReadByte(uint_fast8_t Address){
	int gesendet = 0, empfangen =0, arr[100], arrInd=0;
	for (int var = 0; var < 100; ++var) {
		arr[var]=0;
	}
	LPC_I2C0->I2CONSET = I2CONSET_STA;

	int var=0;

	while(!gesendet){
		while(!((LPC_I2C0->I2CONSET & I2CONSET_SI) >> 3));
		var =LPC_I2C0->I2STAT;
		switch (var) {
			case 0x8:{/* A Start condition is issued. */
				LPC_I2C0->I2DAT = (Address | I2C_WRITE);
				LPC_I2C0->I2CONCLR = (I2CONCLR_SIC | I2CONCLR_STAC);
				arr[arrInd] = 8;
				arrInd++;
			break;}
			case 0x18:{			/* SLA+W has been transmitted; ACK has been received.*/
				LPC_I2C0->I2DAT = 0x03; // Reg Addr
				LPC_I2C0->I2CONCLR = (I2CONCLR_SIC );// | I2CONCLR_STAC);
				arr[arrInd] = 18;
				arrInd++;
				//gesendet = 1;
			break;}
			case 0x28:	/* Data byte has been transmitted, regardless ACK or NACK */
				LPC_I2C0->I2CONSET = I2CONSET_STA;
				LPC_I2C0->I2CONCLR = I2CONCLR_SIC;
				arr[arrInd] = 28;
				arrInd++;
			break;
			case 0x10:{			/* A repeated started is issued */
				/* Send SLA with R bit set, */
				LPC_I2C0->I2DAT = (Address | I2C_READ);
				LPC_I2C0->I2CONCLR = (I2CONCLR_SIC | I2CONCLR_STAC);
				arr[arrInd] = 10;
				arrInd++;
			break;}
			case 0x40:{
//				LPC_I2C0->I2CONSET = I2CONSET_AA;
				LPC_I2C0->I2CONCLR = I2CONCLR_AAC;	/* assert NACK after data is received */
				LPC_I2C0->I2CONCLR = I2CONCLR_SIC;
				arr[arrInd] = 40;
				arrInd++;
			break;}
			case 0x50:
				I2CSlaveBuffer[0][0] = LPC_I2C0->I2DAT;
				LPC_I2C0->I2CONCLR = I2CONCLR_AAC;	/* assert NACK after data is received */
				LPC_I2C0->I2CONCLR = I2CONCLR_SIC;				arr[arrInd] = 58;
				arrInd++;
			break;
			case 0x58:
				I2CSlaveBuffer[0][1] = LPC_I2C0->I2DAT;
				LPC_I2C0->I2CONSET = I2CONSET_STO;	/* Set Stop flag */
				LPC_I2C0->I2CONCLR = I2CONCLR_SIC;	/* Clear SI flag */
				arr[arrInd] = 58;
				arrInd++;
			break;
			case 0x38:
				arr[arrInd] = 1;
				arrInd++;
			break;

			default:
				arr[arrInd] = 1;
				arrInd++;
				break;
		}
	}