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



Teraz jest 7 cze 2026, o 06:24


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 19 gru 2015, o 09:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 sie 2013
Posty: 50
Lokalizacja: Żary/Wrocław
Pomógł: 1

Cześć wszystkim! Mam niezwykły problem z Eclipsem. Zacząłem sobie tworzyć uniwersalną bibliotekę do SPI i już na wstępie mnie to pokonało. Problem ma miejsce w pliku h:
Kod:
[syntax=c]/*
 * SPI.h
 *
 *  Created on: 19-12-2015
 *      Author: Mefiu
 */
//#include <avr/io.h>
#ifndef SPI_H_
#define SPI_H_

#define FOSC 64 //dzielnik SPI

#if defined (__AVR_ATmega644P__)
#define MOSI (1<<PB5)
#define SCK (1<<PB7)
#define MISO (1<<PB6)
//CS i reszta definiowane w bibliotece ukladu z ktorym sie komunikuje
#endif

void InitSPI();
void SendSPI(uint8_t bajt);
uint8_t ReceiveSPI();


#endif /* SPI_H_ */[/syntax]


kompilator generuje mi błędy
Kod:
expected ')' before 'bajt'   SPI.h   /RFID_test/SPI   line 21   C/C++ Problem
expected '=', ',', ';', 'asm' or '__attribute__' before 'ReceiveSPI'   SPI.h   /RFID_test/SPI   line 22   C/C++ Problem
make: *** [RFID_MFRC522/MFRC522.o] Error 1   RFID_test          C/C++ Problem


Dotarłem już to tego, że nie zna typu uint8_t. Ok, podłączenie w nagłówku <avr/io.h> pomaga, ale w bibliotekach Mirka np do I2C też są typy uint8_t w deklaracjach, nie ma podłączonego io.h a mimo to nie generuja sie błędy. Co zrobiłem nie tak...?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 gru 2015, o 10:25 
Offline
Moderator
Avatar użytkownika

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

lamik napisał(a):
Mam niezwykły problem z Eclipsem

Pierwsze co ci przeszkadza w znalezieniu błędu to właśnie to co piszesz - że to niezwykły problem z Eclipsem. Panie kochany - kiedy w końcu zrozumiesz, że Eclipse pełni tu rolę tylko notatnika - edytora kodu i nie ma nic wspólnego z błędami o których piszesz. Gdybyś to zrozumiał to już byś pewnie szukał rozwiązania gdzieś indziej .... Te błędy generuje kompilator (i sam nawet to piszesz wyżej) AVR GCC a to DUŻA różnica - a nie żaden Eclipse. Eclips tylko ładnie ci je przekazuje ...

Więc jeśli już wiesz że to błędy kompilatora, to chyba rozumiesz - że to oznacza, że coś musiałeś namieszać w swoim projekcie - prawda ?

lamik napisał(a):
Dotarłem już to tego, że nie zna typu uint8_t. Ok, podłączenie w nagłówku <avr/io.h> pomaga, ale w bibliotekach Mirka np do I2C też są typy uint8_t w deklaracjach, nie ma podłączonego io.h a mimo to nie generuja sie błędy. Co zrobiłem nie tak...?

Zrobiłeś gdzieś błąd w projekcie i to wcale nie w tym miejscu do którego dotarłeś tylko wcześniej nawet .... w związku z tym nie ma nawet jak pomóc

_________________
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: 19 gru 2015, o 10:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 sie 2013
Posty: 50
Lokalizacja: Żary/Wrocław
Pomógł: 1

Mhmm wiem, że kompilator. Nie pisałbym, gdyby w każdym pliku nagłówkowym widział błąd, ale tylko w tym SPI kompilator ma problem. Ten sam projekt inne nagłówki z typami uint8_t przyjmuje. Spróbuję jeszcze powalczyć, może stworze nowe pliki a jak nie no to już zostawię tego includa.

EDIT: Ok, przyjmuje już lecz nic nie zmieniałem w ustawieniach projektu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 gru 2015, o 16:15 
Offline
Użytkownik

Dołączył(a): 27 lis 2015
Posty: 36
Zbananowany użytkownik

Pomógł: 5

uint8_t i inne typy o określonej długości lub sposobie pracy (skracam bo nie będę pisał elaboratu co tam jest), masz w <stdint.h>. W <inttypes.h> masz z kolei makra dla printf() które pomagają te typy wyświetlać. Ty potrzebujesz raczej <stdint.h>. Choć po samym pytaniu mogę wnioskować że masz o wiele "grubiej namieszane" :-/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 gru 2015, o 00:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 paź 2014
Posty: 237
Lokalizacja: Rzeszów
Pomógł: 11

Trochę mało danych... ale mi przestawał "widzieć" uint8_t w hederach, kiedy je dotłaczałem przed io.h

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


Jak robiłem tak:

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

wszystko hulało aż miło. Kolejność jest ważna.

Nie wiem dlaczego tak się dzieje, ale na moim marsie po zmianie nazwy hedera eclips zmienia wszystkie inkludy w kodzie, ALE po powrocie do starej nazwy przesuwa mi ją przed io.h nie w pliku main ale w pliku c powiązanym z h. Stąd Twój problem wydał mi się znajomy :D

_________________
Mr. Nobody



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 gru 2015, o 00:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

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

wszystko hulało aż miło. Kolejność jest ważna.

Przy dołączaniu bardzo ważna jest kolejność. Z tego co pamiętam to w BB jest to wyraźnie opisane - najpierw include systemowych a dopiero później własne.
Cytuj:
ALE po powrocie do starej nazwy przesuwa mi ją przed io.h

Coś mi tutaj nie chce się wierzyć, ze edytor sam zmienia Ci kod ...

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 gru 2015, o 12:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 paź 2014
Posty: 237
Lokalizacja: Rzeszów
Pomógł: 11

Ja też nie wierzyłem dopóki nie zobaczyłem. Przed napisaniem wczoraj postu sprawdziłem to, aby nie okazało się, że piszę bzdury.
Dziś wieczorem zrobię jeszcze jedną próbę.....
W BB jest bardzo dużo cennych informacji, niestety mój mózg (nie wiem jak Wasz) po pierwszym czytaniu nie był w stanie zapamiętać wszystkiego..... ech nie mam już 18 lat ;( Dziękuję za wskazówkę, to tam wrócę.
BB jest taką książką, do której się wraca.

_________________
Mr. Nobody



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 gru 2015, o 19:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 paź 2014
Posty: 237
Lokalizacja: Rzeszów
Pomógł: 11

Ha - jednak jest jak pisałem - w załączniki sekcje z hederami plików.
Oryginalnie - wszystko się kompiluje:

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


Zmieniamy nazwę z 1_wir_usart.h -> 1_wire_usart_old.h
Wszystko się jeszcze kompiluje. Eclips sam podmienia wpisy w plikach źródłowych.

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


Po czym wracamy do starej nazwy - zonk - kompilacja nie powiodła się. W pliku 1_wire_usart.c została zamieniona kolejność hederów.....


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


Ciekawe. Być może dlatego, iż plik zaczyna się od cyfry????? U mnie tak się dzieje - nie wiem jak u Was.
Można sobie włosy z głowy rwać (w moim przypadku pęsetą, ale nie jest to meritum sprawy) :lol:

_________________
Mr. Nobody



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


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