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



Teraz jest 4 sty 2025, o 03:48


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 21 ] 
Autor Wiadomość
PostNapisane: 8 wrz 2016, o 20:35 
Offline
Użytkownik

Dołączył(a): 15 gru 2013
Posty: 213
Pomógł: 5

Witam zwracam się z kolejnym problemem.Postanowiłem w końcu opanować sztukę podziału na pliki.
Przeczytałem w BB tematy z tym związane,obejrzałem kilkakroć filmik pana Mirka na ten temat no i "porozbierałem na kawałki moje akwarium"
poukładałem sobie wszystko na swoje miejsca i w zasadzie nie było to takie trudne.Jednak że kiedy ciała funkcji umieściłem w moim pliku c.
po skompilowaniu nie ma błędów natomiast w pasku informacyjnym pokazuje mi komunikat:

collect2.exe: error: ld returned 1 exit status
make: *** [akwarium_poprawiony.elf] Błąd 1

Jako że jestem noga z języka angielskim zwracam się z prośbą o pomoc do Was drodzy fachofcy.
Za wszelaką pomoc z góry dziękuję.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 wrz 2016, o 20:41 
Offline
Użytkownik

Dołączył(a): 29 mar 2012
Posty: 595
Lokalizacja: Jaworzno
Pomógł: 39

Napisz w jakim środowisku piszesz i kompilujesz. AVRStudio/AtmelStudio, czy Eclipse + ATMEL Toolchain?
Pokaż jakiś printscreen z kompilacji.

_________________
Pozdrawiam
PP



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 wrz 2016, o 20:43 
Offline
Moderator
Avatar użytkownika

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

No zrobiłeś jakiegoś paskudnego babola panie kochany - komunikat mówi tylko, że kompilator aż zwymiotował czyli tak wielki babol że aż on sam oszalał ;)

I myślisz że bez pokazania tego co zrobiłeś chociaż schematycznie to co? ktoś wyjmie szklaną kulę i wywróży co źle zrobiłeś ? ;)


Poza tym czy inne projekty ci się kompilują poprawnie ? czy może jakiś inny kompilator się odpala ?

na wszelki wypadek zajrzyj sobie też tutaj
http://mirekk36.blogspot.com/2016/09/za ... lem-z.html

_________________
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: 8 wrz 2016, o 21:01 
Offline
Użytkownik

Dołączył(a): 15 gru 2013
Posty: 213
Pomógł: 5

Panie Mirku działa wszystko do momentu jak wytnę z pliku .h definicje i wkleję je do pliku .c ale tego wiadomo nie tego źródłowego tylko "bliźniak" .h tak jak to powinno być do tego c kopiuje też z pliku c źródłowego wszystkie includy wraz z moim .h.

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: 8 wrz 2016, o 21:35 
Offline
Nowy

Dołączył(a): 17 mar 2016
Posty: 24
Pomógł: 0

Jeśli Twoje pliki .c i .h znajdują się w osobnym folderze, a inkludujesz biblioteki z innych folderów to musisz zastosować coś takiego "../LCD/lcd44780.h"
Najlepiej wrzuć też zawartość .h :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 wrz 2016, o 21:47 
Offline
Użytkownik

Dołączył(a): 15 gru 2013
Posty: 213
Pomógł: 5

Proszę o to jeszcze kod z pliku .h

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: 8 wrz 2016, o 22:07 
Offline
Nowy

Dołączył(a): 17 mar 2016
Posty: 24
Pomógł: 0

Ja bym spróbował te zmienne "const" poprzenosić do docelowych plików .c



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 wrz 2016, o 22:18 
Offline
Moderator
Avatar użytkownika

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

ELEKTRON105 napisał(a):
Proszę o to jeszcze kod z pliku .h

No tu sam sobie robisz masakrę amerykańską piłą tarczową na własne życzenie. Toż w tym pliku *.h masz KUPĘ DEFINICJI !!! czy ja o tym mówiłem ? ;) W pliku *.h mają być definicje zmiennych ?

_________________
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: 8 wrz 2016, o 22:23 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

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


