Witam, zainteresował mnie temat 1wire (a dokładnie pastylek DS1990) na procka 8051 . Pare lat temu znalazłem w elektronice dla wszystkich programik w bascom dla DS1990. Wpisałem ten program i w momencie kompilacji wyskoczyly błędy:
Error 16 : Wrong number of parameters
Error 231 : Index expected [NUMBER]
Error 215 : Already in SUB [READ_NUMBERS]
Poniżej zamieszczam cały program:
Config 1wire = P1.0
Config Lcd = 16 * 1a
Dim Number(8) As Byte
Dim R As Byte
Declare Sub Read_numbers
Declare Sub Write_eeprom(as Byte , Number As Byte)
Declare Sub Read_eeprom(as Byte , Number As Byte)
Cls
Cursor Off
Do
1wreset
If Err = 1 Then
Cls
Lcd "No Device"
Waitms 25
Else
Cls
Call Read_numbers
End If
Loop
Sub Read_numbers
1wwrite &H33
For R = 1 To 8
Number(r) = 1wread():
Next R
Cls
Lcd "Device found!"
For R = 1 To 8
Call Write_eeprom R , Number(r)
Next R
For R = 1 To 8
Call Read_eeprom R , Number(r)
Next R
For R = 1 To 8
Cls
Waitms 255
Lcd Number(r)
Wait 1
Next R
End Sub
Sub Write_eeprom(eeprom_adres As Byte , Value As Byte)
I2cstart
I2cwbyte 160
I2cwbyte R
I2cwbyte Number
I2cstop
Waitms 10
End Sub
Sub Read_eeprom(eeprom_adres As Byte , Value As Byte)
I2cstart
I2cwbyte 160
I2cwbyte R
I2cstart
I2cwbyte 161
I2cwbyte Number , Nack
End Sub
Po modyfikacji programu w liniach:
Declare Sub Write_eeprom(as Byte , Number As Byte)
Declare Sub Read_eeprom(as Byte , Number As Byte)
błąd:
Error 16 : Wrong number of parameters
ustąpił, ale dwa następne występują w dalszym ciągu.
Może ktoś z kolegów bardziej zaawansowanych w bascom pomoże mi z tym problemem[color=444444][/color]
Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięproblem z programem magistrali 1wire
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
Skopiowałem program do Bascoma i po dokładnym przyjrzeniu brakowało
Declare Sub Write_eeprom(as Byte , Number As Byte)
Declare Sub Read_eeprom(as Byte , Number As Byte
po nawiasie R as byte dlatego wyskakiwał Err 16
Jest jeszcze jeden błąd I2cwbyte Number, Nack
Powinno być I2crbyte number, Nack - Nack oznacza że nie będzie następnego odczytu
warunek stopu, więc musi być I2crbyte po usunięci tych błędów program został pomyślnie skompilowany.
Declare Sub Write_eeprom(as Byte , Number As Byte)
Declare Sub Read_eeprom(as Byte , Number As Byte
po nawiasie R as byte dlatego wyskakiwał Err 16
Jest jeszcze jeden błąd I2cwbyte Number, Nack
Powinno być I2crbyte number, Nack - Nack oznacza że nie będzie następnego odczytu
warunek stopu, więc musi być I2crbyte po usunięci tych błędów program został pomyślnie skompilowany.
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 90 gości