Witam, przeszukałem już cały portal i nie znalazłem odpowiedzi.
mam kod obsługi 3 x DS18X20 z numerami układów zapisanymi w EEPROM i jeżeli chcę odczytać właściwy ROM to muszę użyć sekwencji jak w kodzie w sekcji 1 (bez skoku do podprogramu)
w przypadku gdy uruchomię z odremowanymi komendami odczytu z EEPROM w sekcji 1 z zaremowanym skokiem do podprogramu to wszystko działa. Program po kolei
odczytuje kolejne bajty adresu DSa a następnie wysyła je komendą 1wverify.
Ale gdy chcę to zrobić poprzez wywołanie jak w w/w kodzie to zaczyna czytać kolejne bajty z pamięci RAM a nie EEPROM uC. Jako że jestem początkujący w temacie BASCOMa więc proszę o pomoc.
ps. próbowałem z Funkcją i SUBem ale nic mi nie wyszło
zmieniłem post. Wyciąłem zbędne fragmenty.
Ktoś mi pomoże?
mam kod obsługi 3 x DS18X20 z numerami układów zapisanymi w EEPROM i jeżeli chcę odczytać właściwy ROM to muszę użyć sekwencji jak w kodzie w sekcji 1 (bez skoku do podprogramu)
'program odczytujący obecność układów 1WIRE i sprawdzający ROMy z EEPROM
$regfile = "attiny2313.dat"
$crystal = 12000000
$hwstack = 40
$swstack = 20
$framesize = 40
'$sim
$lib "LCD4.LBX"
Rom_adres(8) As Byte
'**************************************************************************************************************************
$eeprom ' zapis adresów ROM układów 1WIRE do EEPROM
Data 255 ' zapis blokujący komórkę 00. Możliwe błędy odczytu po resecie
'**********************
Ds_pokoj:
'Data 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8
Data &H28 , &H0A , &HDE , &HBC , &H02 , &H00 , &H00 , &HE1 ' czujnik podłączony na kablu
'**********************
Ds_pokoj2:
Data &H28 , &H6E , &HB0 , &HBC , &H02 , &H00 , &H00 , &H4D ' czujnik z białą plamką
'**********************
Ds_ext:
Data &H10 , &H79 , &HF7 , &H98 , &H01 , &H08 , &H00 , &H22 ' czujnik DS1820, rozdzielczość 0,5 na zewnątrz
'***************************************************
$data ' odwołanie zapisu Data do EEPROM
'**********************
Main:
Do
'************************************************************
'SEKCJA 1
' odczyt pierwszego ROM-u
Readeeprom Rom_adres(1) , Ds_pokoj ' odczyt 1 bajtu adresu z EEPROM, kolejne 7 odczytywane z makra
'Readeeprom Rom_adres(2)
'Readeeprom Rom_adres(3)
'Readeeprom Rom_adres(4)
'Readeeprom Rom_adres(5)
'Readeeprom Rom_adres(6)
'Readeeprom Rom_adres(7)
'Readeeprom Rom_adres(8)
GoSub Odczyt_rom
Loop
End
'***********************************************************
Odczyt_rom:
Readeeprom Rom_adres(2)
Readeeprom Rom_adres(3)
Readeeprom Rom_adres(4)
Readeeprom Rom_adres(5)
Readeeprom Rom_adres(6)
Readeeprom Rom_adres(7)
Readeeprom Rom_adres(8)
Returnw przypadku gdy uruchomię z odremowanymi komendami odczytu z EEPROM w sekcji 1 z zaremowanym skokiem do podprogramu to wszystko działa. Program po kolei
odczytuje kolejne bajty adresu DSa a następnie wysyła je komendą 1wverify.
Ale gdy chcę to zrobić poprzez wywołanie jak w w/w kodzie to zaczyna czytać kolejne bajty z pamięci RAM a nie EEPROM uC. Jako że jestem początkujący w temacie BASCOMa więc proszę o pomoc.
ps. próbowałem z Funkcją i SUBem ale nic mi nie wyszło
zmieniłem post. Wyciąłem zbędne fragmenty.
Ktoś mi pomoże?