Popraw to, bo kompilator może wogóle nie widzieć includa.

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 wrz 2016, o 05:25 
Offline
Użytkownik

Dołączył(a): 15 gru 2013
Posty: 213
Pomógł: 5

zostawiłem w pliku .c tylko:

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


a w pliku .h to:

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


Błąd dalej tkwi.
Nawet jak w c. nic nie ma tylko includy to też same błędy.
Nie wiem o co tu chodzi.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 wrz 2016, o 06:36 
Offline
Moderator
Avatar użytkownika

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

ELEKTRON105 napisał(a):
zostawiłem w pliku .c tylko:

No i gdzie teraz masz te definicje które wywaliłeś z *.h ? ... w ogóle ich nie ma w kodzie ? - no zastanów się i zajrzyj do książki do rozdziału gdzie w tabelkach pokazuję jak dzieli się pliki w projekcie bo jest tam przykład prosty z kilkoma plikami

Poza tym robisz PASKUDNE błędy a przede wszystkim to kod jest kompletnie niezgodny z dobrym stylem programowania więc jeśli nie poprawisz to sorki ale ja wyłączam się z dalszej analizy bo czytać coś takiego to katorga. Podpowiem co robisz źle w tym zakresie

1. Jak piszesz inkludy to zrób że jakiś odstęp np jednej linii pomiędzy inkludami systemowymi a własnymi np

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


2. WSZYSTKIE nazwy makr - definicji preprocesora pisz DUŻYMI LITERAMI !!! bo później mieszają się ich nazwy jak się czyta kod z nazwami zmiennych i jest MEGA - MEGA masakra ... podkreślam MEGA MASAKRA

3. NIGDY nie rób tak żeby nazwy makr #define były określone tylko jedną czy dwoma literkami bo to też tylko przeszkadza

4. tylko jednego babola na szybko wypatrzyłem ale jak mówię - wyłączam się przy tak pisanym kodzie i pewnie innym też przez to nie chce się męczyć i tego analizować .... ale masz w kodzie:

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


i myślałem że u cebie czas_rgb to stała preprocesora bo wszystko piszesz małymi literami ale nie ! .... wyżej widziałem gdzieś, mignęło mi, że czas_rgb to zmienna ! ... powiedz mi ile można powtarzać - że do tego typu funkcji nie przekazuje się zmiennych .... tylko stałe dosłowne czyli albo np:

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


albo np:

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: 9 wrz 2016, o 06:51 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

Ano niema definicji, ale i tak kompilator puści pawia zaraz na pierwszej linii kodu, ciekawe czy zwrócisz uwagę w czym problem ;)
W każdym razie ja bym zaczął od tego poprawę, a dopiero potem szukał innych kwiatków.

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 wrz 2016, o 07:05 
Offline
Użytkownik

Dołączył(a): 15 gru 2013
Posty: 213
Pomógł: 5

No to dzięki za pomoc czas _rgb to nie zmienna tylko stała const problemu z tym niby kodem nie ma jak wszystko było w c pliku głównym i sterownik tak czy inaczej działa tylko problem się zacząć kiedy prubowalem to po przenosić ok widzę że nie mam tu co szukać bo moja wiedza jest za mała aby uczestniczyć w dyskusjach na takie tematy dzięki wszystkim za pomoc i pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 wrz 2016, o 07:08 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

