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



Teraz jest 7 lut 2025, o 09:54


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 10 wrz 2013, o 14:56 

Pomógł: 0

Mam taki dylemat natury moralno-programistycznej ;).

W przypadku jeżeli mamy tablicę struktur z ustawieniami kilku urządzeń/wartości (mniejsza o to) to jak lepiej zrobić wybieranie domyślnych ustawień po włączeniu urządzenia?

Dodać kolejną zmienną w strukturze jako znacznik np. uint8_t default, gdy default == 1 to wtedy ta wartość jest domyślna?
Czy tworzyć kolejną zmienną która będzie zapisywana osobno w eepromie jako wartość miejsca w tablicy struktur?

W sumie jedno bajtowa zmienna nie wiele mi powiększy wielkość tablicy w eepromie, czy pamięci bo tylko 10 produktów będzie, co == 10bajtom, co w sumie nie jest żadnym problemem.
Dodatkowo stosując znacznik default będzie chyba łatwiej tym "zarządzać" kwestia tylko wykrycia czy przypadkiem dwie, albo więcej pozycji w tablicy nie ma ustawionego znacznika default.

Ktoś ma jakieś pomysły?

Ogólnie będzie to wyglądało w ten sposób, że są dane w FLASH, jako domyślne powiedzmy dwie pozycje po kilka parametrów, one są ładowane przy pierwszym starcie, lub w przypadku przywracania fabrycznych ustawień do eeproma z flash, następnie mamy znacznik która wartość ma być domyślnie załadowana do ram, tj. na którym zestawie parametrów będzie pracowało urządzenie, w każdej chwili mozna wybrać przez menu, (góra, dół) poszczególne ustawienia zapamiętane w eepromie.
Dodatkowo musi być możliwość modyfikacji, danych zapisanych w eeprom.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 11 wrz 2013, o 07:54 

Pomógł: 0

Gwyn, czyli co, dać po prostu całkiem osobną zmienną niezależną od struktury, gdzie będzie zapisywana pozycja z domyślnymi ustawieniami?.
Nie bardzo mam pomysł jak to rozwiązać, by można było bez problemu to zapisywać w eepromie razem z tą strukturą.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 11 wrz 2013, o 11:41 

Pomógł: 0

No w sumie to tablicę struktur.
No najbardziej mi się podoba to z tym wskaźnikiem..... hmmm tylko jak to zaimplementować w C ;) by przy zapisywaniu tej tablicy struktur, nie było problemu z zapisywaniem tej zmiennej, w sumie w eepromie to za dużo rzeczy nie będzie max 20-30% zajętości.
Tylko "boję" się operować na zmiennych do eeprom, struktura jest bardziej bezpieczna.
Jest jakaś metoda w C by się nie przejmować ewentualnym nadpisaniem wartości w eepromie?

------------------------ [ Dodano po: 10 minutach ]

Jeszcze mam jeden dylemat, natury menu ;), bo próbuję zrozumieć, w jaki sposób zrobić obsługę prostą menu, że mamy właśnie te domyślne wartości zapisane w eepromie powiedzmy te 10pozycji, następnie przy normalnym działaniu wybieramy aktualną pozycję klawiszami góra/dół, ale musi być też możliwość korekty po pierwsze głównej wartości, jak również pozostałych parametrów dla każdej struktury w tablicy, a co za tym idzie bezpośredni dostęp do danych.

By nie mieszać cały czas w eepromie, kopiuję sobie tablicę struktur po uruchomieniu programu do ram, następnie w ram "mieszam". Tylko chwilowo mam to na etapie wybierania jak w "snaku" Mirka, czyli żadnych wskaźników w zasadzie, tylko odwoływania do struktur i if/case wybór zmiana.

Zastanawiałem się, czy nie dało by się jakoś uniwersalniej tego menu zrobić, tak by zostawały przekazywane parametry do obsługi góra/dół i przy normalnym trybie odpowiadały za wybór nastaw zapamiętanych, a po wejściu w menu nastaw zmieniały po pierwsze którą wartość modyfikować, a potem po wejściu głębiej dodatkowe parametry.
Z drugiej strony prościej było by nie bawić się tak, tylko zrobić np. możliwość modyfikacji dla każdej pozycji tablicy (dane w strukturze) osobno, czyli na wskaźnikach odwoływać się do poszczególnych pól w strukturze, podmieniać jak by wskaźniki do tych pól w samej obsłudze góra/dół.

Tylko jak to zwykle bywa, prościej by mi było polutować to niż opisać to za pomocą C ;).



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 11 wrz 2013, o 12:10 

Pomógł: 0

Dzięki, bo wiesz, jak musisz na raz myśleć o dwóch projektach, ogarnąć do nich jeszcze PCB i obsługę programową wifi, to potem człowiek zapomina podstaw ;).

Chwilowo rzeźbię na uniwersalnej wyświetlacz, bo musi być na piątek, ale może jutro uda mi się przysiąść do tych struktur znowu.



Góra
  
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 0 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO