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



Teraz jest 30 mar 2026, o 00:35


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 24 ] 
Autor Wiadomość
PostNapisane: 1 lut 2014, o 16:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 kwi 2013
Posty: 65
Pomógł: 0

Hej, nie mam już sił do tego Eclips, tak w ogóle postanowiłem napisać nowy watek żeby nie zaśmiecać wątku MAGIC LED, zanim tu napisałem:
-zainstalowałem od nowa całego Windowsa 7 x64 (w sumie tego już wymagał)
-odinstalowałem WinAVR jak polecił Pan Mirek i zainstalowałem od nowa w folderze jaki WinAVR zaproponował czyli C/WinAVr-2011....
-oglądałem z 4 pradniki na temat instalacji Eclipse, i tez robiłem jak w nich pokazywano, lecz co inna metoda tym więcej warningów
-instalowałem odpowiedni plugin z bloga Pana Mirka (próbowałem tez inne)
-instalowałem AVRDude z MkAVRKalkulator
-na końcu skopiowałem Eclipsa(Galileo) z dołączonej do bluebooka płyty, tego drugiego oczywiście tez próbowałem... tam jest wtyczka zainstalowana już przez Pana Mirka, wygląda to lepiej jeżeli chodzi o warningi ale dalej coś nie tak, może teraz kwestia kodu:

ObrazekObrazekObrazek
Obrazek
Obrazek


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


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



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



Ostatnio edytowano 1 lut 2014, o 18:14 przez Dawid2379, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2014, o 17:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 paź 2011
Posty: 721
Lokalizacja: Zielona Góra
Pomógł: 75

Generalni błędy masz spowodowane tym że kompilator nie może znaleźć pliku ws2812.h

A nie powinno być takiej deklaracji przypadkiem ;) w 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.

_________________
pozdrawiam
phill2k



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2014, o 17:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 kwi 2013
Posty: 65
Pomógł: 0

A to moje kombinacje, już poprawiłem i dalej:

**** Build of configuration Release for project WS2812B ****

make all
Building target: WS2812B.elf
Invoking: AVR C Linker
avr-gcc -Wl,-Map,WS2812B.map -mmcu=atmega16 -o"WS2812B.elf" ./main.o ./WS2812/ws2812.o
./main.o: In function `main':
main.c:(.text+0x0): undefined reference to `ws2812_init'
main.c:(.text+0x10): undefined reference to `send_rgb'
main.c:(.text+0x20): undefined reference to `send_color'
make: *** [WS2812B.elf] Error 1


Edit: Ponadto nie ma możliwości wyboru programatora oraz uC, co widać na jednym ze zdjęć



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2014, o 17:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 paź 2011
Posty: 721
Lokalizacja: Zielona Góra
Pomógł: 75

No a ws2812.c chyba czegoś brakuje, gdzie masz funkcje ws2812_init() w pliku h ją deklarujesz a kod gdzie że o send_rgb i send_color nie wspomnę ;)

Bo programator sobie musisz dodać sam, korzystając z przycisku ADD - w którymś z poradników Mirka jest to jak byk pokazane.

_________________
pozdrawiam
phill2k



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2014, o 19:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 kwi 2013
Posty: 65
Pomógł: 0

No i zmieniłem w pliku ws2812.h jak si należy, patrząc na poradnik P. Mirka, teraz wszystko jest napisane prawidłowo

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



No ale konsola pokazuje to:


**** Build of configuration Release for project WS2812B ****

make all
Building file: ../main.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega16 -DF_CPU=1000000UL -MMD -MP -MF"main.d" -MT"main.d" -c -o"main.o" "../main.c"
In file included from ../main.c:11:
c:/winavr-20100110/lib/gcc/../../avr/include/avr/delay.h:36:2: warning: #warning "This file has been moved to <util/delay.h>."
../main.c: In function 'main':
../main.c:21: error: too many arguments to function 'send_color'
make: *** [main.o] Error 1



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2014, o 19:14 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

no i ślicznie to pokaż jeszcze pliczek ws2812.c

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2014, o 19:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

Jeśli chodzi o błąd z delay to zamień
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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


edit:

a drugi błąd to do funkcji
send_color
przekazujesz za dużo argumentów ona przyjmuje tylko jeden



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2014, o 19:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 kwi 2013
Posty: 65
Pomógł: 0

taki jest:

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



A problemy takie:

**** Build of configuration Release for project WS2812B ****

