Guten Morgen
also die neuen Chips sind da und perfekt, dort ist stehen Werte im Register, also war der Chip nur defekt. Wobei ich nicht weiß ob ich ihn gekillt habe, ich habe ihn über Kopf einstecken müssen weil ich den Anschlußstecker verdreht layoutet habe. Also diesmal vorsichtshalber mit ein paar Adapter umgebaut. Aber das ist nur eine Vermutung und vorbeugende Maßnahme.
@Thomas, P.S. ja laut Signatur ist es ein BME280. Den Bug in Read..H5 sehe ich nicht.
Code
I2C_Out(I2CAdr, Reg); //Adress auf Register H5
I2C_Inp(I2CAdr, Res1); //Register lesen
I2C_Inp(I2CAdr, Res2); //Register lesen
Res1:=(Res1 shr 4) and $0F;
Res:=(Word(Res2) shl 4) or Word(Res1);
Return(Res);
In Res1 ist jetzt Register H5 dieses 4 Bits nach Rechts
In Res2 ist jetzt Register H6 dieses 4 Bits nach Links
Und beides zusammenfügen.
m_compensation.H5 = (Read8(BME280_REGISTER_H5 + 1) << 4) | (Read8(BME280_REGISTER_H5) >> 4);
Oder liege ich falsch, manchmal sieht man nach einer Weile nix mehr.
cu rage