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



Teraz jest 25 lut 2025, o 23:57


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 7 sie 2015, o 21:37 
Offline
Użytkownik

Dołączył(a): 26 lip 2015
Posty: 269
Pomógł: 34

Jestem osobą początkującą dlatego nie traktuj tego jako pewnik, ale struktury nie są chyba po to aby wkładać do nich tylko jedną zmienną.

Jeszcze nie przerabiałem uart'u dlatego średnio wiem, ale jeśli chcesz przekazać zmienną z struktury która jest w pamięci eeprom do funkcji to chyba robisz tak:

jakaś_funkcja(eeprom_read_byte(&eem_cfg.id))

a jeśli chcesz coś zapisać do tej zmiennej to robisz tak:

eeprom_write_byte(&eem_cfg.id, 11)

teraz w zmiennej id będzie liczba 11;

2 warning oznacza, że nie wykorzystałeś tej zmiennej nigdzie w programie czyli nie odczytałeś zawartość lub nie zapisałeś nic do niej.

jak zapisywać i odczytywać zmienne z różnych pamięci masz przykład w bluebook'u w dziale o pisaniu biblioteki do lcd ze sterownikiem hd44780.

jeśli chodzi o ten znak '&' to odsyłam do bluebook'a na stronę:105

Jeśli wprowadziłem kogoś w błąd to proszę o poprawienie mnie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 sie 2015, o 22:05 
Offline
Użytkownik

Dołączył(a): 29 lip 2014
Posty: 195
Pomógł: 44

Witam,

zacznę może od końca. Jeśli drugi raz uruchomisz kompilację projektu, w którym nic nie zmieniłeś, warningi znikają, to tak w uproszczeniu. Kol. mokrowski kiedyś to dokładnie wyjaśnił, poszukaj na forum.

Po drugie, masz tu poplątanie z pomieszaniem, chyba nie do końca łapię, co chciałeś osiągnąć :-(. No w każdym razie, zapis:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
nie ma sensu, przy założeniu, że chcesz do tego id zapisać wskaźnik na stringa, przypisujesz do zmiennej uint64_t wskaźnik, stąd:

Warning 1 initialization makes integer from pointer without a cast [enabled by default]

Jak wyglądają funkcje Mirka do zapisu do EEPROMA, w tej chwili nie pamiętam, więc nie będę o tym pisał, coby głupot nie napisać ;-). Pomysł ze strukturami ok, ale w tym wypadku najlepiej też w nich przechowywać stringi ( oczywiście, przy założeniu, że będą w nich jeszcze inne dane).
Poniżej wklejam szkic kodu, jak najprościej to zrobić, wzorując się na tym, co wcześniej zamieściłeś. Zakomentowałem wywołanie funkcji wdt_reset() i copy_ram_emm(), abym mógł go skompilować.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Pozdrawiam, QuadMan.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 sie 2015, o 22:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

@Quad : ale mnie ubiegles z tym rzutowaniem :D

Tutaj wklejalem juz w pelni fukncjonalny kod do obslugi struktur w eeprom topic12510.html#p136187


Bartek123 napisał(a):
ale struktury nie są chyba po to aby wkładać do nich tylko jedną zmienną.


Zobacz sobie tutaj - kolega Morkowski wyjasnia troszke :D topic12510.html#p136200

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 sie 2015, o 22:51 
Offline
Użytkownik

Dołączył(a): 26 lip 2015
Posty: 269
Pomógł: 34

Dzięki @RafPe
jak pisałem dopiero zaczynam także dziękuję za ten link na przyszłość będę pamiętał.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 sie 2015, o 00:29 
Offline
Użytkownik

Dołączył(a): 29 lip 2014
Posty: 195
Pomógł: 44

Witam ponownie,

Napisałem Ci, że to jedynie szkic kodu, nie gotowe rozwiązanie.

Mam nadzieję, że zadeklarowałeś bufory na stringi w pamięciach: RAM i EEPROM, i ustawiłeś wskaźniki elementów struktur na nie. Jeśli nie, to nie dziwota, że nic Ci nie działa. Musisz zadeklarować tablice:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
, a dodatkowo w main, przed pętlą główną ustawić wskaźniki na te bufory:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Bo inaczej to będzie, parafrazując klasyka:
- Jasiu, do czego jest ten wskaźnik?
- Panie majster, ten wskaźnik jest do niczego....


P.S. Żeby nie było, absolutnie nie gwarantuję, że z tymi poprawkami kod będzie na pewno ok, bo nie mam pojęcia, jak wygląda reszta, wklej może całość tego co zrobiłeś ( oczywiście bez bibliotek Mirka ), to może ktoś się nad tym pochyli.

W sumie, istotą tego, co napisałem w poprzednim poście, było uzmysłowienie Tobie, że jeśli porównujesz stringi i "wyciągasz" tokeny ze stringów, to najrozsądniej by było ten "wyciągnięty ;-)" string zapisać jako string właśnie ( nieistotne, że to akurat nr telefonu ), a nie liczbę. W przeciwnym wypadku musiałbyś dokonać konwersji tegoż stringa na liczbę ( choćby za pomocą funkcji bibliotecznej atol( const char * str) ) i dopiero wtedy jako liczbę go zapisać. Uznałem, że skoro i tak chcesz to wyświetlać poprzez uart_puts(...), to prościej pozostać przy stringach, bez niepotrzebnych konwersji.

Pozdrawiam, QuadMan.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 sie 2015, o 12:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

multitask napisał(a):
jak wysłać zapisaną wartość (tekst) w eeprom na uart ?


A to widziales ? https://www.youtube.com/watch?v=kLy20Znqi-U

_________________
sig off ;(



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 2 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