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



Teraz jest 18 lut 2026, o 07:52


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 28 cze 2017, o 14:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 cze 2016
Posty: 66
Lokalizacja: Katowice
Pomógł: 1

Cześć wszystkim, aktualnie próbuję sobie wydziergać coś dla siebie, żeby poćwiczyć C i mam mały kłopot przy tworzeniu biblioteki.
Zamierzam korzystać z 2x LM35 do pomiaru temperatury i chcę podawać najzwyczajniej średnią z obu czujników i wrzucać na LCD.
Pomyślałem, że całość ładnie wrzucę do osobnych plików .c/.h, żeby było czysto i przejrzyście ale coś mi jednak nie wychodzi :)
KOD:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Żeby nie używać zmiennej float, chciałem w taki sposób poradzić sobie z wyświetlaniem wartości zmiennoprzecinkowych.
Problem pojawia się przy zmiennych Temp i dotTemp, szczerze jest to moje drugie podejście do tworzenia osobnego pliku w ramach jednego programu i nie mam zielonego pojęcia co może być nie tak. Oczywiście całość nie jest skończona, nie zabrałem się nawet za ustawianie ADC itp. chciałem tylko wstępnie wprowadzić do pliku kilka zmiennych i przygotować "bazę".
Domyślam się, że rozwiązanie może być trywialne chociaż póki co nic mi nie przychodzi do głowy.

Błąd jaki pokazuje Eclipse:

Multiple markers at this line
- initializer element is not constant
- 'dotTemp' initialized and declared 'extern' [enabled by
default]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2017, o 14:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

W pliku lm35_lm35.h powinny się znajdować DEKLARACJE, a nie DEFINICJE zmiennych.

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


Tymczasem w pliku lm35_lm35.c:
Składnia: [ Pobierz ] [ Ukryj ]
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: 28 cze 2017, o 15:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 cze 2016
Posty: 66
Lokalizacja: Katowice
Pomógł: 1

W dalszym ciągu zastanawia mnie jedna rzecz, zrobiłem jak mówisz - Faktycznie moja pomyłka, ale zastanawia mnie dlaczego muszę w obu plikach wpisywać przed zmienną np. uint16_t / uint8_t. Cały czas wydawało mi się, że skoro wprowadzę zmienną w h. to w c. wystarczy ją zdefiniować...
Tak czy inaczej nie działa tym razem w pliku .c
Trochę się już w tym pogubiłem :/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2017, o 16:05 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27449
Lokalizacja: Szczecin
Pomógł: 1045

iTTiny napisał(a):
ale zastanawia mnie dlaczego muszę w obu plikach wpisywać przed zmienną np. uint16_t / uint8_t. Cały czas wydawało mi się, że skoro wprowadzę zmienną w h. to w c. wystarczy ją zdefiniować...


Bo ty kompletnie nie rozumiesz nadal co to jest DEKLARACJA zmiennej i czym się ona różni od DEFINICJI zmiennej ...

masz Bluebooka? - zajrzyj proszę bo tam po wielokroć wyjaśniam czym to się różni i zwracam uwagę, że jeśli ktoś tego nie zrozumie - to będzie to powodem ciągłych pomyłek w swoich kodać

skrótowo przypominając

w pliku *.c robisz DEFINICJĘ zmiennej

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


zaś w pliku *.h robisz jej DEKLARACJĘ jeśli potrzebujesz aby była widoczna w innych plikach projektu, gdy inkludujesz w nich ten plik *.h
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2017, o 17:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 cze 2016
Posty: 66
Lokalizacja: Katowice
Pomógł: 1

Ehh....
Szkoda słów na te moje błędy :) No ale cóż, powolutku i do przodu - działa.
Dzięki !



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