Tak, może się tak zdarzyć, przy niestabilnym zasilaniu. Dlatego zawsze włączaj BOD oraz zmieniaj zawartość rejestrów EEADR na adres nieużywanej komórki EEPROM.
mam tez padnietą gammę - czy mogłbym tez dostać tem programik??? skrzat_bu(at)interia.pl dziękuję
Z tym resetem to pewnie koleś nie wiedział że się nie zresetował. Ja też 93c56 (sl220) nie mogę zresetować i ty pytanie czy zmieniajęc wartość wszystkich komórek w eepromie na wartość "0" to nie to samo co reset i po takim czymś jest szansa rze bateria ruszy? ten eeprom ma format 128x16 i pytam kolejny raz ma ktoś może wsad lub wiedze na temat pod jakim...
chyba nie rozumiem twojego problemu lub czegos nie zrozumiales w helpie: Zapisuje dane do wbudowanej pamięci EEPROM. Składnia: WRITEEEPROM zmienna , adres gdzie: zmiennazmienna, której wartość wpisana będzie do adresowanej komórki EEPROM, adresadres komórki pamięci EEPROM.
Z ta jedynka to po to aby 'byte' zapelnic jedynkami, coby sprawdzac czy na SDA jest ACK. I2CWrite jest uzywany do adresowania: char EEPROMReadByte(char slaveaddr, unsigned int address) { char al, ah, byte, rd_slv; rd_slv=slaveaddr+1; al=address&0x00ff; ah=(address>>8)&0x00ff; I2CStart(); I2CWrite(slaveaddr);...
Brakuje etykiety (adresu) Powinno być tak: $eeprom Adres: Data 140 , 134 , ... Adres - zmienna z adresem komórki w pamięci eeprom Wartość 140 zapisze się w pierwszej komórce, jaką podasz, a 134 w kolejnej i tak dalej. PS: Pamiętaj, aby nie zapisywać danych w pierwszej komórce(o adresie 0) pamięci eeprom, podczas włączania się układu, lubi sama zmieniać...
To co pisze hotdog oczywiście jest słuszne. Ale przypuszczam, że problem jest bardziej złożony. Stare AVRy, do których zalicza się ATMega8 miały problem z komórką EEPROM o adresie 0, najlepiej jej nie używać. Druga rzecz - obowiązkowo włącz BOD - zapis przy niepewnym zasilaniu spowoduje bzdury w pamięci. Musisz też zagwarantować, że na czas operacji...
To jest wskaźnik do EEPROM, czyli adres zapisywanej komóki. E2END to stała zdefiniowana w AVR-libc, zawierająca adres ostatniej dostępnej komórki EEPROM, adresacja zaczyna się od 0.
"Więc skoro ta kostka ma 8 kilo ramu to ostatnia komórka pamięci powinna mieć adres 0x2000, tak?" NIE. Ostatni adres to 0x1FFF. 0x2000 = 0x0000, bo 13-ty bit adresu zostaje gubiony.
To "odnajdowanie" adresu wiąże się też bezpośrednio z równomiernym zapisem komórek EEPROM. Ponadto jest jest zaimplementowana kontrola limitu zapisów. Może była superowa w 2012 roku Arduino z AVR to też już artefakt, ale możesz oczywiście napisać własną bibliotekę. Ostatnie zmiany w bibliotece EEPROMEx pochodzą sprzed 2 lat. Dodano po 3 Jest jeszcze...
Tak, dokładnie... to może opiszę to dokładniej... mam urządzenie które odczytuje klipsy rfid i zapisuje je do pamięci eeprom (na razie tam ale jeśli będzie za mała lub bardziej jeśli projekt zdobędzie akceptację dołożę kartę sd co z punktu widzenia transmisji nie ma zasadniczo znaczenia), po podłączeniu do komputera moja aplikacja ustawia wstępnie parametry...
A sprawdzałem to 3 razy... Adres &H160 Sukces :) Dodano po 17 Czyli jak teraz mam odczytać eeprom? Dodano po 3 $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portb.2 , Db7 = Portb.1 , E = Pinc.1 , Rs = Pinc.0 Config Sda = Portc.4 Config Scl = Portc.5 'zapis...
A masz inicjację I2C ? Fredy tzn chodzi Ci o: '********************* Konfiguracja magistrali I2C Config I2cdelay = 5 ' domyślnie tryb Slow Config Sda = Portc.1 Config Scl = Portc.0 to mam bo robiłem już zegar z PCF8583 asembler Początkowo próbowałem robić to tak: [syntax=asm] Sub Zapis_eeprom: I2cstart 'warunek startu I2cwbyte Adres_z 'wyślij adres...
to jest adres urzadzenia, a nie adres pamiec w eeprom. Przeczytaj jeszcze raz, tym razem ze zrozumieniem to co napisałem. Albo napiszę jaśniej : na bitach adresu urządzenia znajdują się najstarsze bity adresu komórki pamieci.
tylko starsze avr'y miały błąd który powodował że komórka pamięci EEPROM o adresie zerowym (tylko ta komórka) ulegała czasami przypadkowemu nadpisaniu np w skutek zerowania uC. Więc 1 bajt to nie cała pamięć..po prostu unikaj zapisywania pod adresem 0x00 eepromu i 'nie powinno' być problemów. Do tego się stosuje chociaż nie miałem z EE problemów
I2cwbyte Nrbanku 'wyślij adres banku w pamięci EEPROM I2cwbyte Nrkomorki 'wyślij adres komórki Wydaje mi się, że tutaj tkwi błąd. Adres banku to 9 bitów ale rozbite na 7 mniej znaczących bitów starszego bajtu adresu i dwa bardziej znaczące bity młodszego odresu. Pozostałe 6 mniej znaczących bitów młodszego adresu ustawić trzeba na zero (adres komórki).
Witam, narazie napisałem tylko tyle ;( $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Pinc.2 , Db5 = Pinc.3 , Db6 = Pinb.2 , Db7 = Pinb.2 , E = Pinc.1 , Rs = Pinc.0 Config Rc5 = Pind.2 Config 1wire = Pinb.0 Config Sda = Pinc.4 Config Scl = Pinc.5 'zapis i odczyt danych z eeprom Dim A As Byte Const...
chcę zrobić tablicę z nazwami dni tygodnia do kalendarza. deklaruję dim tablica(7) as string * 12 Po co Ci aż 7 12-bajtowych stringów :?: Wystarczy: Dim Dzientygodnia As String *12 , Nrdnia As Byte ... Dzientygodnia=Lookupstr(Nrdnia,Tabli... '0=Pon, 1=Wtor, ... Lcd Dzientygodnia; ... Tablica: Data "poniedziałek", "wtorek"...
Pod daną komórkę. Dlatego np. przy dużej liczbie zapisów pojedynczego bajtu dobrze jest zmieniać adres.
Witam napisałem program który będzie korzystał z wewnętrznej pamięci EEPROM do przechowywania wartości ustawień, ale interesuje mnie kwestia jak w winavr określić wartości domyślne z którymi ma być zaprogramowana pamięć EEPROM. Czyli np. komórka o adresie 1 wartość 0x20, druga komórka 0x30 itp.
Próbowałeś tak jak pisał gawlak wyzerować komórki od adresu $300 do końca i zapisaniu od nowa. Laptop powinien wyliczyć sumy kontrolne sam.
To może zapytam jeszcze inaczej. Wiedząc że odczyt nie działa użyłem innej funkcji odczytu: [syntax=c]uint32_t readFromEEPROM (uint32_t address) { return (*(__IO uint32_t *)address); }[/syntax] Oczywiście jako address podaję adres komórki eepromu tego konkretnego mikrokontrolera. Efekt jest taki że funkcja zwraca jakaś bzdurną wartość, nawet kiedy funkcję...
mogę Ci dać pełny eeprom
A jak zaadresujesz 511 komórkę ?? W nocie napisane jest adresowanie 9-bitów. Owszem, tylko że 9-ty bit znajduje się w adresie urządzenia, a nie w adresie komórki pamięci. Czytaj dokładniej. Nie rozumiem Cię - chcesz rozwiązać problem, czy udawać ... "mądralę" :?:
Pamięć 24C32 wymaga po adresie układu dwóch bajtów adresu komórki. U Ciebie jest jeden:
Adresu układu - nie komórki.
Tak jakby błąd był zapisywany w obu komórkach np 67 i 87 z tym że w 87 chyba jeszcze czas (mth) wystąpienia, a w przypadku ponownego tego samego błędu nadpisuje się czas (mth) - tak ja to zrozumiałem. Jest też coś ciekawa informacja producenta. że: "Zawartość adresów od 65 do 103 jest zerowana w komputerze przed wysyłką zegarów po naprawie u producenta"...
Nie powiedział pan czy to jest poprawny zapis. 0---- 31 inkremntacja wysyłam adres 32 32----63 inkrementacja wysyłam adres 64 Tak jest poprawnie, pamiętając oczywiście o tym, że przed każdym wysłaniem adresu musi być START i adres pamięci. Panie Andrzeju wspomniał Pan o adresowaniu 0 do do 31 nie rozumiem skąd pan wziął 33 bajt To był tylko przykład,...
Co jest źle? [syntax=basic4gl]$regfile = "m32def.dat" $crystal = 8000000 $hwstack = 64 $swstack = 64 $framesize = 32 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2 '********************* Konfiguracja magistrali I2C Config I2cdelay = 5 ' domyślnie tryb Slow Config Sda...
Pewnie że kompilator domaga się wskaźnika ale zapisywanie danych pod bezpośrednie adresy w EEPROM to jednak nieporozumienie z punktu pisania kodu w C O.k., ale pamiętać należy o mogących wystąpić kłopotach w EEPROM z komórką o adresie 0.
(at)Kubbaz Pokaż kod w którym dokonujesz operacji odczytu. Większość eeoromów pamieta ostatni adres - tak że mozesz spróbowac przeczytac bez wysyłania adresu komórki - spróbuj. Większość pamięci EEPROM to ma auto-inkrementację adresu więc to co piszesz ma średnie szanse na działanie.
np control base hex ms 35 00:ustawia bit zabezpieczajacy na nieaktywny eeprom $0df80 $1000:obszar gdzie sie znajduje eeprom przyklad dla KA4 md $????:odczyt danego adresu mm $????:modyfikacja komorki
Można zadeklarować prawidłowo zmienną eeram W ten sposób Dim Adres_er(size_t_mac) As Eram Byte At Adres_p_mac Poprzez komende AT znam adres, po jaki będzie się odwoływać zmienna eeram w pamięci. Niestety, ale z Eepromem ten numer nie przejdzie , ponieważ Bascom ignoruje etykiety w Eepromie. Deklaruje, jakie wartości powinny być zapisane w eeram...
Wartość z zakresu adresów bajtów pamięci danych EEPROM. Pod tym adresem zostanie zapisany później bajt umieszczony w rejestrze EEDATA lub zostanie odczytany bajt z komórki o tym adresie. Rejestry związane z obsługą pamięci EEPROM dla Twego mikrokontrolera znajdują się w banku 1 patrz nota katalogowa DS40044F str 16. Pokaż też nagłówek programu - może...
Mój sposób nr 1: -zakładasz w jednej lub dwóch komórkach wskaźnik do bieżącej struktury roboczej, składającej się z licznika zapisów (3 bajty) oraz rejestru przechowującego zmienną (o dowolnym rozmiarze), -następnie tworzysz funkcje do zapisu oraz odczytu zmiennej. Fun do odczytu ustala za pomoca wskaznika poczatek struktury w EEPROM, a nastepnie odczytuje...
Witam, Prosze o pomoc, próbuje skorzystac z wewnętrznej pamięci eeprom w mikrokontrolerze At8928252. Udało mi się napisać procedure odczytu i zapisu tej pamięci w języku C (środowisko RIDE). Niestety po odcięciu zasialania zmienne nie są pamiętane. Dodatkowo na wyświetlaczu wyświetlany jest stan adresów komórek eeprom'a i...nie jest do końca zgodny...
Jejku po co? Powiedzcie mi po co dodatkowe pamięci? Przecież po to zostawiłem sobie gniazdo programowania że jak mi szlak trafi komórkę eeprom to zmienię tylko adres komórki do zapisu na inny. A pozatym jeśli komórka nie będzie trzymać to jakie znaczenie ma po 2 dniach nieużywania lampy czy 2 dni temu ostatni tryb był ustawiony na 1 czy na 3? Włączam...
W CodeVisionAVR (C) możesz to zrobić tak: deklaracja zmiennej eeprom unsigned int knastawyCRC; i zapis lub odczyt: knastawyCRC = 23; kakas_zmienna = knastawyCRC; BTW to raczej nie używaj komórki o adresie 00 z EEPROM w AVR, bo możesz się nabawić kłopotów;-). W asm trzeba wykonać kilka poleceń (wpisy do odpowiednich rejestrów i ustawienie bitów), ale...
Jest tylko jeden bufor dla całego EEPROM. W efekcie to gdzie jego zawartość zostanie zapisana zależy wyłącznie od rejestru adresowego NVM. Danych nie zapisujesz do rejestru danych NVM ale bezpośrednio w obszar pamięci do której jest mapowany EEPROM (niezależnie czy mapujesz, czy nie). Adresacja w tym obszarze jest normalna dla odczytu EEPROM, przy zapisie...
Oczywiście że można, przez wpisanie do komórki o adresie #7EF w eeprom, zawartości 22 w miejsce zawartości, którą prawdopodobnie masz tj. 12. Pierwszy bajt odpowiada za to właśnie czy radio jest z kodem - 1, czy też bez kodu - 2. Jeśli nie wiesz o czym napisałem oddaj radio fachowcowi.
Zaznaczyłeś bajty o adresach 16, 17, 18, 19. To jest zapis szesnastkowy Bo tu chodzi o adresy poszczególnych komórek, a nie numerację bajtów na zasadzie liczenia od lewej do prawej.
Dzięki za kolejną odpowiedź i kolejne uchylenie rąbka tajemnicy:). Z tym bitem o który pytasz cytując moją wypowiedź to faktycznie chodzi i o bit potwierdzenia które generuje urządzenie. Rozumiem z Twojej wypowiedzi, że wejścia A2-A0 służą tylko i wyłącznie do określania adresu urządzenia SLAVE.
Może nie traci - odczytaj EEPROM i porównaj. Prawdopodobnie przekłamanie dotyczy jednego bajtu EEPROM, tego na który aktualnie wskazuje rejestr adresowy EEPROM. Stąd też, ustaw wartość tego rejestru na nieużywaną komórkę pamięci EEPROM zawsze kiedy się do tej pamięci nie odwołujesz, możesz np. na 0 i pominąć tą komórkę pamięci przy zapisie (zapisywać...
I2cstart I2cwbyte 'adres ? I2cwbyte 1 I2cstart I2crbyte A , Nack I2cstop Tylko raz wysyła się adres najpierw scalak potem komórki. I jeśli wystawisz start po tym to masz odczyt i zostało tylko odbierać dane. Adres pamięci masz poprany. A poprzedni wariant ci nie działał bo odczytywałeś następną komórkę. Adres w pamięci jest automatycznie inkrementowany.
Jak pisze Pan Witkowski, początkowa komórka pamięci EEPROM czyli ta o adresie h00 może zmieniać swoją wartość na skutek spadku napięcia zasilania i nie jest to zawarte w żadnych papierach. Dobra praktyka nakazuje żeby umieszczać pod tym adresem bajt z którego nie będzie się korzystać. Czy Zaobserwowałeś objawy na tym jednym bajcie czy pod wszystkimi...
Zgaduję, że zapisujesz pierwszą komórkę w pamięci EEPROM i tam są błędy? Jeżeli tak, to nic nowego. Nie używa się pierwszej komórki, ponieważ jakikolwiek błąd zasilania, zapisu, kontrolera (timing) powoduje, że automatycznie jest zerowany rejestr adresowy i zapis jest prowadzony do komórki z adresu 0x00. Zacznij zapisy od komórki 0x01 i powinno być...
Mały cytat z helpa: Opierając się na nocie katalogowej firmy Atmel, pierwsza komórka pamięci EEPROM (o adresie 0) może zostać nadpisana, jeśli w czasie trwania zapisu nastąpiło obniżenie napięcia zasilania poniżej gwarantowanego 2,7V. Zaleca się nie używać tej komórki pamięci dla ważnych danych, a zwłaszcza tych przechowywanych w trakcie braku zasilania....
Końcówki Ax muszą być podpięte pod minus albo plus zmienia to w ten sposob adres urządzenia. Szeregowa pamięc eeprom padzielana jest na strony na 256 komórek każda po 1 bajcie . Jesli chodzi o wyjscie RW (reda and write) to tam takiego nie ma pomyliło ci sie z wyświetlaczem tam sa dwa styki do magistrali I2C sdai scl napięcie zasilające masa i te Ax...
Witajcie. Avrgcc i plik nagłówkowy eeprom.h. Nie znalazłem prostego sposobu. Czy da się umieścić zmienne w pamięci EEPROM pod konkretnym adresem nie zostawiając pola dla linkera? Potrzebuję tablicę uint16_t Tablica[16] EEMEM umieścić (a potem odczytywać) od pierwszej komórki pamięci EEPROM (czy jakiejkolwiek innej). Da się to zrobić prosto bez pisania...
Zapis do EEPROM jest realizowany różnie. Są EEPROMy w których kasowanie odbywa się stronami, natomiast zapis możliwy jest do pojedynczych komórek, są też EEPROMy posiadające wewnętrzny bufor SRAM, do którego odbywa się najpierw zapis, a potem z niego na stronę pamięci. W takim przypadku jeśli strona ma np. 128 bajtów, to inicjacja zapisu powoduje zapisanie...
$eeprom - dyrektywa kompilatora, która informuje go, że od tego miejsca dane będą trafiać do pamięci EEPROM. Faktycznie dane te trafią do pliku EEP, którego zawartość podczas programowania zostanie przelana do wewnętrznej pamięci EEPROM układu. Napisa: - Etykieta dla polecenia READEEPROM. Jest to przyjazny zamiennik adresu pod którym dane w tej pamięci...
Podłączając się do tematu. Jak najbardziej znane są możliwości zwiększania żywotności eeprom przedstawiane powyżej. Jednak biorąc pod uwagę milionową ilość kasowania eeproma ($FF) czy nie można w jednej komórce eeprom np 9 przechować adres aktualnej zapisanej wartości np 10. Po każdym zapisie w komórce 10 byłaby dokonana kontrolna procedura odczytu...
Dzięki wader_669 i emarcus , to mi wyjaśniło a właściwie skomplikowało rozwiązanie, dzielenie modulo 8 i reszta to nr bitu. czy możecie jesze podpowiedzieć , jak po każdym uruchomieniu w petli FOR/NEXT wpisać do eepromu 0 w bajty o adresie 1 (druga komórka pamięci) do 420?
Witam, super, dzięki za zauważenie, racja, nadpisuję komórki a wszystko przez szybkie kopiowanie kodu, zabrakło jednej linijki: adres=(adres*4)+1; na początku. Pozdrawiam
Wymieniłem uszkodzony sterownik 1C0 962 258 N. Kupiłem używany po kodzie części. Trafił mi się z jakiegoś trzydrzwiowego Volkswagena. Działały tylko przednie drzwi. Zostało zmienione kodowanie na wersję czterodrzwiową. Wszystkie drzwi się ryglują i odryglowują prawidłowo. Ale jest mały problem. Gdy otworzę samochód, czy to pilotem, czy kluczykiem, a...
Witam Mam następujący problem, do pamięci eeprom atmegi 8 chce zapisać taka oto tablicę: const uint16_t EEMEM C_rtd[] = {0,233,466,699,933,1166,1400,1634,1...
Witam. Mam małe pytano Dotyczące konfiguracji mikrokontrolera, a będzie to 2 uC który zaprogramuje (nie chodzi mi tu o sam programator bo to wszystko mam i co nieco wiem) Używam PonyProg I programator pod Lpt Chciałbym się dowiedzieć o co chodzi z: "Aby każdorazowo przy uruchomieniu częstotliwość była kalibrowana należy odczytać programatorem jednobajtową...
Wiem że kiedyś też z tym miałem zonka i głowiłem co jest nie tak. Rozwiązaniem było pozostawienie pierwszej komórki i adresowanie danych od adresu 01, jak pisałem wcześniej.
ie pasuje mi brak powiązania numeru buttona z tymi zmiennymi R i I. I to jest pewnie ten problem. Zastanów sie też nad innym nieco odczytywaniem odpowiednich komórek z ramu: Powiedzmy że tak: for I=1 to 10 for R=1 to 8 ala=R*8 'Tu bedzie sie zmieniać wartość co osiem: 8, 16, 24 itd ela=ala+I Readeeprom Button_number , ela If Button_number = Register_number(i)...
Stosujc się do powyższych wskazówek uruchomiłem program, lecz teraz w terminalu nic się nie wyświetla, więc na to wygląda, że gdzieś flaga SPIF nie jest ustawiana i program się zapętla. Bardzo proszę o jakieś wskazówki w rozwiązaniu problemu. Poniżej przedstawiam poprowiony kod programu. [syntax=c] /* Dołączone biblioteki */ #include <avr/io.h>...
O zerowym adresie czytałem i go nie wykożystuję. Ale robi się kaszanka w różnych komórkach EEPROM-u nie tylko w pierwszej ale i też w ostatniej. A RESET już na sztywno podłączyłem do VCC procka i też nie pomaga. Jedyne co pomaga, co pisałem wcześniej, przed wyłączeniem przytrzymać RESET.
Bo tak naprawde to ja sie wcale nie upieram przy eepromie. Potrzebuję mieć po 1 jdenym bicie na nóżkę co w sumie da 4 bity czyli liczbę 1-1000 w binarnym. Chodzi tylko o to zeby liczba 1-1000 była na stałe. Może istnieją po protu pamięci które po podaniu napięcia dają bity tego co mają w pamięci na nóżki wyjsciowe? Co to znaczy dają bity tego co mają...
Adres EEPROM to: 1 0 1 0 A2 A1 A0 R/W gdzie A to piny kości które mogą być dołączone do gnd(0) lub do plusa(1); Po podaniu adresu podajesz dwubajtowy (MSB i LSB) adres komórki a poźniej daną którą chcesz zapisać albo odczytać. Wszystko w nocie :)
eeprom odczytałem ale jeszcze nie wiem w których komórkach jest kod Jak ktoś może ,to proszę o podanie adresów. Pozdrawiam!
To prościej będzie adresowac liniowo (licznikiem) tylko powtarzać zawartość w kolejnych komórkach. Po prostu sekwencja będzie dłuższa. Możesz też użyć jednego z bitów pamięci jako sterującego. Jak jest równy 0 to stan pozostałych 7 komórek jest zapamiętywane w rejestrze wyjściowym a jak 1 to w liczniku adresującym, co powoduje skok do odpowiedniego...
Problem z komórką zero zapewne wynika z tego, że szczególnie starsze ATmegi, przy niepewnym zasilaniu lubią nadpisywać tą komórkę - rejestr adresowy EEPROM zawiera zero, stąd ten problem. Ale rozwiązaniem jest raczej zabezpieczenie procka, przed działaniem przy napięciu spoza zakresu poprawnej pracy, czyli wykorzystanie układu BOD. Wtedy problem znika....
Nie ma właśnie nic więcej wspomniane o tym, przewija się raz jeszcze na początku ta fraza, ale żadnego objaśnienia Jest w DS objaśnienie (koło strony 500, "Theory of Operation" ) The EEPROM operates using a traditional Flash bank model which implements EEPROM-type cells, but uses sector erase. Additionally, words are replicated in the pages to allow...
Freddie Chopin, wnioskuję z tego, że kompilator z Bascoma jest głupi bo wywala mi brak SRAM pomimo, że zmienne nigdy nie zostały użyte w programie i praktycznie cały ram powinien być wolny. Hmmm... Tak sobie czytam i się zastanawiam... Nasunęły mi się pod wpływem powyższych postów takie pytania: PO CO deklarować zmienne, których się później nie używa...
(uint8_t*)5 tobi z literału 5 wskaźnik wskazujący na komórkę pamięci o adresie 5 (w tym przypadku EEPROM). Deklarując zmienną w obszarze EEPROM nie musisz znać jej adresu! Odwołując się do niej pobierasz po prostu jej adres przy pomocy operatora &. Dzięki temu to kompilator i linker myślą jak rozmieścić zmienne, a nie ty. I o to mniej więcej by chodziło...
Co do drugiej uwagi wspomniana konstrukcja w funkcji eeprom_write() jest takowa, z mysla o tym, zebym mogl jej uzywac do zapisywania ciagow. Dzieki temu moge napisac eeprom_write(EEPROM1, adres, "tekst do wpisania < 32 liter"); Obawiam się, że to będzie działać prawidłowo tylko wtedy, gdy adres będzie podzielny przez 32. Poza tym,...
Jeszcze jedna sprawa... W jaki sposób zmusić linkera (z poziomu eclipsa) aby przy definicji danych przeznaczonych do pamięci eeprom typu np: EEMEM struct _sWorkParameters DefaultWorkParameters_inEEPROM[...... umieścił je poczynając od zadanego adresu? Domyślnie wpisuje od komórki 0x00 co nie jest zalecane
Witam, wygląda na to, że zainteresowanie tematem ucichło :(. Metoda prób i błędów doszedłem do tego, że układ poprawnie odpowiada na zaadresowanie (i2cwbyte 160) ale nie odpowiada na adres komórki (oi2cwbyte adres1)... Co może być nie tak?
Musze zaleście biedy 0. Ogólnie masz słabość do języków, co? 1. W '51 wektor resetu jest pod 0x00, a użycie rozkazu LJMP xxxx, zabiera 3 bajty. Przelicz samodzielnie na jaki adres wskazuje ORG 100000000B i czego można się tam spodziewać. 2. C51 ma 4 banki po 8 rejestrów, więc R9 to chyba ciężko będzie znaleźć. 3. Rozkaz MOV wymaga dwóch operandów....
masz błąd, bo stosujesz procedurki do obsługi 24c04 W 24c04 przy ustawianiu adresu wysyłasz po i2c bajt sterujący, a potem 1 (JEDEN) bajt adresu. W 24c64 różnica jest niewielka - 2 (DWA) bajty adresu. Poczytaj sobie w nocie aplikacyjnej 24C64, a potem zmień procedurki.
tak samo jak wgrywasz flash z programem możesz wgrać zawartość pamięci eeprom pomiń tylko komórkę z adresem 0h bo bywa że się przypadkiem zapisze przy starcie układu reszta do twojej dyspozycji ;) w zakładce programatora memories masz w górnej linijce ścieżkę do wyboru pamięci flash a w kolejnej ścieżce wpisujesz ścieżkę do pliku z zawartością eeprom...
Tak jeszcze pójdę tym tropem. Faktycznie w pdfie jest napisane że adresujemy dwoma słowami 8 bitowymi. Próbuje napisac procedure która by mi rozbiła licznik zapisu do eeprom(w postaci dziesiętnej) bedący integerem np komórka nr 500 na dwie liczby 8 bitowe bedące adresem zapisu. Niestety samo rozbicie na dwie 8 bitowe potrafie zrobić ale niestety ten...
Po wpięciu analizatora wymuszasz komunikację poprzez uruchomienie drukarki. Sygnał SCK jest okresowy o stałej częstotliwości. MOSI zawiera rozkazy odczytu i adresy komórek pamięci, a MISO będzie nieregularne. Po takim odszukaniu wyprowadzeń samego eepromu lutujesz w isp programatora i autodetekcja.
No ale właśnie ta biblioteka odczytuje dane po podaniu adresu pierwszej komórki. Tak właśnie robię i dostaje nan. czy jeszcze muszę jakoś doczytywać CRC?
Witam Liczba typu integer zajmuje 2bajty wiec nie zmiescisz jej do jednej komorki w pamieci, bo to jest 1bajt. Jedyne rozwiazanie to rozdzielenie liczby 2741 na dwa bajty i zapisujesz w dwoch komorkach: 27 w jednej komorce i 41 w kolejnej komorce. Przy odczycie z pamieci musisz sobie polaczyc w jedna dana typu integer. Np w C wygladzalo by to mniej...
Bascom Atmega Jak zapisać domyślne wartości w eepromie pod wskazanym adresem? Tworzenie zmiennych w kodzie, które mogą wskazywać, pod jaki adres ma ona wskazywać zajmuje miejsce w kodzie programu. Jeżeli zadeklarujemy to w ten sposób to wszystko jest zapisane w pliku epp i nie zajmuje miejsca w kodzie programu. Ale jak wskazać że przykładowo etykieta...
Te funkcje oczekują parametru typu wskaźnik na int, a ty najpierw dawałeś liczbę, a teraz próbujesz też liczbę - zapisaną w komórce o adresie adres.
W jakim jezyku piszesz? W C masz zadanie ulatwione, patrz struktury... Ale generalnie masz trzy parametry na jedno akwarium, ktore oznacze #1, #2, #3. Do tego masz trzy akwaria A,B,C Więc tworzysz sobie tablice : [#1,#2,#3] dla akwarium A [#1,#2,#3] dla akwarium B [#1,#2,#3] dla akwarium C Istotna uwaga: nie zapisuje sie danych w pamięci POD JAKĄŚ NAZWĄ....
Witam. No to już krok do przodu. Widzę, że używasz Mega8535 - w starym AT908535 był znany przypadek utraty danych z EEPROM - zwłaszcza z komórki o adresie 0, a tam właśnie przechowujesz zmienną SPEED1. Właśnie - przechowujesz, ale również zapisujesz. W dokumentacji Mega8535 jest opisane, w jakich przypadkach mogą wystąpić błędy związane z zapisem/odczytem...
Pierwsza linia dwie ostatnie komórki. Nie zapomnij że ten kod musisz jeszcze przeliczyć odpowiednią tabelą
Witam Chciałem zrobić zabezpieczenie przed rozładowaniem akumulatora ( 12V/65Ah ) zasilającego moje halogeny LED nad biurkiem. Woltomierz na PCF8591 działa ok, nawet dodanie warunku określającego reakcję na spadek poniżej ustawionego napięcia również ( chwilowo jest tam tranzystor FET sterujący paskiem LED ). Chciałbym, aby układ po osiągnięciu zbyt...
Chciałbym na moim leciwym CA80 (z procesorem Z80 i portem 8255) wykorzystać EEPROM 24LC16 jako pamięć podręczną na pisane programy. Przesyłanie danych wg I2C. Linie SDA i SCL podciągnięte do +5V poprzez rezystory 4,7 k. Program napisany w asemblerze Z80 niestety nie działa, wszystkie odczyty są równe 0. Linią SDA podłączona do PA0, linia SCL do PC4....
Witam, Nie miałem okazji przedtem pobawić się EEPromem zawartym w Atmega16, aż do dzisiaj. Pogrzebałem po necie i napisałem taki oto programik: [syntax=c] #include <avr/eeprom.h> #define ASRES1 1 #define ADRES2 5 #define ADRES3 10 uint8_t zmienna1, zmienna2, zmienna3; int main(void) { zmienna1= eeprom_read_byte ((uint8_t*)ADRES1); //czytanie z...
Djemen: Znalazłem Twój wątek w "dziwnym ładowaniu baterii..." i pomyślałem, że podzielę się swoimi doświadczeniami w podnoszeniu aku do lapków. Niestety posiadam wąską specjalizację, a mianowicie ograniczam się do BQ2040. To jest sterownik ładowania/rozładowania baterii Li-on , NiCD lub NiMH (wybór programowy), do tego eeprom 2401 lub 2402. Co do balancera...
Jeżeli chcesz użyć 24c04 to tylko dwie nóżki możesz użyć do zmiany adresu kości na I2C, z tego wynika że do adresowania pamięci używa się 6 bitów a bit 7 w połączeniu z osmioma bitami adresu komórki służą do adresowania 4k pamięci.
Witam Mam pytanie dtyczące radyjaka w jak temacie. Otóż udało mi sie skomunikować z procesorem HC05B6 w tym radyjku i chciałbym zapytać o ile to jest możkiwe w których komórkach siedzi kod w tym radyjku. I czy można zmienić zawartość eeprom tak aby radio startowało bez kodu (jeżeli tak to pod jakim adresem). Pozdrawiam i z góry dziękuję.
Rejestrem EEWE? Nie myl takich rzeczy bo łatwo kogoś (albo nawet samego siebie) wprowadzasz w błąd. EEWE to bit z ATtiny26. Przypuszczam że chodzi ci o rejestry EEARH i EEARL. Jest to adres komórki którą chcesz zapisać lub odczytać w pamięci EEPROM. W przypadku ATtiny861, który ma 512 bajtów EEPROM starszy rejestr adresowy (czyli EEARH) będzie przyjmował...
Witam! Kiedyś miałem podobny problem z pamięcią EEPROM w atmega168, polegający na uszkodzonych kilkunastu początkowych komórek pamięci i jedynym wyjściem było przerzucić się na wyższe adresy. Pamiętam że przenosiłem pewien projekt z atmegi8 na atmegę168 w którym to dosyć intensywnie wykorzystywałem pamięć EEPROM, w związku z czym dodatkowo miałem niemało...
Kod PIN jest zapisywany w pamięci EEPROM, najczęściej w bazie jeśli chodzi o aparaty bezprzewodowe. Niestety, adresy komórek w których jest zapisany kod nie są jednakowe dla wszystkich urządzeń. Aby Ci ktoś pomógł podaj konkretny model aparatu.
mam problem z 24c16 : wiem że jest to 2048bx8 , zapisuję w kolejnych 30 komórkach liczbę np. 3 i w zasadzie jest ok , ale jak odczytuję zawartość pamięci (od 0 do 2074) to co 256 komórek powtarza się to co wpisałem na początku Dim A As Byte , B As Integer Const Adresw = 160 Const Adresr = 161 For B = 0 To 30 I2cstart I2cwbyte Adresw I2cwbyte B I2cwbyte...
Tworzy się W EEPROM dwie tablice jednakowej wielkości. Dla ATtiny13 to będzie od 00 do 1F i od 20 do 3F. W jednej z tablic zapisuje się żądaną wartość. W tym przypadku jeden bajt określający stan wyjść. Zapisuje się go zawsze do kolejnej komórki - najpierw do 00, potem od 01 itp, aż dochodzi się do 1F o znów do 00. Po co tak komplikować? Wiem, że to...
zrobilem sobie taki zegarek RTC na I2C i LCD 16x2 na zestawie uruchomieniowym zl2avr jednak nie wiem jak sie zabrac za podlączenie LCD pod I2C myslalem zeby uzyc pcf8574 tylko nie wiem jak podlaczyc LCD do tego ukladu i czy nie trzema jakiejs dodatkowej biblioteki ?? co by to obslugiwala ?? oto moj programik jaki mam do tej pory bez LCD na I2C : $regfile...
Witam, Mam następujący problem... Jeżeli chcę zainicjalizować zmienną w EEPROM robię to tak: unsigned char test EEMEM = 0x11 //generowany jest wtedy dodatkowy plik .eep z inicjalizacją pamięci EEPROM Powyższy kod posiada jedną wadę - kompilator zmienną "test" zapisuje w pierwszej wolnej komórce EEPROM-u, a mi zależy na tym, żeby "test" była zapisana...
Chodziło mi właśnie o systematyzowanie komórek po 4 żeby przy odczycie nie rozjechały mi się adresy. Zgadza się Właśnie o to mi chodziło Macie rację warto poświęcić jedną komórkę na wskaźnik. Właśnie tego mi brakowało Jeszcze nie wiem jak to zrobię, przede mną cała noc zabawy, dam jutro znać jak się udało , ewentualnie na czym utknąłem. Nie potrzebujesz...
Zbudowałem ładowarkę na kontrolerze ATTina 26 według opisu autora jak również zaprogramowałem kontroler zmieniłem fusbity i niby wszystko jest OK.Zastanawia natomiast mnie zapis autora następującej treści:"Aby każdorazowo przy uruchomieniu częstotliwość była kalibrowana należy odczytać programatorem jednobajtową wartość kalibrującą dla częstotliwości...
No cóż poprawiłęm program trochę na miarę moich umiejętności. Dodałem trochę komentarzy, a efekt wrzucam w tym poście. Pomoc by mi się naprawdę przydała. Po kompilacji nie ma błędów ani warningów. #include <avr/io.h> unsigned char word = 0x01; // Adres komórki pamięci unsigned char dane = 0x7A; // Dane wysyłane i odbierane z pamięci int bitstartu(void);...
adres komórka adres komórka zmienna excel adres komórka
pozycyjne astra pacifica czujnik karta graficzna niskoprofilowa
montaz czujnikow montaz czujnikow
Nieszczelne palniki w płycie gazowej Electrolux Inwerter off-grid nie ładuje akumulatora 48V 860Ah