#include "bexus_i2c_cis.h"

/**----------------variables---------------------------*/
uint8_t i2c_adresse_druck_cis[] = {0x78,0x72,0x02};//Adresse vom Chip,Startbefehl,Ram
uint8_t buff_druck_cis[4];//Buffer für reingehende Byte-Kette

struct Dataset *data_cis;
/**-----------------------------------------------------*/

/**------------------functions--------------------------*/
void Pressure_Cis_Init(){
		
	for(int i=0;i<sizeof(i2c_adresse_druck_cis);i++)
		i2c_adresse_druck_cis[i]=i2c_adresse_druck_cis[i]<<1;//Alle Registeradressen um 1 nach links shiften, sonst werden die nicht erkannt
	
	
	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_12,GPIO_PIN_SET); //Sensor mit Flanke einschalten
	HAL_Delay(5);	
	
	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_12,GPIO_PIN_RESET); //Sensor mit Flanke einschalten
	HAL_Delay(1);		//1ms delay nach Anschalten, das ist bei diesem Chip sehr Charackteristisch und sorgt manchmal für Verwirrung

	//HAL_I2C_Master_Transmit(&hi2c2,i2c_adresse_druck_cis[0],&i2c_adresse_druck_cis[1],1,10); //Startbefehl für den Chip senden
	//HAL_I2C_Master_Transmit(&hi2c2,i2c_adresse_druck_cis[0],&i2c_adresse_druck_cis[2],1,10); //Ram auswählen
	HAL_I2C_Master_Transmit(&hi2c2,i2c_adresse_druck_cis[0],&i2c_adresse_druck_cis[1],2,10); //Startbefehl für den Chip senden und Ram auswählen
}	
	
	
int Pressure_Cis_Read(){	
	data_cis = &Dataset_Master[buff_sensor_data_index];
	
	HAL_I2C_Master_Receive(&hi2c2,i2c_adresse_druck_cis[0],buff_druck_cis,4,15);  //Daten-Byte Kette einlesen (Reihenfolge:Druck,Temperatur)
	//				Byte:	15...8			7...0
	data_cis->pressure_cis_raw = 			(buff_druck_cis[0]<<8)+ buff_druck_cis[1];      //Rohdaten-hälften von 2x8Bit zu 1x16Bit konvertieren 
	data_cis->temperature_cis_raw = (buff_druck_cis[2]<<8)+ buff_druck_cis[3]; 	
	
	data_cis->pressure_cis = ((data_cis->pressure_cis_raw-2097.)/23592)*100000;	
 //  data_cis->temperature_cis=(data_cis->temperature_cis_raw-14940.5)/256.89+10;
   data_cis->temperature_cis=(data_cis->temperature_cis_raw-25689./2+2096)/256.89+10;
	
	return HAL_OK;
}		
/**-----------------------------------------------------*/
