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 przekazywaniem warosci do procedury

patyk
-
-
Posty:21
Rejestracja:23 maja 2004, o 15:10
Kontaktowanie:
problem z przekazywaniem warosci do procedury

Postautor: patyk » 27 gru 2004, o 00:34

Witam
Mam problem z procedura, zadeklarowalem ja i uruchamiam z konkretnymi parametrami, a ona przyjmuje inne
PROGRAM:
$regfile = "M16def.dat"

$crystal = 8000000
$baud = 19200

'Procedury
Declare Sub Write_eeprom(byval Adres As Word , Byval Value As Byte)

'Zmienne
Dim Value As Byte

'Program
Value = 123
Call Write_eeprom(211 , Value)

Do
Loop

'Procedury
Sub Write_eeprom(byval Adres As Byte , Byval Value As Byte)
Local Adh As Byte
Local Adl As Byte
Adh = High(adres)
Adl = Low(adres)
Print "W_Adres - " ; Adres
Print "W_Adh - " ; Adh
Print "W_Adl - " ; Adl
Print "W_Value - " ; Value
End Sub

WYDRUK Z TERMINALA:
W_Adres - 1084
W_Adh - 4
W_Adl - 60
W_Value - 60

i nie bardzo wiem skad on bierze wartosc Adres i Value
Jezeli nie uzyje parametru "Byval" to wszystko jest OK, ale ja chce zeby stworzylmi on zmienna tymczasowa

[ Dodano: 28-12-2004, 00:05 ]
Liczę na to że może ktoś miał taki przypadek,
albo proszę kogoś o wgranie tego programu do procka i krótki test,
może sie okaże że ja mam walnięty procesor lub
coś nie tak mam z BASCOMEM.

z góry dzięki i pozdrawiam
Patyk

[ Dodano: 01-01-2005, 16:06 ]
Chyba nie jestem sobie w stanie sam z tym poradzic.
Problem jest w deklaracji zmiennych lokalnych (nadpisuja mi one stos (chyba))
Jezeli wywale deklaracjie zmiennych LOCAL - to zmienne przekazane do procedury sa OK.

Jak rozwiazac problem z deklaracja zmiennych lokalnych w procedurze??

Awatar użytkownika
ZbeeGin
-
-
Posty:170
Rejestracja:3 kwie 2003, o 10:10
Lokalizacja:Metropolia Katowice

Postautor: ZbeeGin » 1 sty 2005, o 18:12

Nie deklaruj zmiennych o tych samych nazwach, raz jako zmienna lokalna a raz jako globalna:

Declare Sub Write_eeprom(byval Adres As Word , Byval Value As Byte)

'Zmienne
Dim Value As Byte



W procedurze masz inne parametry niż w deklaracji!!

Sub Write_eeprom(byval Adres As Byte, Byval Value As Byte)


Z ostatniej chwili. Twój program u mnie działa na wbudowanym sumulatorze. Używam teraz BASCOM-AVR 1.11.7.7

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 10 gości