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



Teraz jest 29 mar 2024, o 09:19


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 17 lip 2019, o 19:27 
Offline
Użytkownik

Dołączył(a): 07 cze 2016
Posty: 563
Pomógł: 143

zubik napisał(a):
zapisująca do podstruktury T_ID:
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 to rozumiem. Jeśli zapis, to nie powinno być raczej eeprom_write_block() i eeprom_write_byte()?

zubik napisał(a):
Przykładowe wywołanie:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

&ee_setting.eeprom_ds_id.eeprom_ID[MAXSENSORS] - do czego to wskaźnik?
A gdzie jest początek tablicy?


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2019, o 19:51 
Offline
Użytkownik

Dołączył(a): 07 cze 2016
Posty: 563
Pomógł: 143

zubik napisał(a):
andrews napisał(a):
&ee_setting.eeprom_ds_id.eeprom_ID[MAXSENSORS] - do czego to wskaźnik?

Do pierwszego elemntu tablicy dwuwymiarowej którą udostępnia biblioteka 1Wire z BB

Niestety nie znam tego kodu z BB, więc nie mogę się do niego odnieść, ale to na pewno nie jest wskaźnik na pierwszy element tablicy, tylko na pierwszy bajt za tablicą, czyli dokładnie tam, gdzie masz element struktury o nazwie nastawy_eeprom.

Wskaźnik na pierwszy element tablicy wygląda tak: &ee_setting.eeprom_ds_id.eeprom_ID[0].


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2019, o 20:15 
Offline
Użytkownik

Dołączył(a): 07 cze 2016
Posty: 563
Pomógł: 143

zubik napisał(a):
To znaczy, tutaj do struktury która jest w eeprom, ale w ram te dane są przechowywane w tablicy

Nieważne, gdzie jest tablica, wewnątrz struktury czy nie, w RAM czy w EEPROM. Pierwszy element tablicy jest zawsze pod indeksem [0], a nie [MAXSENSORS] czy jakimkolwiek innym (niezerowym).

zubik napisał(a):
ona napełnia dane w tablicy gSensorsID - w ram, tę tablicę kopiuję do eeprom.
Ale nie pokazałeś, jak ją zapisujesz, tylko jak odczytujesz, więc skąd ma być wiadomo, czy i dlaczego dane są nadpisywane. W każdym razie, niezależnie od tego, czy funkcja kopiuj_ID() zapisuje dane z EEPROM do RAM, czy odwrotnie, ten wskaźnik podałeś nieprawidłowo. Jak już napisałem, on wskazuje za tablicę.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2019, o 20:25 
Offline
Użytkownik

Dołączył(a): 07 cze 2016
Posty: 563
Pomógł: 143

zubik napisał(a):
Więc funkcja zapisu:

A jak wywołujesz? Jakie argumenty przekazujesz do funkcji?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2019, o 20:40 
Offline
Użytkownik

Dołączył(a): 07 cze 2016
Posty: 563
Pomógł: 143

Tak jak już napisałem. Zapisujesz dane pod nieprawidłowym adresem &ee_setting.eeprom_ds_id.eeprom_ID[MAXSENSORS][/b] (zaraz za tablicą, czyli w miejscu,gdzie jest element struktury nastawy_eeprom. Odczytujesz z tego samego nieprawidłowego adresu, więc masz wrażenie, że wszystko jest OK. Kiedy jednak zapiszesz (prawidłowo) do elementu nastawy_eeprom jakieś dane, to nadpiszesz poprzednio zapisane dane.

Zapisuj i odczytuj - tak jak napisałem - pod indeksem [0] i będzie OK:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Cytuj:
Wynik kompilacji jasno wskazuje że jest użyte tyle eeprom ile ma być

Kompilator nie wychwyci tego, że podając nieprawidłowy wskaźnik, zapisujesz dane poza zadeklarowaną w EEPROM strukturą.


Autor postu otrzymał pochwałę


Ostatnio edytowano 17 lip 2019, o 20:43 przez andrews, łącznie edytowano 1 raz

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

Strefa czasowa: UTC + 1


Kto przegląda forum

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