i kolejny się obraził, echhh :(
ELEKTRON105, poprawiłeś linijki o których pisałem wyżej?
Pewnie nie, a to od nich zaczyna się problem.


Autor postu otrzymał pochwałę

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 wrz 2016, o 07:29 
Offline
Moderator
Avatar użytkownika

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

ELEKTRON105 napisał(a):
problemu z tym niby kodem nie ma jak wszystko było w c pliku głównym i sterownik tak czy inaczej działa tylko problem się zacząć kiedy prubowalem to po przenosić

A ja ci mówię że są problemy i pokazałem jakie - jeśli jednak wolisz strzelić focha zamiast się nauczyć no to trudno ... twoja strata.

_________________
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: 9 wrz 2016, o 07:34 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

Mirku, główny problem ma w pierwszych trzech includach - brak spacji a co za tym idzie one nie są wogóle wczytywane.
Błędy semantyczne to druga sprawa, ale to już głównie estetyka kodu, którego za cholerę nie zrozumie za pół roku, albo jeszcze wcześniej.

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 wrz 2016, o 08:32 
Offline
Użytkownik

Dołączył(a): 15 gru 2013
Posty: 213
Pomógł: 5

Dzięki koledzy za zainteresowanie moim problemom.
Ja nie to że się obraziłem tylko po prostu głupio mi że aż tak źle piszę P.Mirek mi zwrócił uwagę i bardzo dobrze bo do tych czas nie zwarzałem na to uwagi jak pisze po prostu byle działało a to błąd poważny przyznaje.
Mnie teraz nie ma przed kompem ale jak tylko usiądę przed komputerem to pierwsze co zrobię to właśnie dostosuje się do waszych wskazówek.Ja z forum staram się jak najmniej korzystać jedynie jak już parę dni nie mogę z czegoś wybrnąć.Wiadomo nie poto p.Mirek napisał te książki aby korzystać ciągle z forum i nie poto te książki kupuję aby do nich nie zaglądać ale nie raz w teorii jest wszystko jasne a w praktyce wychodzi na to że jednak nie.Posilkuje się też filmikami ostatnio to chyba przesadziłem bo żona kupiła drugi tv a Mirek to mi się już przyśnił i sory że dalej jakieś męczące problemy Wam pokazuje.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 wrz 2016, o 09:04 
Offline
Moderator
Avatar użytkownika

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

ELEKTRON105 napisał(a):
Wiadomo nie poto p.Mirek napisał te książki aby korzystać ciągle z forum

Ale to nie ma nic wspólnego, wręcz odwrotnie - PO TO ZAŁOŻYŁEM forum, żeby z niego korzystać i pytać i pytać ... szczególnie gdy w książce coś jest niejasne, gdy coś nie wychodzi gdy trzeba coś doprecyzować ... co za problem ?

ELEKTRON105 napisał(a):
Ja z forum staram się jak najmniej korzystać

I to jest błąd ;)

ELEKTRON105 napisał(a):
Ja nie to że się obraziłem tylko po prostu głupio mi że aż tak źle piszę

No ale panie kochany - toż ja nie zwracam tej uwagi w jakiejś złej wierze, albo po to żeby dogryźć itp itd - tylko mówię o tym, jak rozwiązać problem. Ja wiem, że wiele osób się oburza gdy zwróci się im uwagę na DOBRY STYL programowania ... i fajnie że ty jednak się nie obraziłeś.

Tylko też tych wiele osób nie rozumie jakie to ma kapitalne znaczenie

1. dla mniejszej ilości popełnianych własnych błędów
2. dla lepszej czytelności kodu
3. dla szybszego wyszukiwania błędów w kodzie - co jest jedną z najczęstszych czynności podczas programowania

Dlatego nie pisz, że pomimo to że masz definicje małymi literami to ci wszystko działa i nie w tym problem, bo problem właśnie TEŻ w tym jest ... i teraz sam widzisz, że nie tylko tobie go trudniej wyłapać ale i tym do których zwracasz się z prośbą o pomoc .... TO właśnie trzeba zrozumieć.

I teraz sam zobacz bo wg mnie właśnie przez to już sam się gubisz ... zresztą sam zobacz to linia z twojego kodu

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


a ty pisałeś mi wyżej:

ELEKTRON105 napisał(a):
czas _rgb to nie zmienna tylko stała const

to nie jest STAŁA dosłowna i tego zdaje się nie rozumiesz.

Stała dosłowna to np: 2 albo 1023 albo 868

Stała dosłowna - literał to np: "ala i as" albo "jakis tekst"

natomiast

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


to jest panie ZMIENNA - zapamiętaj to, a fakt że do tej zmiennej dodasz specyfikator const

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


nie ma NIC WSPÓLNEGO ze "stałą dosłowną". Specyfikator const będzie tylko powodował, że kompilator będzie pilnował aby w trakcie działania programu nie pozwolić na modyfikacje tej zmiennej


