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

slawcio
-
-
Posty:48
Rejestracja:28 lip 2004, o 13:10
Lokalizacja:Sławatycze
Kontaktowanie:
Jak zapisać string do eeprom

Postautor: slawcio » 13 sie 2004, o 10:50

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

JanWi
-
-
Posty:50
Rejestracja:7 maja 2003, o 15:44

Postautor: JanWi » 13 sie 2004, o 19:22

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.

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

Postautor: ZbeeGin » 14 sie 2004, o 17:15

Spróbuj zadeklarować zmienną typu String w EEPROM poleceniem DIM z klauzurą ERAM.

slawcio
-
-
Posty:48
Rejestracja:28 lip 2004, o 13:10
Lokalizacja:Sławatycze
Kontaktowanie:

Postautor: slawcio » 16 sie 2004, o 11:57

A może ktoś z was mógłby taki programik zamieścić. Tak było by prościej.

Pozdrawiam i proszę o odpowiedź

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

Postautor: ZbeeGin » 19 sie 2004, o 18:27

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

slawcio
-
-
Posty:48
Rejestracja:28 lip 2004, o 13:10
Lokalizacja:Sławatycze
Kontaktowanie:

Postautor: slawcio » 20 sie 2004, o 14:18

Witam

Dzięki za podpowiedź na pewno mi się przyda.

Pozdrawiam

slawcio
-
-
Posty:48
Rejestracja:28 lip 2004, o 13:10
Lokalizacja:Sławatycze
Kontaktowanie:

Postautor: slawcio » 20 sie 2004, o 14:32

Ale jest jeszcze jedno pytanie. Jak zapisać string do pamięci EEprom za pośrednictwem magistrali I2C. Jest to zewnętrzna pamięć 24cXX.
Bo przykład wyżej przedstawia jak zapisać string do pamięci eeprom procesora. Oczywiście zakładamy że znane są oba adresy pamięci.

Awatar użytkownika
Kamilkozi
-
-
Posty:229
Rejestracja:19 mar 2004, o 11:48
Lokalizacja:Gdańsk
Kontaktowanie:

Postautor: Kamilkozi » 20 sie 2004, o 19:13

Wykorzystaj PEEK i POKE tak jak radzi wyżej JanWi. Za pomocą tych poleceń uzyskujesz liczby jednobajtowe które mozesz zapisać do EEPROMa w typowy sposób przez I2C.

GasM
-
-
Posty:92
Rejestracja:4 lut 2004, o 11:57

Postautor: GasM » 21 sie 2004, o 08:37

post nie ważny, żle przeczytałem wypowiedź :evil:

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