bergowitch
11.02.2005, 18:08
Hallo,
ich habe folgendes Programm um den SRF10 zu testen zusammengebastelt.
$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?
ich habe folgendes Programm um den SRF10 zu testen zusammengebastelt.
$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?