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 18 kwi 2025, o 05:37


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
    Autor Wiadomość
    PostNapisane: 1 mar 2017, o 11:25 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 20 paź 2013
    Posty: 143
    Lokalizacja: Zamość
    Pomógł: 0

    Witam.

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

    która jako argumenty przyjmie dwie tablice pierwsza to tablica t1 z wartościami, które chciałbym wpisać do EEPROMU, druga to t2 z wartosciami odczytanymi z EEPROMU
    Program składa się z 3 plików: main.c, funklcje.h oraz funkcje.c)

    Niżej plik funkcje.c:
    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.


    to jest plik funkcje.h:

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


    a to main.c:

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


    przy kompilacji mam taki błąd:
    "Section attribute can not be specified for local variables".
    Ktoś ma pomysł jak się z tym uporać?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 mar 2017, o 11:42 
    Offline
    Nowy

    Dołączył(a): 12 lut 2014
    Posty: 10
    Pomógł: 1

    Nie jestem pewny ale wydaje mi sie że do funkcji nie można przekazywać tablic. Można przekazać wskaźnik do tablicy i na tym operować.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 mar 2017, o 11:44 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 15 lut 2017
    Posty: 368
    Lokalizacja: Gliwice
    Pomógł: 34

    Prawdopodobnie chodzi tu o rozwinięcie makra EEMEM:
    #define EEMEM __attribute__((section(".eeprom")))

    Tak jak podaje Ci kompilator takiej deklaracji nie można robić jako zmienne lokalnej.

    Przesuń definicje typu strukturalnego np do pliku nagłówkowego, a zmienną adres_eeprom zadeklaruj jako globalną.
    Ja bym zrobił to tak:
    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.


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 mar 2017, o 12:11 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 20 paź 2013
    Posty: 143
    Lokalizacja: Zamość
    Pomógł: 0

    Super. Dziękuję. Działa :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 mar 2017, o 12:50 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 15 lut 2017
    Posty: 368
    Lokalizacja: Gliwice
    Pomógł: 34

    xisco24 napisał(a):
    Nie jestem pewny ale wydaje mi sie że do funkcji nie można przekazywać tablic. Można przekazać wskaźnik do tablicy i na tym operować.

    Zawsze można jeszcze przekazać rozmiar tablicy i sumarycznie przekazana będzie tablica :)
    W niniejszym przykładzie jednak nie następuje przekazywanie tablicy tylko wskaźnika.
    Deklaracja "char t1[]" to nic innego jak przekazanie wskaźnika i jest równoważne z "char * t1" oraz "char t1[10]"
    Potwierdzenie tej tezy można znaleźć np tutaj:
    http://cpp0x.pl/kursy/Kurs-C++/Poziom-2 ... unkcji/324



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