12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #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;
- }
- /**-----------------------------------------------------*/
|