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



Teraz jest 31 sty 2025, o 10:38


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 29 lip 2012, o 09:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 maja 2012
Posty: 758
Pomógł: 9

Hmm dziwne. Pokaz jeszcze plik ks108drv.c

_________________
ATB 1.03, Win XP SP3, ECLIPSE Indigo 3.7.2



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lip 2012, o 10:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 maja 2012
Posty: 758
Pomógł: 9

Wywal deklaracje (te jednolinijkowe) z pliku .c i powiedz, czy pomogło. W tym momencie dwa razy deklarujesz to samo - w pliku .h i w pliku .c i nic dziwnego, że kompilator protestuje. W .c zostaw tylko definicje (ciała) funkcji. Deklaracje tylko w .h

_________________
ATB 1.03, Win XP SP3, ECLIPSE Indigo 3.7.2



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lip 2012, o 10:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 maja 2012
Posty: 758
Pomógł: 9

Jeżeli wykorzystujesz te funkcje poza tymi dwoma plikami to w .c nie powinno być deklaracji, tylko w .h

------------------------ [ Dodano po: kilkunastu sekundach ]

Sprawdź, czy nie dałeś gdzieś złego nawiasu (np. klamrowego zamiast okrągłego) i czy wszystkie nazwy się zgadzają.

_________________
ATB 1.03, Win XP SP3, ECLIPSE Indigo 3.7.2



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lip 2012, o 11:57 
Offline
Moderator
Avatar użytkownika

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

robiw --> już w innym poście upierasz się trochę np nad czymś takim, że funkcje typu inline nie muszą być koniecznie w pliku *.h tylko w *.c .... pomimo że pokazuję jak warto do tego podchodzić. Teraz z kolei wymyślasz już na prawdę ciekawostki, ;) że niby deklaracje funkcji można sobie umieszczać i w pliku *.c i w *.h - to już jest totalne kuriozum to co tu piszesz. I wcale to nie oznacza że to akurat teraz musi być błędem - jednak robisz coś przez co potem co chwilę się gubisz - bo nie chcesz przyjąć pewnego standardu jaki jest w C tylko robisz coś po swojemu.

W tym przypadku jak pisze Ledes musi być tak bezwzględnie że deklaracje funkcji są albo w *.c albo w *.h a najlepiej jeśli są w *.h i to bez dwóch zdań.

a ten błąd który tu masz wynika też z tego co pisze wyżej Ledes bo i sam kompilator to podpowiada.... coś jest nie tak z syntaktyką - tyle że szukać czasem trzeba w inkludowanym pliku ...

------------------------ [ Dodano po: 3 minutach ]

robiw napisał(a):
zwłaszcza, jeśli funkcje korzystają nawzajem z siebie a nie są w odpowiedniej kolejności.


I to właśnie zapewniają deklaracje w plikach *.h - tyle że na razie pewnie to do ciebie jeszcze nie dotarło.

Ja gdy tworzę jakiś plik *.c (pisałem zresztą o tym w książce) np:

XXX_DRV.c

to od razu tworzę plik

XXX_DRV.h

i na początku pliku c umieszczam inkluda:

#include "XXX_DRV.h"

a potem jeśli tylko jakąś funkcję napiszę w *.c to jej deklarację od razu daję do *.h

zacznij tak działać zamiast pisać że sprawdzałeś ale to nic nie dało - czyli co ? powróciłeś do tego co miałeś ? Sorki ale tak to można sobie pomagać przez 5 miesięcy zanim dojdziemy do błędu ;) eliminuj je (te błędy) od razu krok po kroku.

_________________
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: 29 lip 2012, o 20:55 
Offline
Użytkownik

Dołączył(a): 01 cze 2012
Posty: 72
Lokalizacja: Gdańsk
Pomógł: 2

Ja nie będe polemizował co, gdzie i z czym pisać. Mam zbyt małą wiedze, aby w tym temacie coś dodać.
Co do błędów, to na moje oko, wygląda to tak, jakby kompilator typ "uint8_t" odbierał jako zmienną. Proponuje "wcisnąc na siłe" do projektu plik "stdint.h".
Tak jak wpomniałem wcześniej, nie jestem ekspertem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lip 2012, o 23:06 
Offline
Moderator
Avatar użytkownika

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

robiw napisał(a):
Mirku,
Nie ma się co tak unosić,


Robert, Panowie nie odbierajcie zawsze że ja zaraz się unoszę czy coś ... ja chyba tak zawsze żywiołowo reaguję - a że nie widzimy się face to face i nie widać mimiki mojej facjaty ;) to dlatego jakieś takie może reakcje....

Robert - jak tak coś przez skórę czuję że to błąd w którymś z inkludowanych plików - nastąpiło że tak powiem zakręcenie pępowiny wokół szyjki .... eeeeh tfuuu co ja tu jakieś ginekologiczne porównania ;)

Dawaj Pan projekt na maila - rzucę okiem bo sam miewam nieraz takiego babola - najczęściej wtedy gdy sam definiuję jakieś typy albo np gdy w definicji preprocesora strzelę gdzieś niepotrzebnie średnik na końcu linii - no i zaczyna się jatka po rozwinięciu tego przez preprocesor a w kodzie tak wprost oczami tego nie widać

_________________
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  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 

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