Hallo,
ich habe ein Grundlegendes Verständnisproblem.
Ich habe einen Drucksenor welcher laut Datenblatt:
>send 2 data bytes containing the current pressure value as a 15 bit
>information placed in their output registers.
Soweit so gut. Die Slave Adresse ist 1111000xb, also
>#define SENSOR 0x78
Mein Code sieht wie folgt aus, um den Slave Sensor mit meinem Atmega 128
auszulesen.
1 | uint8_t byte1;
|
2 | uint8_t byte2;
|
3 |
|
4 | if(!(i2c_start(SQ277+I2C_READ))) //Slave bereit zum lesen?
|
5 | {
|
6 | byte1 = i2c_readAck();
|
7 | byte2 = i2c_readNak();
|
8 | i2c_stop();
|
9 | }else{
|
10 | //Errormeldung
|
11 | }
|
So um den Sensor jetzt nutzen richtig auslesen zu können, brauche ich
sein Ergebnis als HEX oder Dezimalzahl. Die Ausgabewerte schwanken lt
Datenblatt zwischen 0666 und 6CCC Hexadezimal.
Ich nehme an, dass der Code so richtig ist, und die Libary von Peter
Fleury funktioniert. Leider bin ich nicht wirklich firm mit den Bit und
Bytehandling in C.
Kann mir jemand einen Tipp geben, wie ich die Werte bekomme. Wenn ich
den Wert mal als INT habe, komme ich weiter.
Danke schonmal.