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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 25 maja 2025, o 23:21


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
    Autor Wiadomość
    PostNapisane: 22 gru 2017, o 17:49 
    Offline
    Użytkownik

    Dołączył(a): 18 cze 2015
    Posty: 374
    Pomógł: 0

    Witam.
    Chciałem ponownie podejść do struktur, ponieważ w niektórych sytuacjach jakoś sobie radzę, ale chciałem przećwiczyć sobie tablice tekstowe w powiązaniu
    ze strukturami i mi nie wychodzi. Czasem zmiana tematu na inny i powrót po jakimś czasie pomaga, ale coś nie czaję. Napisałem kawałek kodu do wyświetlania
    dowolnych tekstów. Oczywiście w strukturze będą inne zmienne różnych typów, ale chodzi mi o teksty. Programik wygląda następująco i się kompiluje, ale
    na lcd nic się nie wyświetla. To jest oczywiste, no bo niby co ma wyświetlać. Pytanie, czy dobrze zacząłem (kompilacja na tym etapie ok), czy tak się robi i jak
    dalej postępować. Wiem, że przygotowania do świąt itd..., ale może ktoś przegląda forum i zechce coś dołożyć od siebie.


    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    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: 22 gru 2017, o 19:02 
    Offline
    Użytkownik

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

    Jeśli dobrze widzę Twój text ma 20 znaków, więc musisz w tablicy zarezerwować dla niego 21 znaków, bo każdy ciąg znaków w języku C musi mieć na końcu znak terminujący (dołączany zwykle automatycznie przez kompilator np. w przypadku zdefiniowania tablicy znaków char text_1[] = "text1";).

    Robert_1967 napisał(a):
    To jest oczywiste, no bo niby co ma wyświetlać.


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


    No i na koniec, jeśli tablica znaków zawierająca tekst nie zmienia zawartości podczas działania programu, lepiej umieścić ją w pamięci FLASH, bo pamięci RAM w 8-bitowych AVRach nie ma zbyt wiele. Między innymi tutaj masz przykłady, jak to zrobić.


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 gru 2017, o 19:11 
    Offline
    Użytkownik

    Dołączył(a): 18 kwi 2013
    Posty: 181
    Lokalizacja: Kraków
    Pomógł: 30

    Nie zainicjalizowałeś tych tablic w strukturze, to niby co miało by się wyświetlać? Ale tak nawiasem, to nie rozumiem jaki jest cel upychania tablic do struktury. Moim zdaniem lepiej jest zadeklarować tablice z odpowiednimi napisami i to najlepiej w pamięci FLASH a następnie zrobić tablicę wskaźników do tych tablic z tekstami.


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 gru 2017, o 19:23 
    Offline
    Użytkownik

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

    janusz17 napisał(a):
    Ale tak nawiasem, to nie rozumiem jaki jest cel upychania tablic do struktury.

    Jeśli tablica znaków jest we FLASH, a struktura w RAM, to nawet nie da się tego inaczej zrobić jak poprzez wskaźnik.

    Jeśli jedno i drugie jest w tej samej pamięci, umieszczenie tablicy wewnątrz struktury oszczędza dwa bajty pamięci na wskaźnik (może być szczególnie istotne w przypadku użycia pamięci RAM). Trzeba tylko uważać, żeby takiej struktury nie przekazywać do funkcji poprzez wartość, bo to może spowodować problemy, głównie w mikrokontrolerach z małą pojemnością RAM.

    Druga sprawa - jeśli tablica znaków jest w trakcie programu modyfikowana, to nie może być w pamięci FLASH.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 gru 2017, o 19:49 
    Offline
    Użytkownik

    Dołączył(a): 18 cze 2015
    Posty: 374
    Pomógł: 0

    Wielkie dzięki kolegom za odpowiedź

    Tak myślałem, że te teksty wepchane do struktury, to jakaś herezja, dla tego nie mogłem za bardzo nic znaleźć na ten temat, a tak sobie "umyśliłem".
    Chciałem pokombinować ze strukturami na przykładzie właśnie tekstów. W takim razie przerobiłem kod. To tak tylko na teraz, ponieważ raczej dane będą
    zmieniane i flash się nie nada. Czytałem BB, ale jak bym mógł od kolegów zobaczyć, jak tutaj zastosować wskaźniki do wyświetlania tekstów na lcd np. według
    Was. Każdy ma własne spojrzenie na jakiś temat.


    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    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: 22 gru 2017, o 20:02 
    Offline
    Użytkownik

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

    Zajrzałeś chociaż tam, gdzie proponowałem wcześniej?
    Cytuj:
    Między innymi tutaj masz przykłady, jak to zrobić.

    Masz tam przykład, jak zdefiniować ciągi znaków we FLASH, a później tablicę wskaźników do tych ciągów (także we FLASH, żeby nie zajmować pamięci RAM).


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 gru 2017, o 20:44 
    Offline
    Użytkownik

    Dołączył(a): 18 cze 2015
    Posty: 374
    Pomógł: 0

    Dziękuję kolegom za pomoc.
    Kawał materiału do przestudiowania. Szczerze gratuluję posiadanej wiedzy.
    Zdrowych i Wesołych Świąt i Szczęśliwego Nowego Roku dla wszystkich pozytywnie zakręconych w C :D .


    Dodam jeszcze, że przejrzałem moje wcześniejsze tematy i znalazłem, że przecież dambo pokazał zastosowanie wskaźników w podobnym przypadku
    http://forum.atnel.pl/topic19715.html
    Ponad to znalazłem ciekawy opis Mirka http://mirekk36.blogspot.com/2013/11/tablica-wskaznikow-we-flash-progmem.html

    Pozdrawiam.



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

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