Witam. Mam problem z zapisaniem i odczytem z eepromu.
Po pierwsze plik z epromu zapisuje się osobno z rozszerzeniem eep czy w kodzie programu ??
Po drugie chciałbym aby ktoś sprawdził mój kod wszystko działa, zapisuje największą temperaturę ale chyba jednak w flash'u bo jak odłączam zasilanie i załączam to ta temperatura zostaje skasowana
bardzo bym był wdzięczny za wszelkie podpowiedzi i przykłady
Po pierwsze plik z epromu zapisuje się osobno z rozszerzeniem eep czy w kodzie programu ??
Po drugie chciałbym aby ktoś sprawdził mój kod wszystko działa, zapisuje największą temperaturę ale chyba jednak w flash'u bo jak odłączam zasilanie i załączam to ta temperatura zostaje skasowana
$regfile "m8def.dat"
$crystal = 8000000
$eeprom
'model procesora dla którego jest ten program
Deflcdchar 1 , 14 , 17 , 17 , 14 , 32 , 32 , 32 , 32 ' definicja znaki stopnia
Config Portb.0 = Input
Portb.0 = 1
Config Portc.4 = Output
Portc.4 = 1
Config 1wire = Portc.5 ' konfiguracja portu PD.5 jako wej?cia magistrali 1-wire
Dim Odczyt(2) As Byte , A As Byte , Licznik As Byte , T As Integer , T1 As Single , Napis As String * 5
Dim E As Byte
Dim X1 As Byte
Dim X As Byte
Do
1wreset 'reset
1wwrite &HCC 'jedna kostka, więc wykorzystujemy rozkaz SKIP ROM
1wwrite &H44 'dokonaj konwersji
Waitms 750 'przeczekaj czas konwersji
1wreset 'reset
1wwrite &HCC 'rozkaz adresowy SKIP ROM
1wwrite &HBE 'rozkaz funkcyjny - polecenie odczytu DS18x20
Odczyt(1) = 1wread(2) 'odczytaj dwa pierwsze bajty
T = Odczyt(2) 'przepisz starszy bajt do zmiennej typu Integer
Shift T , Left , 8 'przesuń ten bajt w lewo na wyższe pozycje
T = T + Odczyt(1) 'przepisz - dodaj młodszy bajt
T1 = T * 0.0625 'wyra? w stopniach Celsjusza, wynik wpisz do zmiennej Single
Napis = Fusing(t1 , "#.#")
Cls : Cursor Off : Lcd "* Temperatura *"
Lowerline
Lcd ":" ; Napis ; " " ;
E = T1
If E > X Then
Writeeeprom X , 1
X = E
X1= X
End If
If Pinb.0 = 0 Then
Waitms 100
If Pinb.0 = 0 Then
Readeeprom X , 1
Cls
Locate 1 , 1
Lcd "wynik " ; X1
End If
End If
Loop
End