-
-
Erfahrener Benutzer
Fleißiges Mitglied
Hallo Andy,
Du hast vor dem Auslesen vergessen, das Register auf 2 zu setzen. Dir fehlen vor dem Lesen folgende Code-Zeilen:
- i2c_start(US_address + I2C_WRITE);
i2c_write(0x02);
i2c_stop();
Erst danach darf kommen:
- busy = i2c_start(US_address + I2C_READ);
// address I2C device ultrasonic sensor with read access
if (busy == 0) //vorher == 0
{
distance_low = i2c_readAck(); // read one byte
distance_high = i2c_readNak();
distance = (distance_low*256)+distance_high;
//i2c_stop(); // release I2C bus
}
else
{
i2c_stop(); // release I2C bus
}
Ausserdem solltest Du die Stop-Condition nach dem Lesen nicht auskommentieren. Sonst wartet der SRF10, ob noch was kommt auf dem I2C Bus.
Gruß, uffi.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen