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ęwielkokrotne uzycie config 1wire
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
witam!
czy jest mozliwe wielokrotne uzycie config 1wire tak jak na ponizszym listingu?
Aktywny_termometr = 0 'zewnetrzny
Config 1wire = P3.0
Call Odczyt_temperatury
Aktywny_termometr = 1 'wewnetrzny
Config 1wire = P3.1
Call Odczyt_temperatury
Call Wyswietl_wyniki
Wait 2
dodam ze o dziwo program odczytuje dane ale z termometru 2., do ktorego config jest podany jako drugi...
w wynikach pojawiaja mi sie dane z tego wlasnie termometru.
nigdzie takze nie mam bledu (err=0 po 1wreset).
nigdzie indziej w kodzie nie pojawia sie wiecej config 1wire.
wsze info mile widziane
pozdro4all
czy jest mozliwe wielokrotne uzycie config 1wire tak jak na ponizszym listingu?
Aktywny_termometr = 0 'zewnetrzny
Config 1wire = P3.0
Call Odczyt_temperatury
Aktywny_termometr = 1 'wewnetrzny
Config 1wire = P3.1
Call Odczyt_temperatury
Call Wyswietl_wyniki
Wait 2
dodam ze o dziwo program odczytuje dane ale z termometru 2., do ktorego config jest podany jako drugi...
w wynikach pojawiaja mi sie dane z tego wlasnie termometru.
nigdzie takze nie mam bledu (err=0 po 1wreset).
nigdzie indziej w kodzie nie pojawia sie wiecej config 1wire.
wsze info mile widziane
pozdro4all
Panie poczytaj w helpie o poleceniach 1wire znajdziesz napewno no chyba ze jestes leniem do ntej to.
Zeby uzywac wiecej portow 1wire nie stosujesz konfig, tylko odpowiednie parametry po poleceniu.
gdzie: Port - port do ktorego jest podlaczony dany czujnik (Pina, Pinb, Pinc itp)
nrWypr - czyli do ktorego wypr portu jest przylaczony (od 0 do 7 zalezy ile dany port ma wyprowadzen)
dane - czyli co wpisujemy
ile - ile bajtow ma zostac wpisane/odczytane
x -chyba wiadomo co moze oznaczac[/code]
Zeby uzywac wiecej portow 1wire nie stosujesz konfig, tylko odpowiednie parametry po poleceniu.
Kod: Zaznacz cały
1wreset Port , nrWypr
1wwrite dane , ile , Port , nrWypr
x = 1wread(ile , Port , nrWypr)
nrWypr - czyli do ktorego wypr portu jest przylaczony (od 0 do 7 zalezy ile dany port ma wyprowadzen)
dane - czyli co wpisujemy
ile - ile bajtow ma zostac wpisane/odczytane
x -chyba wiadomo co moze oznaczac[/code]
serdeczna dzieka za info.
moje niedopatrzenie.
thnx
dopatrzylem sie jednak bledu w Twoim poscie:
otorz pomiedzy portem, a numerem pinu musi byc kropka a nie przecinek.
taka jest konwencja. P3.0 a nie P3,0
mimo tego iz poczytalem w manualu, to po wywolaniu 1wreset p3.0 mam blad 120:
label not found [_RESETDS_P3.0]
zupelnie nie wiem jak to skompilowac
1wreset na inny pin tez nie dziala - nie kompiluje
moje niedopatrzenie.
thnx
dopatrzylem sie jednak bledu w Twoim poscie:
otorz pomiedzy portem, a numerem pinu musi byc kropka a nie przecinek.
taka jest konwencja. P3.0 a nie P3,0
mimo tego iz poczytalem w manualu, to po wywolaniu 1wreset p3.0 mam blad 120:
label not found [_RESETDS_P3.0]
zupelnie nie wiem jak to skompilowac
1wreset na inny pin tez nie dziala - nie kompiluje
Ups. Sory moje niedopatrzenie, ze piszedz Px.y a nie Portn.y. Ja pisalem o BascomAVR Ale rzeczywiscie masz racje co do sposobu zapisu portu. Co do tego bledu to nie mam zielonego pojecia. Chociarz jak patrze na helpa do 51 to widze ze oni aliasuja port. Moze to jest przyczyna twojego bledu podczas kompilacji. Sprobuj zaliasowac wczesniej port:
Kod: Zaznacz cały
TwojaNazwa Alias P3.0
heh
mam tak:
Ds18b20_1 Alias P3.0
Ds18b20_2 Alias P3.1
a potem:
do
Aktywny_termometr = 0 'zewnetrzny
Call Odczyt_temperatury
Aktywny_termometr = 1 'wewnetrzny
Call Odczyt_temperatury
Call Wyswietl_wyniki
Wait 2
loop
w podprogramach odczyt_temperatury wybierane sa odpowiednie parametry dla transmisji 1wire na podstawie aktywny_termometr.
bkad jest taki sam, nawet jak zmienie na konkretne piny przy 1wreset (innych polecen na razie nie daje bo najierw musze przejsc 1wreset) (zamiast ds18b20_1 lub _2)
jedyna poprawe przynisi wyrzucenie tych linijek kodu ktore chca uzywac 1wire dla roznych pinow.
mysle ze napisze do Marka Albertsa z MCS i zapytam go czy czasem nie jest taz ze help mowi co innego niz potraafi kompilator
pozdro
[ Dodano: 30-11-2004, 12:43 ]
napisalem w tej sprawie na forum mcs.
odpowiedzial mi sam autor.
polecil mi update do wersji 2.0.11.0 z mojej 2.0.8.0
niestety nic sie nie zmienilo
czy ktos z Was ma podobne problemy?
kompiluje sie Wam cos takiego na bascom 8051:
ds alias p3.0
1wreset ds
?
uzywam winxp sp1
pozdro4all
mam tak:
Ds18b20_1 Alias P3.0
Ds18b20_2 Alias P3.1
a potem:
do
Aktywny_termometr = 0 'zewnetrzny
Call Odczyt_temperatury
Aktywny_termometr = 1 'wewnetrzny
Call Odczyt_temperatury
Call Wyswietl_wyniki
Wait 2
loop
w podprogramach odczyt_temperatury wybierane sa odpowiednie parametry dla transmisji 1wire na podstawie aktywny_termometr.
bkad jest taki sam, nawet jak zmienie na konkretne piny przy 1wreset (innych polecen na razie nie daje bo najierw musze przejsc 1wreset) (zamiast ds18b20_1 lub _2)
jedyna poprawe przynisi wyrzucenie tych linijek kodu ktore chca uzywac 1wire dla roznych pinow.
mysle ze napisze do Marka Albertsa z MCS i zapytam go czy czasem nie jest taz ze help mowi co innego niz potraafi kompilator
pozdro
[ Dodano: 30-11-2004, 12:43 ]
napisalem w tej sprawie na forum mcs.
odpowiedzial mi sam autor.
polecil mi update do wersji 2.0.11.0 z mojej 2.0.8.0
niestety nic sie nie zmienilo
czy ktos z Was ma podobne problemy?
kompiluje sie Wam cos takiego na bascom 8051:
ds alias p3.0
1wreset ds
?
uzywam winxp sp1
pozdro4all
Wielokrotne 1wire
Witam
W helpie i w Bascom Basic AVR Pana Gibka(z internetu) jest trochę na ten temat. Osobiscie używam różnych portów 1wire w rożnych procedurach. Pod kolejnym Sub definiuje Config 1wire i pod tym sub dziala. W nowej wersji Bascoma mozna też używać np:
1wreset Pind , 4
1wwrite &HCC , 1 , Pind , 4
1wwrite &H44 , 1 , Pind , 4
Wait 1 'przerwa na konwersje
1wreset Pind , 4
1wwrite &HCC , 1 , Pind , 4
1wwrite &HBE , 1 , Pind , 4
Pozdrawiam
W helpie i w Bascom Basic AVR Pana Gibka(z internetu) jest trochę na ten temat. Osobiscie używam różnych portów 1wire w rożnych procedurach. Pod kolejnym Sub definiuje Config 1wire i pod tym sub dziala. W nowej wersji Bascoma mozna też używać np:
1wreset Pind , 4
1wwrite &HCC , 1 , Pind , 4
1wwrite &H44 , 1 , Pind , 4
Wait 1 'przerwa na konwersje
1wreset Pind , 4
1wwrite &HCC , 1 , Pind , 4
1wwrite &HBE , 1 , Pind , 4
Pozdrawiam
Term_1 Alias P1.7
Term_2 Alias P1.6
....
do
loop
Inicjuj_termometry:
1wreset Term_1
1wwrite &HCC Term_1
1wwrite &H44 Term_1
1wreset Term_2
1wwrite &HCC Term_2
1wwrite &H44 Term_2
Return
Odczytaj_temperature:
1wreset Term_1
1wwrite &HCC Term_1
1wwrite &HBE Term_1
T(1) = 1wread(2 , Term_1) '< temperatura termometru 1 do dalszych obliczeń
1wreset Term_1
'tu zrób coś z temperaturą 1 np wyświetl albo coś
1wreset Term_2
1wwrite &HCC Term_2
1wwrite &HBE Term_2
T(1) = 1wread(2 , Term_2) '< temperatura termometru 2 do dalszych obliczeń
1wreset Term_2
'tu jak wyżej tylko z temperaturą 2
Return
Inicjuj i odczytuj naprzemiennie co ~ pół sekundy. I tylko nie pisz, że nie działa bo działa i to całkiem nieźle
PC
Term_2 Alias P1.6
....
do
loop
Inicjuj_termometry:
1wreset Term_1
1wwrite &HCC Term_1
1wwrite &H44 Term_1
1wreset Term_2
1wwrite &HCC Term_2
1wwrite &H44 Term_2
Return
Odczytaj_temperature:
1wreset Term_1
1wwrite &HCC Term_1
1wwrite &HBE Term_1
T(1) = 1wread(2 , Term_1) '< temperatura termometru 1 do dalszych obliczeń
1wreset Term_1
'tu zrób coś z temperaturą 1 np wyświetl albo coś
1wreset Term_2
1wwrite &HCC Term_2
1wwrite &HBE Term_2
T(1) = 1wread(2 , Term_2) '< temperatura termometru 2 do dalszych obliczeń
1wreset Term_2
'tu jak wyżej tylko z temperaturą 2
Return
Inicjuj i odczytuj naprzemiennie co ~ pół sekundy. I tylko nie pisz, że nie działa bo działa i to całkiem nieźle
PC
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 21 gości