Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > Hi Ulli, > > vielen Dank für dein Beispiel. Das spart mir, glaube ich, ne ganze Menge Zeit. Wie machen wir das > mit der Bezahlung? Meine E-mail habe ich übrigens hinterlegt. > > Gruß > Sebastian > > > > > Hi Ulli, > > > > > > sind die Pullup-Widerstände unbedingt notwendig? Ich habe schon öfter hier im Forum gelesen, dass > > > man noch zusätzliche Pullup-Widerstäde einbauen muss, wenn man die I2C-Schnittstelle nutzt. > > > Warum eigentlich? > > > > > > Hättest du Lust, mir deinen Quellcode mal zu schicken? > > > > > > Gruß > > > Sebastian > > > > > > > > > > > Hi, > > > > > > > > > > hat jemand schon mal die I2C-Schnittstelle des Boards verwendet und wäre bereit, mir > > > > > (gegen Bezahlung) ein paar Tipps zu geben, wie man so etwas genau macht. Irgendwie stehe ich bei > > > > > diesem Thema noch wie der Ochse vorm Berg, obwohl ich schon seit über zwei Wochen daran sitze. > > > > > > > > > > Ich möchte gerne mehrere Ultraschallsensoren zum Laufen bringen, die über eine I2C-Schnittstelle > > > > > verfügen. > > > > > > > > > > hier mal das Datenblatt der Sensoren: > > > > > > > > > > <a href="http://www.robotikhardware.de/download/srf10doku.pdf" target="_blank">http://www.robotikhardware.de/download/srf10doku.pdf</a> > > > > > > > > > > Das Demoprogramm, das hier beiliegt, habe ich schon so weit übertragen. Aber im Moment klappt > > > > > es noch nicht. Ich bin mir auch nicht sicher, ob ich den Sensor überhaupt richtig am Board > > > > > angeschlossen habe. > > > > > > > > > > Da bräuchte ich schon mal den ersten Tipp. > > > > > > > > > > Wenn sich jemand bereit findet - Meine E-mailadresse habe ich oben angegeben. > > > > > > > > > > Sebastian > > > > > > > > > > > > > > > > > > > > > > > > > > > > Hallo Sebastian, > > > > > > > > wo genau hängt es den? > > > > Ich hatte mal Probleme mit den Firmware Abfrage bei Sensor bereit für Messung. > > > > Setz dafür mal ein AbsDelay(60) ein. > > > > > > > > Prüfe auch mal di e Pullup Widerstände nach. > > > > > > > > Ansonst müsste das ganze funktionieren, ich selber benutze meist die SRF02 Sensoren. > > > > > > > > Grüße Ulli > > > > > > > > Hallo Sebastian, > > > > hier der Code zum SRF02 > > > > '---------------------------------------------------------------------------------- > > '----- DEMO ----- DEMO ----- DEMO ----- DEMO ----- DEMO ----- DEMO ----- DEMO ----- > > '---------------------------------------------------------------------------------- > > 'Projektname: SRF02.cprj > > 'Benötigte Libs´s: IntFunc_lib.cc > > 'Routinen: SRF02.cbas > > 'Autor: Ulli Sommer > > 'Datum: 04.04.2008 > > 'Funktion: SRF02 der Fa. Devantech auslesen (Ultraschall Sensor) > > ' > > ' > > '---------------------------------------------------------------------------------- > > > > > > Dim SRF02_Slaveid As Byte > > Dim LSB As Byte > > Dim MSB As Byte > > Dim Entfernung As Word > > Dim Ausgabe As Word > > Dim Bezeichner(10) As Char > > > > > > > > Sub main() > > > > I2C_Init(I2C_100kHz) > > SRF02_Slaveid = &HE0 > > > > Bezeichner = " cm" > > > > Do While True > > > > Ausgabe = SRF02_Entfernung(SRF02_Slaveid) > > > > Msg_WriteWord(Ausgabe) > > Msg_WriteText(Bezeichner) > > Msg_WriteChar(13) > > 'AbsDelay(100) > > > > End While > > > > End Sub > > > > > > Sub SRF02_Entfernung(Slaveid As Byte) As Integer > > > > Dim Lob As Byte > > Dim Hib As Byte > > Dim Firmware As Byte > > Dim Temp As Byte > > Dim Slaveid_read As Byte > > Slaveid_read = Slaveid + 1 > > > > 'Messvorgang in starten > > I2C_Start() > > I2C_Write(Slaveid) > > I2C_Write(0) > > I2C_Write(81) > > I2C_Stop() > > > > AbsDelay(250) 'Warte auf Messung > > > > I2C_Start() > > I2C_Write(Slaveid) > > I2C_Write(2) > > I2C_Stop() > > > > I2C_Start() > > I2C_Write(Slaveid_read) > > MSB = I2C_Read_ACK() > > LSB = I2C_Read_NACK() > > I2C_Stop() > > > > Entfernung = Makeint(LSB , MSB) 'Bytes zusammenfassen > > > > Return Entfernung > > > > End Sub > > > > > > 'Sub-Routine um High-Byte und Low-Byte zusammenzufügen > > Sub Makeint(A As Byte , B As Byte) As Word > > Dim tmp As Word > > tmp = A 'High-Byte übernehmen > > tmp << 7 'um 7 Bit nach links schieben > > tmp = tmp + B 'Low-Byte hinzufügen > > Return tmp > > End Sub > > > > > > Grüße Ulli > >