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



Teraz jest 15 kwi 2026, o 11:27


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 21 cze 2014, o 20:07 
Offline
Nowy

Dołączył(a): 31 maja 2014
Posty: 6
Pomógł: 0

Witam wszystkich. Na początku chciałem zaznaczyć, że jestem nowicjuszem w kwestii programowania i mogę robić dziwne błędy, za które z góry przepraszam :).
Problem wygląda następująco. Chcę zapamiętać kilka parametrów, które po ponownym włączeniu urządzenia zostaną odczytane. Zrobiłem to w oparciu o struktury tak jak w poradniku Pana Mirka. Struktura zawierająca parametry i funkcje kopiujące struktury z ram do eeprom, eeprom do ram oraz flash do ram. Wykonałem również sprawdzanie czy parametry są ustawione czy pamięć jest pusta i ewentualne wczytanie domyślnych wartości (tak jak w poradniku). Wszystkie funkcje działają dobrze, aczkolwiek sprawdzenie czy w pamięci nie ma samych wartości 0xFF nie daje oczekiwanego efektu, gdyż w sprawdzanym fragmencie pamięci (w obszarze używanym przez strukturę) znajdują się same 0. Dlaczego tam są 0 a nie FF?? Oczywiście można by dodać kolejny warunek i jeżeli są same zera to wczytać wartości domyślne, ale wg. Pana Mirka powinno to działać, więc muszę robić coś źle.

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


A tutaj funkcje kopiujące:

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


I funkcje sprawdzająca i wczytująca parametry domyślne:

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  
PostNapisane: 21 cze 2014, o 22:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

Może masz ustawiony fusebit EESAVE i pamięć Eeprom nie jest kasowana podczas np. wgrywania nowego wsadu. I być może w Eepromie, w obszarze zajętym przez strukturę, miałeś wcześniej zapisane zera. Dlatego teraz ci odczytuje takie dane.

Mógłbyś jeszcze pokazać cały kod. Może tkwi w nim jakiś babol.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 cze 2014, o 22:42 
Offline
Nowy

Dołączył(a): 31 maja 2014
Posty: 6
Pomógł: 0

Fusebity są ustawione ok (kasowanie eeprom włączone). A czy w Eclipsie ustawia się gdzieś żeby kasował przy programowaniu? I czy mam dobrze zaznaczone w ustawieniach projektu AVR/AVRDude/FlashEEPROM/Upload EEPROM image from build ? Bo z tego co rozumiem to jest to wgrywanie pliku *.epp do avra przy programowaniu. Jak zajrzałem do tego pluczku to tam jest coś takiego:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Nie bardzo rozumiem o co z tym chodzi. Wykorzystuje 12bajtów EEPROMu a tu jakieś takie dziwne rzeczy są.
Postaram się jutro rano oczyścić kod ze zbędnych śmieci i wkleić całość.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 cze 2014, o 23:00 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27456
Lokalizacja: Szczecin
Pomógł: 1045

jacekk232 napisał(a):
Może masz ustawiony fusebit EESAVE i pamięć Eeprom nie jest kasowana podczas np. wgrywania nowego wsadu


No właśnie jak kasuje to to wartościami 0xFF ;)

mlynek131 napisał(a):
Nie bardzo rozumiem o co z tym chodzi. Wykorzystuje 12bajtów EEPROMu a tu jakieś takie dziwne rzeczy są


Zrobiłeś strukturę tak? jako zmienną globalną tak? to co ? chyba normalne, że kompilator ją wyzeruje - nieprawdaż ?

więc po wgraniu pliku *.eep będą te zera, a spróbuj wyłączyć wgrywanie pliku *.eep do procka - to zobaczysz co się stanie ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 cze 2014, o 08:54 
Offline
Nowy

Dołączył(a): 31 maja 2014
Posty: 6
Pomógł: 0

O właśnie. Małą rzecz a cieszy :) Wyłączyłem wgrywanie .epp i działa tak jak powinno. Czyli trochę źle zrozumiałem sens wgrywania tego pliku. Myślałem że skoro programuje do EEPROM to muszę go wgrać, ale już CHYBA wiem jak to działa. Ta struktura TCFG config_eeprom EEMEM; jest tworzona w tym właśnie pliku (i domyślnie ma 0) więc to się wgrało do EEPROM. Dzięki wielkie Panie Mirku. Mam jeszcze jedno pytanie. Nie wiem czy brne w dobrym kierunku. Moja kolumna ma 2 wejścia sygnałowe. W zależności od wybranego wejścia (in_sel) wczytuję jeden zestaw parametrów i na nim dalej operuje. Aktualnie zrobiłem to w taki sposób, że w zależności od wybranego wejścia przepisuje wybrane parametry ze struktury do pojedynczych zmiennych i dalej już na nich operuję.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Na koniec zapisuje z powrotem do struktury i do EEPROM. Czy jest to dobre rozwiązanie czy lepiej byłoby to zrobić jakoś inaczej?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 cze 2014, o 11:11 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

mirekk36 napisał(a):
No właśnie jak kasuje to to wartościami 0xFF ;)

Oczywiście, że jak kasuje się Eeprom to wartościami 0xFF. Miałem na myśli to, że może kolega Eepromu nie kasuje a wcześniej zapisał tam jakieś zera.

Co nie zmienia faktu, że gdyby informacja o wgrywaniu pliki .epp padła w pierwszym poście to rzuciła by całkiem inne światło na ten problem. A tak to się można tylko domyślać.

mlynek131 napisał(a):
Nie bardzo rozumiem o co z tym chodzi. Wykorzystuje 12bajtów EEPROMu a tu jakieś takie dziwne rzeczy są.

Poczytaj sobie troszkę o formacie zapisu plików Intel Hex np. http://pl.wikipedia.org/wiki/Intel_Hex



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: 6 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 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