ATNEL tech-forum https://forum.atnel.pl/ |
|
EEPROM coś nie wyszło https://forum.atnel.pl/topic22319.html |
Strona 1 z 1 |
Autor: | Daro68 [ 9 cze 2019, o 19:02 ] |
Tytuł: | EEPROM coś nie wyszło |
Proszę o pomoc coś nie wyszło jak w tytule, krótki program w ramach nauki pięć przycisków z tego cztery do obsługi led zmieniają stan świecenia diody a piąty ma wgrać stan led z eeprom czyli takzwane ustawienia fabryczne.Problem polega na tym że po wciśnięciu przycisku KEY5_PIN nie wgrywają się ustawienia eeprom. język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Poz. |
Autor: | xentis [ 10 cze 2019, o 18:05 ] |
Tytuł: | Re: EEPROM coś nie wyszło |
No wszystko ładnie i pięknie, ale skąd wiesz że nie działa? Przecież nigdzie w kodzie nie "wyrzucasz" zawartości struktur na piny sterujące diodami! |
Autor: | Daro68 [ 10 cze 2019, o 20:10 ] |
Tytuł: | Re: EEPROM coś nie wyszło |
właśnie w tym problem, czyli po naciśnięciu KEY5 program powinien skopiować dane z pamięci eeprom do ram i załadować inf. domyślne które znajdują się w eeprom |
Autor: | xentis [ 10 cze 2019, o 20:20 ] |
Tytuł: | Re: EEPROM coś nie wyszło |
Cytuj: po naciśnięciu KEY5 program powinien skopiować dane z pamięci eeprom do ram i załadować inf. domyślne które znajdują się w eeprom Ale na jakiej podstawie twierdzisz że tak się nie dzieje? W kodzie nie ma żadnej funkcji która by zmieniała stan diod świecących zgodnie z ustawieniami w strukturze w ramie więc nie rozumiem na jakiej podstawie wyciągasz wnioski że kopiowanie danych z eeprom do ram nie działa?
|
Autor: | Tom92 [ 10 cze 2019, o 20:42 ] |
Tytuł: | Re: EEPROM coś nie wyszło |
Musisz zrobić to co Ci mówi xentis czyli to co skopiowałeś z pamięci flash do ram to po tej czynności wyrzuć to na piny. Coś typu: język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. I tak z każdą diodą. |
Autor: | Daro68 [ 10 cze 2019, o 23:16 ] |
Tytuł: | Re: EEPROM coś nie wyszło |
xentis nie twierdze że tak się nie dzieje tylko nie umiałem nie rozumiałem jak to wydostać z eepromu twoja uwaga co do funkcji jest słuszna dopiero wtedy uswiadomiłem sobie gdzie tkwił błąd w moim myśleniu po pierwsze ubzdurało mi się że #define LED_1_stan 1 - wgrane do eeprom = z oświecenie led LED_1_ON a po drugie to ma załatwić reszte sprawy język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. przegladajac kod Mirka natrafiłem na to język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. i wszystko stało się jasne same LED_1_stan 1 nie oznacza oświecenia się Led , język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
teraz wszystko działa poprawnie ale chciałbym jeszcze żeby przy restarcie też się wgrały ustawienia z eeprom sugestie mile widziane Poz. |
Autor: | Tom92 [ 11 cze 2019, o 00:00 ] |
Tytuł: | Re: EEPROM coś nie wyszło |
Daro68 napisał(a): ale chciałbym jeszcze żeby przy restarcie też się wgrały ustawienia z eeprom sugestie mile widziane To chcesz załadować na starcie dane z pamięci flash czy eeprom? Jak z flash to przed petla while() dodaj funkcje load_defaults() a następnie mozesz wyrzucic to na piny tak jak wyzej napisalem. A jak z eeprom to np zapisuj sobie stan diody do eeprom po wcisnieciu przycisku i po restarcie wczytaj dane z eeprom podobnie jak znowu wyzej pisalem tylko już funkcją check_and_load_defaults(). |
Autor: | Daro68 [ 11 cze 2019, o 23:05 ] |
Tytuł: | Re: EEPROM coś nie wyszło |
zadałeś kolejne ważne pytanie, widać znów coś źle zrozumiałem z lekcji Mirka myslałem że zapis funkcji void load_defaults( void ) dotyczy zapisu do eeprom ,czy tak a zapis funkcji void check_and_load_defaults( void ) sprawdza czy w eeprom jest coś zapisane, czy tak. Tom92 napisał(a): To chcesz załadować na starcie dane z pamięci flash czy eeprom? Moim celem było zapisanie w eeprom dlatego po twoim pytaniu uświadomiłem sobie że znowu coś pomieszałem. Poz. |
Autor: | Tom92 [ 12 cze 2019, o 07:13 ] |
Tytuł: | Re: EEPROM coś nie wyszło |
Funkcja load_defaults(); służy do załadowania ustawień "fabrycznych", czyli tych, które zdeklarowałeś tutaj w pamięci FLASH: język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. Funkcja ta kopiuje ustawienia z pamięci flash do ram i eeprom. Daro68 napisał(a): a zapis funkcji void check_and_load_defaults( void ) sprawdza czy w eeprom jest coś zapisane, czy tak. Tak, funkcja sprawdza czy w pamięci EEPROM jest coś zapisane, jeśli tak do załaduje ustawienia z EEPROM, a jeśli nic nie ma w eepromie to załaduje ustawienia z pamięci flash jak wyżej. Daro68 napisał(a): Moim celem było zapisanie w eeprom Czyli jak zmieniasz stan diody po wciśnięciu przycisku to chcesz zapisać ten stan w pamięci eeprom, żeby po restarcie były zapamiętane ostatnio świecące diody? Bo jeśli tak to spróbuj coś w tym stylu (nie mam na szybko pomysłu jak to zapisać z led_tog dlatego na tym przykładzie): język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. Jak zapiszesz sobie do eeprom w ten sposób stan diod to po restarcie przed pętlą main sprawdzisz czy coś masz w eeprom i załadujesz te ustawienia check_and_load_defaults(); i wysterujesz ledy - możesz to zrobić jak w moim pierwszym poście tutaj. Dodatkowo możesz zrobić ustawienia "fabryczne" na przycisku nr 5 jak w swoim przykładzie chciałeś load_defaults(); i wysterować ledy. |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |