-
SRF10 Problem
Hallo,
ich habe folgendes Programm um den SRF10 zu testen zusammengebastelt.
Code:
$regfile = "m16def.dat" 'Mega16 Defdatei
$crystal = 16000000 'Quarzfrequenz
$baud = 9600 'Übertragungsgeschwindigkeit
'für serielle Schnittstelle
'###############################################################
'Initialisierung der Ports
'###############################################################
Config Sda = Portc.1
Config Scl = Portc.0
I2cinit
Dim Us_data_h As Byte , Slave As Byte
Dim Us_data_l As Byte
Slave = &HE0 'slave address of srf10
Us_data_l = 0 'reset variable
Us_data_h = 0 'reset variable
Cls
Lcd "Test"
Wait 1
Do
Cls
I2cstart 'Messung auslösen
I2cwbyte Slave
I2cwbyte 0 'Register 0 - Befehlsregister
I2cwbyte 81 'Befehl 81 - Messung in cm
I2cstop
Waitms 85 'delay 85mS auf Ergebnis warten
I2cstart
I2cwbyte Slave 'Lesen beginnen E0
I2cwbyte 2 'Reg 2 => Entfernung
I2cstop
I2cstart
'I2cwbyte 22 'Leseadresse (E1)
I2cwbyte Slave 'Addresse vom srf 10
I2crbyte Us_data_h , Ack
I2crbyte Us_data_l , Nack
I2cstop
Lcd Us_data_h
Lcd Us_data_l
Waitms 500
Loop
End 'end program
Leider gibt mir der Sensor immer nur für beide Werte 255 aus. angechlossen ist es am rn-control. (die led blinkt brav)
hat jemand eine idee wo der Fehler ist?
-
Hi, also zum Lesen mußt du schon wirklich &HE1 als adresse schicken.
irgendwie ist das da untergegangen.
-
wie dumm jetzt tut er es
danke
gruß stefan
-
Hi,
kann ich dein fertiges Programm haben? Ich habe auch nen SRF10. Meine I2C Kenntnisse sind nicht ganz so gut. Wie hast du dem SRF10 die Adresse jetzt zugewiesen?
Danke im Vorraus
Majus