[IN]Crusher
05.04.2006, 00:16
Hallo!
Ich bin das Programmbeispiel im RN-Wissensbereich zum auslesen eines srf08 durchgegangen...
ich denke mal, dass ich alles so abgetippt habe, dass es passen sollte....
er gibt mir aber immer in zeile 70
I2cwbyte Sf08_adr_0 + 1
Errors aus: Invalid datatype + variable not dimensioned
hier ist erschtma der programmcode von mir:
'################################################# ##############################
'# #
'# entfernung_1.bas #
'# #
'# Aufgabe: Messen von Entfernungen via SRF08 #
'# #
'################################################# ##############################
$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600
Const Sf08_adr_0 = &HE0 ' I2C Adresse
Const Sf08_c_range = 100 ' Reichweite
Const Sf08_c_gain = 1 'Empfindlichkeit
Dim Lsb As Byte
Dim Msb As Byte
Dim Ival As Word
'################################################# ##############################
'# Setzten des Range Wertes #
'################################################# ##############################
i2cstart
I2cwbyte Sf08_adr_0
I2cwbyte 2
I2cwbyte Sf08_c_range
I2cstop
'################################################# ##############################
'# Setzten des Gain Wertes #
'################################################# ##############################
i2cstart
I2cwbyte Sf08_adr_0
I2cwbyte 1
I2cwbyte Sf08_c_gain
I2cstop
'################################################# ##############################
'# Messung auslösen #
'################################################# ##############################
i2cstart
I2cwbyte Sf08_adr_0
I2cwbyte 0
I2cwbyte 81
Waitms 70
'################################################# ##############################
'# Ergebnis abholen #
'################################################# ##############################
I2cstart
I2cwbyte Sf08_adr_0
I2cwbyte 2
I2cstart
I2cwbyte Sf08_adr_0 + 1
I2crbyte Msb , Ack
I2crbyte Lsb , Nack
I2cstop
Ival = Makeint(lsb , Msb)
'################################################# ##############################
'# Ergebnis abholen #
'################################################# ##############################
Print "Die Entfernung beträgt" Ival "Meter."
und dann hab ich noch ne frage:
was ist der unterschied zwischen ack & nack?
MfG Jürgen
Ich bin das Programmbeispiel im RN-Wissensbereich zum auslesen eines srf08 durchgegangen...
ich denke mal, dass ich alles so abgetippt habe, dass es passen sollte....
er gibt mir aber immer in zeile 70
I2cwbyte Sf08_adr_0 + 1
Errors aus: Invalid datatype + variable not dimensioned
hier ist erschtma der programmcode von mir:
'################################################# ##############################
'# #
'# entfernung_1.bas #
'# #
'# Aufgabe: Messen von Entfernungen via SRF08 #
'# #
'################################################# ##############################
$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600
Const Sf08_adr_0 = &HE0 ' I2C Adresse
Const Sf08_c_range = 100 ' Reichweite
Const Sf08_c_gain = 1 'Empfindlichkeit
Dim Lsb As Byte
Dim Msb As Byte
Dim Ival As Word
'################################################# ##############################
'# Setzten des Range Wertes #
'################################################# ##############################
i2cstart
I2cwbyte Sf08_adr_0
I2cwbyte 2
I2cwbyte Sf08_c_range
I2cstop
'################################################# ##############################
'# Setzten des Gain Wertes #
'################################################# ##############################
i2cstart
I2cwbyte Sf08_adr_0
I2cwbyte 1
I2cwbyte Sf08_c_gain
I2cstop
'################################################# ##############################
'# Messung auslösen #
'################################################# ##############################
i2cstart
I2cwbyte Sf08_adr_0
I2cwbyte 0
I2cwbyte 81
Waitms 70
'################################################# ##############################
'# Ergebnis abholen #
'################################################# ##############################
I2cstart
I2cwbyte Sf08_adr_0
I2cwbyte 2
I2cstart
I2cwbyte Sf08_adr_0 + 1
I2crbyte Msb , Ack
I2crbyte Lsb , Nack
I2cstop
Ival = Makeint(lsb , Msb)
'################################################# ##############################
'# Ergebnis abholen #
'################################################# ##############################
Print "Die Entfernung beträgt" Ival "Meter."
und dann hab ich noch ne frage:
was ist der unterschied zwischen ack & nack?
MfG Jürgen