Also ich lese den Sensor wie folgt aus:
unsigned short srf02_read(char adress) {
unsigned short s;
twi_package_t packet_received;
char data_received[RECEIVE_DATA_LENGTH] = { 0 };
data_received[0] = DATEFORMAT;
packet_received.chip = adress >> 1;
packet_received.addr = 0x02;
packet_received.addr_length = 1;
packet_received.buffer = data_received;
packet_received.length = 2;
twi_read_twice((30 + (int) adress), &packet_received);
s = (unsigned short)(data_received[0] <<;
s += (unsigned short) (data_received[1]);
if (adress == 0xE0){
sendDebugValues(s,(data_received[0]),data_received[1],0,0,0);
}
return s;
Die Ausgabe für die Entfernungen sind dann z.B.:
204.000, 0.000, 204.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 272.000, 1.000, 16.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 202.000, 0.000, 202.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 202.000, 0.000, 202.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 204.000, 0.000, 204.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 204.000, 0.000, 204.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 202.000, 0.000, 202.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 205.000, 0.000, 205.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 205.000, 0.000, 205.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 204.000, 0.000, 204.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 272.000, 1.000, 16.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 274.000, 1.000, 18.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 206.000, 0.000, 206.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 205.000, 0.000, 205.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 272.000, 1.000, 16.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 208.000, 0.000, 208.000, 0.000, 0.000, 0.000, #<\r><\n>
$, 206.000, 0.000, 206.000, 0.000, 0.000, 0.000, #<\r><\n>
Hilft das was?
Gruß Thilo
}
Lesezeichen