Re: Suche Hilfe zum I2C gg. kleine Bezahlung Kategorie: Programmierung Basic (von Sebastian - 8.09.2008 21:40) | |
Als Antwort auf Re: Suche Hilfe zum I2C gg. kleine Bezahlung von UlliS - 2.09.2008 21:59
| |
Hi Ulli, das Programm habe ich ausprobiert. Es funktioniert auch mit dem "SRF 10" perfekt. Vielen Dank noch mal. Sebastian > > 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: > > > > > > > > > > > > http://www.robotikhardware.de/download/srf10doku.pdf > > > > > > > > > > > > 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 > > > > > Hallo Sebastian, > > das kostet doch nix ;-) > Viel Spa� damit.... > > Grü�e Ulli > | |
Antwort schreiben Antworten: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum