Hi
Was genau ist denn dein Problem?
Weisst du nciht wie du die Abfrage machst, oder funktioniert es nicht, ...?
Hallo!
Es ist mir etwas peinlich zu fragen, aber ich bekomme meinen SRF08 einfach nicht ausgelesen.
Ich habe den SRF08 schon (recht erfolgreich) mit einer C-Control2 benutzt, aber mit diesen fertigen I²C Routinen habe ich irgendwie bischen Probleme.
Der obige Code bewirkt, dass der SRF08 aller 500ms eine Ultraschallmessung beginnt.Code:I2CTWI_transmit2Bytes(224, 0, 81); mSleep(500);
Das Datenblatt zum SRF08 ist hier.
Danke für eure Hilfe.
MfG ACU
http://www.roboterbastler.de
endlich wieder online
Hi
Was genau ist denn dein Problem?
Weisst du nciht wie du die Abfrage machst, oder funktioniert es nicht, ...?
wird auch nicht so einfach sein, dieses noch in den rp6 einzubinden. ausreichende winavr-c-kenntnisse sind erforderlich.
Hallo,
in den Beispielprogrammen sind zwei dabei die SRF08 / SRF10 Sensoren ansteuern. Vielleicht da mal schauen.
(diese Beispiele sind allerdings auf nebenläufige Abarbeitung optimiert um Zeit zu sparen und daher 10 Zeilen länger...)
Etwas einfacher geht es mit dieser Funktion aus der RP6Lib:
Ich habe das nur gerade hier im Forum getippt und nicht getestet - aber es sollte in etwa so funktionieren:Code:void I2CTWI_readRegisters(uint8_t targetAdr, uint8_t reg, uint8_t * messageBuffer, uint8_t numberOfBytes)
Wie gesagt - der Code ist nicht getestet und zeigt nur das Prinzip.Code:#define SRF08_ADR 225 I2CTWI_transmit2Bytes(SRF08_ADR, 0, 81); mSleep(120); uint8_t results[3]; I2CTWI_readRegisters(SRF08_ADR, 2, results, 2); // jetzt sollten High und Low byte der gemessenen Entfernung im results Array sein.
MfG,
SlyD
warum soll das der user nicht alleine machen. immer dieses vorkauen von dem code für winavr-c. er wird nie lernen wie ein srf8 funktioniert, wenn er den ursprung nicht kennt.
und dann:Zitat von roboterheld
Zitat von roboterheld
Schon klar Pebi. Erst behaupten es sei zu schwer - und dann wenn ne einfache Lösung (3 Zeiler...) gezeigt wird meckern warum das hier gepostet wird.
Wenn man das wollte müsste man sich den kompletten Sensor selbst bauen (und daran hindert Dich ja keiner) was bei einem fertigen Sensormodul aber wohl nicht Sinn und Zweck der Sache ist.Zitat von roboterheld
Der Code oben ist doch nur die Ansteuerung per TWI. Das hat mit dem wie der Sensor an sich funktioniert rein gar nichts zu tun.
MfG,
SlyD
Hallo SlyD, vielen Dank für deine Hilfe.
Auf diesen Lösungsansatz bin ich irgendwie nicht gekommen.
Habe heute endlich mal Zeit gehabt den Code zu testen, funzt super.
Hier zwei kleine Funktionen, mit denen ich es mache (für alle Faule).
Die Adresse habe ich fest gesetzt, da ich nur einen Sensor montiert habe.
@pebiCode:void USFire() { I2CTWI_transmit2Bytes(224, 0, 81); } int USRead() { uint8_t Sensorarray[2]; I2CTWI_readRegisters(224, 2, Sensorarray, 2); return Sensorarray[1]+Sensorarray[0]*256; }
Wenn du dich mal eine ganze Weile zurückerinnerst, wirst du feststellen, dass wir uns wegen der SRF Sache mal geschrieben hatten und ich sehr wohl das Funktionsprinzip verstanden habe.
Du kannst ja auch in deinen PNs mal schauen.
Ach sorry, ganz vergessen dein Account ist ja gesperrt
MfG ACU
http://www.roboterbastler.de
endlich wieder online
Lesezeichen