make all
Building target: WS2812B.elf
Invoking: AVR C Linker
avr-gcc -Wl,-Map,WS2812B.map -mmcu=atmega16 -o"WS2812B.elf" ./main.o ./WS2812/ws2812.o
./main.o: In function `main':
main.c:(.text+0x0): undefined reference to `ws2812_init'
main.c:(.text+0xa): undefined reference to `send_rgb'
main.c:(.text+0x16): undefined reference to `send_color'
make: *** [WS2812B.elf] Error 1

------------------------ [ Dodano po: 9 minutach ]

Teraz to już śmiać mi się chce, już za dużo godzin to męczę, co bym nie zmienił i tak źle, i tak nie chce się skompilować, coś pięknego takich problemów to z avr studio nie miałem, zmieniłem procek na docelowy atmege8 i jeszcze więcej tego wyskoczyło :

**** Clean-only build of configuration Release for project WS2812B ****

make clean
rm -rf ./main.o ./WS2812/ws2812.o ./main.d ./WS2812/ws2812.d WS2812B.eep WS2812B.hex WS2812B.lss sizedummy WS2812B.elf


**** Build of configuration Release for project WS2812B ****

make all
Building file: ../main.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega8 -DF_CPU=16000000UL -MMD -MP -MF"main.d" -MT"main.d" -c -o"main.o" "../main.c"
Finished building: ../main.c

Building file: ../WS2812/ws2812.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega8 -DF_CPU=16000000UL -MMD -MP -MF"WS2812/ws2812.d" -MT"WS2812/ws2812.d" -c -o"WS2812/ws2812.o" "../WS2812/ws2812.c"
Finished building: ../WS2812/ws2812.c

Building target: WS2812B.elf
Invoking: AVR C Linker
avr-gcc -Wl,-Map,WS2812B.map -mmcu=atmega8 -o"WS2812B.elf" ./main.o ./WS2812/ws2812.o
./main.o: In function `main':
main.c:(.text+0x0): undefined reference to `ws2812_init'
main.c:(.text+0x8): undefined reference to `send_rgb'
main.c:(.text+0x12): undefined reference to `send_color'
make: *** [WS2812B.elf] Error 1



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2014, o 19:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

czy wszystkie pliki masz zapisane w tym samym folderze projektu ?

Jak możesz to wrzuć zrzut okna eclipse z folderami projektu (to okienko po lewej)

------------------------ [ Dodano po: 4 minutach ]

zobaczyłem w pierwszym poście
Tak jak radzi kolega @phill2k includuj plik *.h z katalogu w którym się znajduje

#include "WS2812/ws2812.h"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2014, o 19:47 
Offline
Użytkownik

Dołączył(a): 20 wrz 2013
Posty: 647
Zbananowany użytkownik

Pomógł: 101

Z tego widać że pliki biblioteczne są w podkatalogu WS2812:
Dawid2379 napisał(a):
avr-gcc -Wl,-Map,WS2812B.map -mmcu=atmega8 -o"WS2812B.elf" ./main.o ./WS2812/ws2812.o


czyli to jest źle:

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


Powinno być

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: 1 lut 2014, o 19:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 kwi 2013
Posty: 65
Pomógł: 0

Ale to w ws2812.c mam tak zmienić?

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


bo w main.c to tak mam. A jak zmienię też w ws2812.c to jeszcze więcej problemów konsola pokazuje

Obrazek

------------------------ [ Dodano po: 6 minutach ]

Jeszcze raz dokładnie co mam konkretnych plikach na te chwile:

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




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




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



A konsola pokazuje:

make all
Building file: ../WS2812/ws2812.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega8 -DF_CPU=16000000UL -MMD -MP -MF"WS2812/ws2812.d" -MT"WS2812/ws2812.d" -c -o"WS2812/ws2812.o" "../WS2812/ws2812.c"
../WS2812/ws2812.c: In function 'send_zero':
../WS2812/ws2812.c:18: error: 'WS_PORT' undeclared (first use in this function)
../WS2812/ws2812.c:18: error: (Each undeclared identifier is reported only once
../WS2812/ws2812.c:18: error: for each function it appears in.)
../WS2812/ws2812.c: In function 'send_one':
../WS2812/ws2812.c:24: error: 'WS_PORT' undeclared (first use in this function)
make: *** [WS2812/ws2812.o] Error 1

Mówię coś tu jest nie tak konkretnie, bo co zmienię w kodzie to inne problemy jak cofnę zmiany to jeszcze inne problemy.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2014, o 20:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 paź 2011
Posty: 721
Lokalizacja: Zielona Góra
Pomógł: 75

Już prawie jest dobrze, tylko w pliku ws2812.h brak jest jeszcze konfiguracji pinów do których podłączasz magic diodę , czyli WS_PORT, WS_DIR, WS_PIN.

Edit:
Przepraszam nie zauważyłem, piny są skonfigurowane.