Autor postu otrzymał pochwałę

_________________
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: 9 wrz 2016, o 09:58 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

Cytuj:
szczególnie gdy w książce coś jest niejasne, gdy coś nie wychodzi gdy trzeba coś doprecyzować ... co za problem ?

No wiesz... niektórzy się wstydzą zapytać, a co gorsza wolą wymyślać koło na nowo, na ogół błędne, do tego stopnia że sam zaczynasz się gubić w tym co wydumałeś :P

A co do wykrywania dziwnych błędów, to sam zawsze zaczynam od sprawdzenia wszelkich "wstawek", średników na końcu instrukcji itd, albo komentuje bloki po kolei, aż problem zniknie - tak jest łatwiej znaleźć babola, nawet jak kompilator zgłasza błąd w konkretnej linii, to często błąd jest kilka instrukcji wcześniej.
Unikaj jak ognia pisania kodu typu spaghetti, komentuj niejasne fragmenty i właśnie staraj się dzielić kod, bo przy większych projektach pogubisz się. Musisz sobie wypracować własną metodę pisania, wcięć itd. Każdy kiedyś zaczynał, ale tylko od Ciebie zależy czy się czegoś nauczysz czy nie.

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 wrz 2016, o 10:01 
Offline
Moderator
Avatar użytkownika

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

Harry napisał(a):
No wiesz... niektórzy się wstydzą zapytać, a co gorsza wolą wymyślać koło na nowo, na ogół błędne, do tego stopnia że sam zaczynasz się gubić w tym co wydumałeś

Nic dodać nic ująć - podpisuję się pod tym przekonaniem rękoma i nogami ;) dlatego zapraszam do pytań na forum a wstyd można zostawić gdzieś w kącie ... Tu zaś korzystać garściami ;) Jak widać wszyscy chętnie podpowiadają.

Harry napisał(a):
A co do wykrywania dziwnych błędów, to sam zawsze zaczynam od sprawdzenia wszelkich "wstawek", średników na końcu instrukcji itd, albo komentuje bloki po kolei, aż problem zniknie - tak jest łatwiej znaleźć babola, nawet jak kompilator zgłasza błąd w konkretnej linii, to często błąd jest kilka instrukcji wcześniej.
Unikaj jak ognia pisania kodu typu spaghetti, komentuj niejasne fragmenty i właśnie staraj się dzielić kod, bo przy większych projektach pogubisz się. Musisz sobie wypracować własną metodę pisania, wcięć itd. Każdy kiedyś zaczynał, ale tylko od Ciebie zależy czy się czegoś nauczysz czy nie.

Święta racja, amen :lol:

_________________
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: 9 wrz 2016, o 18:01 
Offline
Użytkownik

Dołączył(a): 15 gru 2013
Posty: 213
Pomógł: 5

Ok działa :D muszę skruszony przyznać że macie rację z tym że kod powinien być czytelny.Mirek zwraca ciągle na to uwagę przy każdej okazji,no a ja dalej swoje no aż teraz w końcu to się zemściło i dobrze bo parę jako takich dziwnych projektów zrobiłem i wszystkie w tym moim stylu pisania :o .
Przede wszystkim tak jak mnie to Mirek teraz uświadomił błąd był faktycznie karygodny ze złą interpretacją stałej dosłownej.Tak na prawdę myślałem że specyfikator const to już jest stała dosłowna i kropka :( .
HARRY postaram się dostosować do twoich wskazówek szczególnie do tego "Unikaj jak ognia pisania kodu typu spaghetti".Tylko problem że nie potrafię zacząć pisać inaczej jak liniowo tak naprawdę.
Będę nie jednokrotnie potrzebował jeszcze od was pomocy więc proszę o wyrozumiałość i zwracanie mi właśnie takich uwag jak tych wyżej.
Nie oczekuję gotowych podpowiedzi broń Boże ja tylko właśnie nie raz nie wiem że popełniam bardzo poważny błąd.
Jeszcze raz dziękuję może w końcu to jakoś ogarnę i sam będę mógł w końcu komuś coś pomóc. :)



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

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