Macht merkwürdigerweise gar keinen Unterschied, obwohl in der englischen Anleitung steht, dass man an die normale Adresse das Register (in diesem Fall 2 für 2 und 3) schicken soll, und dann die Anfrage an die Adresse mit read bit high (also statt 0xC0 dann 0xC1) senden soll....
Ich hab mir die Daten nun per UART mal ausgeben lassen über:
Code:
(...)
uint8_t cmpsbuffer[2];
I2CTWI_transmitByte(CMPS_ADR, 2);
I2CTWI_readBytes(CMPS_ADR, cmpsbuffer, 2);
writeInteger(cmpsbuffer[0], DEC);
writeString_P(" | ");
writeInteger(cmpsbuffer[0], BIN);
writeChar('\n');
writeInteger(cmpsbuffer[1], DEC);
writeString_P(" | ");
writeInteger(cmpsbuffer[1], BIN);
writeString_P("\n==> ");
degree = cmpsbuffer[1] + (cmpsbuffer[0] * 256);
writeInteger(degree, DEC);
writeString_P(" | ");
writeInteger(degree, BIN);
writeChar('\n');
(...)
und hab halt gesehen, das da kein Rechenfehler vorliegt... die Binärzahl wird also wieder richtig zusammengesetzt... aber ich bekomme nur Messwerte zwischen 759 und 1231 ausgegeben... am jeweiligen Ende zählt es wieder in die andere Richtung hoch bzw. runter....
Hab nun dasselbe mit Register 1 gemacht, dort werden ja Zahlen zwischen 0 und 255 über nur ein Byte ausgelesen.... und auch da ist es genauso, die Werte liegen immer nur in einem gewissen Bereich.... woran liegt das???
Kann es sein, dass der RP6 selbst ein Magnetfeld erzeugt???
Lesezeichen