_________________
pozdrawiam
phill2k



Ostatnio edytowano 1 lut 2014, o 20:42 przez phill2k, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2014, o 20:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 kwi 2013
Posty: 65
Pomógł: 0

Zobacz jak ten Eclipse szaleje, teraz wgrałem wersję ganymade z mirkowego DVD mam identyczny kod jak wyżej podałem, a problemy są takie:

make all
Building target: WS2812B.elf
Invoking: AVR C Linker
avr-gcc -Wl,-Map,WS2812B.map -mmcu=atmega16 -o"WS2812B.elf" ./main.o ./WS2812/ws2812.o
./main.o: In function `main':
main.c:(.text+0x0): undefined reference to `ws2812_init'
main.c:(.text+0xa): undefined reference to `send_rgb'
main.c:(.text+0x16): undefined reference to `send_color'
make: *** [WS2812B.elf] Error 1

Nie mogę pojąć dlaczego co chwile dla niego problemem są raz porty, raz send_rgd potem zaś coś innego...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2014, o 20:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 paź 2011
Posty: 721
Lokalizacja: Zielona Góra
Pomógł: 75

A w jaki sposób dołączasz pliki biblioteczne do projektu, możesz opisać krok po kroku.

_________________
pozdrawiam
phill2k



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2014, o 20:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 kwi 2013
Posty: 65
Pomógł: 0

Zaznaczam główny folder(patrz ostatnie zdjęcie) WS2812B -> prawy przycisk->NEW-> SOURCE FILE->tworzę "main.c" (w sumie jak w poradniku)
Tworzenie folderu WS2812:
Zaznaczam główny folder WS2812B -> prawy przycisk->NEW->Folder->tworzę folder WS2812
Pliki ws2812.c oraz ws2812.h:
Zaznaczam nowo utworzony folder WS2812->prawy przycisk->NEW->SOURCE FILE->tworze nowy plik ws2812.c
Zaznaczam nowo utworzony folder WS2812->prawy przycisk->NEW->HEADER FILE->tworze nowy plik ws2812.h



Ostatnio edytowano 1 lut 2014, o 21:03 przez Dawid2379, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2014, o 20:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2014
Posty: 448
Lokalizacja: DKL
Pomógł: 53

Dawid2379 napisał(a):
Zaznaczam nowo utworzony folder WS2812->prawy przycisk->NEW->SOURCE FILE->tworze nowy plik ws2812.h
Tu powinieneś wybrać raczej NEW->Header File

_________________
Migracja z punktu B do punktu C
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2014, o 21:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 kwi 2013
Posty: 65
Pomógł: 0

Aj.. to było kopiowane tak tez zrobiłem, już poprawiam, w sumie to by mi nie weszło jakbym wybrał Source File a chciał dodać ".h"

Czyli tworzenie odpowiednich plików do projektu oraz folderów robię dobrze. Tak samo z kodem, przepisany z poradnika, nie wiem co tu jest nie tak, ciężka sprawa...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2014, o 21:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

W pliku ws2812.h masz
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 .c używasz np.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Więc nic dziwnego, że ci wywala błędy. To jest jeden z powodów.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2014, o 22:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 kwi 2013
Posty: 65
Pomógł: 0

Poprawiłem ten mankament konsola dalej to samo pokazuje



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2014, o 22:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 paź 2011
Posty: 721
Lokalizacja: Zielona Góra
Pomógł: 75

Spróbuj skompilować to, u mnie jest OK (Eclipse Indiego).

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


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


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

_________________
pozdrawiam
phill2k



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2014, o 22:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 kwi 2013
Posty: 65
Pomógł: 0

No u Ciebie działa a u mnie dalej to samo konsola pokazuje, gdzieś tu jest jakiś mały problem:

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2014, o 22:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 maja 2012
Posty: 233
Lokalizacja: Gdynia
Pomógł: 15

Zamień na cudzysłowy:

Kod:
#include "WS2812/ws2812.h"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2014, o 22:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

Zauważyłem że w edytorze masz gwiazdki przy nazwach plików (plik niezapisany)
czy je zapisujesz przed kompilacją ?
może to nie istotne ale jak plik jest nie zapisany to kompilacja jest niepoprawna

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

Czy używasz w eclipse opcji "autosave" ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2014, o 22:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 kwi 2013
Posty: 65
Pomógł: 0

Tak zapisuje , już sobie zaznaczyłem aby robiło to automatycznie, wyszła mi kompilacja teraz sprawdzam czy jakoś procek reaguje/czy coś wysyła.
Bardzo dziękuje za dotychczasową pomoc:) bardzo



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 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