Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 26 kwi 2026, o 07:50


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 14 cze 2015, o 09:54 
Offline
Nowy

Dołączył(a): 18 mar 2015
Posty: 2
Pomógł: 0

Witam,
przejdę od razu do meritum. Próbuję zmusić wewnętrzny EEPROM w atmedze8 do działania, jednakże bez skutku. Obudowałem zmienne w strukturę, zrobiłem funkcje dla zapisów flash->ram, ram->eeprom i odczytu eeprom-> ram. Wywołuje w programie funkcje zapisu do eepromu (pokolei z flash, przez ram do eeprom), po czym próbuję odczytać wartość za pomocą funkcji eeprom -> ram, odczytując pole z ram. Wszystko wydaje się okej, uzyskuje poprawną liczbę. Jednakże po wyłączeniu funkcji zapisu (czyli po jednokrotnym zapisaniu eepromu) i próbie odczytu eeprom-> ram, czytając to samo pole otrzymuje wartość 0 za każdym razem. Stworzyłem także dla próby, dodatkową zmienną dla struktury ram, żeby sprawdzić czy przypadkiem w ram nie siedzą wartości po zapisie flash-> ram i funkcja odczytu eeprom nic nie zmienia, jednakże przy wcześniejszym użyciu funkcji zapisu do eeprom przed odczytem, wszystko jest okej, używam innej zmiennej od flash do zapisu, innej do odczytu i wartość otrzymuje. Po za komentowaniu zapisu po raz kolejny wartość 0.
Zapewne to jakiś głupi problem, ale co może być nie tak?
Załączam kod :

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Oczywiście próbowałem z usuniętymi polami uint8_t programX[] i samymi dwoma ( w sumie trzema ) polami, jednakże także problem ten sam.

int main :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

funkcja showNumber oczekuje liczby, ilości cyfr i czy poprzedzać zerem (dla zapisu czasu)

Ustawienia fusebitów :
Obrazek

Dodatkowo odczyt EEPROM z eXtreme Burner - AVR :
Obrazek

Czyli w sumie wygląda na to że problem z zapisem. Ale dlaczego zera?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 cze 2015, o 10:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Odznacz fusebit EESAVE, gdyż kiedy jest zaznaczony to włączona jest opcja niepozwalająca na zapis do pamięci EEPROM.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 cze 2015, o 10:24 
Offline
Nowy

Dołączył(a): 18 mar 2015
Posty: 2
Pomógł: 0

Odznaczone (tak to jest jak się próbuje wszystkiego co jest na internecie), jednakże na nie wiele się to zdało.
Podmieniłem funkcje zapisywania flash->ram w odniesieniu do poradnika Pana Mirka http://mirekk36.blogspot.com/2012/11/avr-eeprom-struktury-poradnik-do-ksiazek.html na
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

i adekwatnie wszędzie zmieniłem z sizeof(PARAMETRY) na sizeof(ram), chociaż akurat ta zmiana nie wiele powinna robić.
Wygląda to w tym momencie tak że po wywołaniu w programie
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

otrzymuje taki eeprom (pomijając czy poprawnie zapisany):
Obrazek
A po za komentowaniu funkcji EEPROM_przywroc_podstawowe(), po raz kolejny pojawiają się tam wszędzie zera.

Ogółem z tego co testuje, wychodzi na to że użycie funkcji
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
automatycznie zeruje te komórki w EEPROM, co z tego co rozumiem nie powinno się dziać (inaczej jak sprawdzić czy pusta?)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 cze 2015, o 21:48 
Offline
Użytkownik

Dołączył(a): 29 wrz 2014
Posty: 28
Pomógł: 5

Spróbuj tak zdefiniować strukturę w pamięci EPROM:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 6 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO