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

robert.g
-
-
Posty:2
Rejestracja:17 sie 2005, o 08:31
Lokalizacja:Szczecin
problem z programem magistrali 1wire

Postautor: robert.g » 17 sie 2005, o 08:54

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]

arek
-
-
Posty:25
Rejestracja:11 maja 2003, o 12:39
Lokalizacja:Opole

Postautor: arek » 17 sie 2005, o 15:30

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.

robert.g
-
-
Posty:2
Rejestracja:17 sie 2005, o 08:31
Lokalizacja:Szczecin

Postautor: robert.g » 17 sie 2005, o 18:53

Dziekuje za pomoc. Teraz bede mógł zaprogramować procka i pobawić się hardware'm.

arek
-
-
Posty:25
Rejestracja:11 maja 2003, o 12:39
Lokalizacja:Opole

Postautor: arek » 17 sie 2005, o 19:38

Jak byś miał jakieś problemy to daj znać – chętnie pomogę

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 90 gości