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ęJak zapisać string do eeprom
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
Mam pytanko czy ktoś może wie jak można zapisać String o dowolnej długości do pamięci eeprom. Bawię się na procesorze 2313
Pozdrawiam
Pozdrawiam
Jednym z lepszych sposobów jest zapis zmiennej do eeprom "wyjmując" kolejne bajty tej zmiennej z pamieci ram. Musisz skompilować program. W raprocie kompilacji odnajdziesz adres pod którym kompilator umieścił zadeklarowaną zmienną STRING w pamięci RAM (XRAM). Zakładając, że zmienna ma zadeklarowaną długość np. 20 znaków oraz że kompilator umieścił ją np. pod adresem &H20, można odczytać za pomocą polecenia PEEK spod adresu &H20 bajt i zapisać go do eeprom. Potem całość należy powtórzyć 20 razy, zwiększając adres o 1 (aż do &H33). W ten sposób zapisałeś cały ciąg do eeprom. Aby go odczytać należy ładować kolejne bajty z eeprom do pamięci ram. Można skorzystać z POKE i w podobny sposób do poprzedniego odczytywać kolejno bajty z eeprom i zapisywać do ram zaczynając od adresu &H20 do &H33. To tyle.
Dodam, że ja w ten sposób zapisuje i odczytuje do eeprom każdą zmienną o długości > 1 bajtu. Pozdrawiam.
Dodam, że ja w ten sposób zapisuje i odczytuje do eeprom każdą zmienną o długości > 1 bajtu. Pozdrawiam.
Jeśli chodzi o wewnętrzną pamięć EEPROM to proszę:
Kod: Zaznacz cały
' ********* 1 **********
Dim Tekst As Eram String * 10
Tekst = "Ala i kot"
' Teraz tekst został umieszczony w pamięci EEPROM mikroprocesora(!!) Jeśli
' chcesz wiedzieć pod jakim adresem to zajrzyj do raportu kompilacji.
' Możesz także podpowiedzieć kompilatorowi gdzie dokładnie ma umieścić
' zmienną w wewnętrznej pamięci EEPROM mikroprocesora:
'
' DIM Tekst AS ERAM String*10 AT 10
'
' Teraz raport zgłasza:
'Variable Type Address(hex) Address(dec)
'-----------------------------------------------------------------------
' TEKST EEPROM String 000A 10
'
' Zresztą przetestuj sam. Zmień pierwszą linię, skompiluj program,
' włącz "Refresh Variables" i włącz także okno podglądu pamięci - zakładka
' EEPROM. Teraz uruchamiając symulację zobaczysz że napis pojawi się w
' pamięci.
' ********* 2 **********
' Ponieważ ten pierwszy prosty program zajmuje już około 7% pamięci
' AT90s2313 to wpisywanie stałych danych nie ma sensu w taki sposób.
' Wykorzystaj dyrektywy $EEPROM i $DATA:
$eeprom
Data "TU jestem"
$data
' Ten fragment wygeneruje plik zawartości pamięci EEPROM (*.EPP), który
' wykorzystasz podczas programowania procesora.
' Jak włączysz symulację to tekst ten powinien od razu pojawić się w oknie
' podglądu pamięci.
' ********* 3 **********
' Jeszcze jeden sposób to wykorzystanie poleceń WRITEEEPROM oraz
' READEEPROM :
Dim Zmienna As String * 10
Zmienna = "BASCOM"
Writeeeprom Zmienna , 20
' To spowoduje, że zawartość zmiennej ZMIENNA trafi do pamięci
' EEPROM mikroprocesora pod adresem 20.
Zmienna = "nic"
Readeeprom Zmienna , 20
Print Zmienna
' A tutaj odczytamy tekst spod określonego adresu.
' READEEPROM możesz wykorzystać do odczytania pamięci w dwóch poprzednich
' przypadkach:
Readeeprom Zmienna , 0
Print Zmienna
End
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 0 gości