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



Teraz jest 15 sty 2025, o 22:52


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 35 ]  Przejdź na stronę Poprzednia strona  1, 2
Autor Wiadomość
PostNapisane: 11 sty 2017, o 14:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1165
Lokalizacja: Kraków
Pomógł: 93

barus napisał(a):
Dlaczego w kodzie, który był wielokrotnie sprawdzony przez użytkowników tej strony, z której go ściągnąłem musiałem dokonać zmiany w funkcji z „void” na „int”, aby u mnie ten program zaczął prawidłowo działać?
Obstawiam, że na końcu funkcji main() masz zapis
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
. Jeżeli funkcja zwraca wartość typu void, nie możesz użyć return (to, co jest po return to wartość zwracana przez funkcję. Jeżeli funkcja zwraca wartość void (typ pusty), to znaczy, że może zwrócić tylko nic).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 sty 2017, o 23:11 
Offline
Użytkownik

Dołączył(a): 13 paź 2016
Posty: 25
Pomógł: 0

Dzięki za odpowiedź.
Nadal tego nie rozumiem. Funkcja void main (void) w efekcie swojego działania nie zwraca żadnego rezultatu (tytp pusty).
Funkcja int main (void) powinna zwrócić rezultat.
Marhef zaglądnij do kodu programu, który zapodałem na początku tego wątku. To jest oryginalny kod, który ściągnąłem z tej strony: xxxxx proszę nie linkować tu na forum tej strony ok? to moja gorąca prośba - mirekk36
Tam ten kod działa w pierwotnej wersji, bo wielu kolegów go sprawdzało, a dlaczego u mnie, aby działał poprawnie, musiałem dokonoć tej korekty z void na int?

Mam drugi dużo większy problem, któremu poświęciłem dużo czasu i za chiny nie mogę sobie z nim poradzić. Wyświetlacz powinien wyświetlać wartość napięcia w postaci liczbowej (float) a wyświetla taki znak ? (U=?)
Tu jest rozwinięcie kodu pierwszego do wyświetlana poziomu napięcia w postaci liczby zmiennoprzecinkowej na LCD.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Dodanie do tego projektu bibliotek według instrukcji Mirka - libm.a oraz libprintf_fla.a

Obrazek

Obrazek

Przy Building-u program nie zaznacza w samym kodzie żadnego błędu, ale pod spodem w podsumowaniu pojawia się taki oto błąd; "avr-gcc: error: nierozpoznana opcja wiersza poleceń "-Wi, -u, vfprintf '"

Obrazek

Kod bez problemu się kompiluje, ale na wyświetlaczu LCD wyświetla się U=?.

Teraz mam pytanie czy w kodzie tez muszę dodać jakąś plik nagłówkowy/bibliotekę?
Co może być powodem, że LCD nie wyświetla wyniku w postaci liczbowej?



Ostatnio edytowano 14 sty 2017, o 01:43 przez barus, łącznie edytowano 6 razy

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

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

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

http://www.nongnu.org/avr-libc/user-manual/group__avr__stdio.html



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 sty 2017, o 23:39 
Offline
Użytkownik

Dołączył(a): 13 paź 2016
Posty: 25
Pomógł: 0

Dzięki za błyskawiczną odpowiedź.
Po dodaniu tej biblioteki nic się nie zmieniło, dalej ten sam błąd wyświetla w podsumowaniu po zbudowaniu projektu.
Z tego miejsca skąd ściągnąłem ten kod w komentarzach goście którzy pracowali w środowisku eclipse też pisali, że mieli takie same problemy jak ja.
Ciekawe jest to, że ci pracujący w innych środowiskach, takich jak AVR Studio, Atmel Studio tych problemów nie mieli oczywiście po odpowiedniej konfiguracji Toolchaina w opcjach Linkera.
Dodatkowo w projekcie wykonałem opcję Clean co sugerował Mirek, ale po tytm zabiegu kod dało się zbudować (młotkiem) ale już nie można było wgrać programu (AVR) bo wyskoczył taki oto błąd jak poniżej:
Obrazek

Po przywróceniu eclipse do pierwotnego stanu (usunięcie bibliotek libm.a oraz libprintf_fla.a) kod da się kompilować i wgrać do wyświetlacza, ale skutek jest taki sam jak wcześniej opisywałem, wyświetlacz wyświetla U=? [V]
Nie mam pojęcia dlaczego tak się dzieje :(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sty 2017, o 00:29 
Offline
Moderator
Avatar użytkownika

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

barus napisał(a):
Funkcja int main (void) powinna zwrócić rezultat.
Marhef zaglądnij do kodu programu, który zapodałem na początku tego wątku. To jest oryginalny kod, który ściągnąłem z tej strony: xxxxx
Tam ten kod działa w pierwotnej wersji, bo wielu kolegów go sprawdzało, a dlaczego u mnie, aby działał poprawnie, musiałem dokonoć tej korekty z void na int?


Nie masz Bluebooka, uczysz się z internetu to nie dziw się, że wielu rzeczy nie wiesz i nie rozumiesz ... Ja tu nie będę tego od nowa opisywał ... i powiem tylko, że to że program ci działa z

void main(void)

wcale nie oznacza, że jest dobrze napisany ... Sam się zdecyduj czy uczysz się programować języka C z książek gdzie jest mowa nie tylko o zasadach C ale i stylu dobrego programowania czy z jakichś kocich stron ... tak tak - link do tej strony co podałeś zastąpiłem znakami xxxx i proszę cię tej strony na przyszłość nigdy nie linkuj na tym forum ok ? To moja gorąca prośba.

Ale wracając do książek, ja nie mówię, że o tym dlaczego powinno się pisać int main(void) jest mowa tylko w mojej książce, kup inne książki ... nawet tą do czystego ANSI C, wtedy zrozumiesz .... i nie będziesz pisał i powielał takich bzdur z tej strony którą podlinkowałeś ok ?

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

barus napisał(a):
Tam ten kod działa w pierwotnej wersji, bo wielu kolegów go sprawdzało, a dlaczego u mnie, aby działał poprawnie, musiałem dokonoć tej korekty z void na int?

Jeśli chcesz pytać i pisać na tym forum to proszę wklejaj swoje kody zgodnie z zasadą dobrego stylu programowania , nawet jeśli nie rozumiesz dlaczego bo nie chcesz np tego dociec ... a więc int main(void). Dlaczego? Dlatego że my tu na forum przede wszystkim dbamy i uczymy się dobrego stylu programowania, na którego składa się wiele rzeczy w tym również to ... A pomaga to później na miliard sposobów szczególnie gdy się analizuje kod z błędami.

------------------------ [ Dodano po: 16 minutach ]

barus napisał(a):
ale już nie można było wgrać programu (AVR) bo wyskoczył taki oto błąd jak poniżej:

Masz napisane jak BYK jaki masz błąd

Cytuj:
error: unrecognized command line option '-WI, -u,vfprintf'


no byka widać, że aż strach - zaznaczyłem go na czerwono

Co więcej na blogu żeby nie było nieporozumień to SPECJALNIE dodałem to w postaci TEKSTU, który można skopiować sobie i wkleić żeby nie pomylić małej litery L z dużą literą I

Obrazek

------------------------ [ Dodano po: 21 minutach ]

barus napisał(a):
Ciekawe jest to, że ci pracujący w innych środowiskach, takich jak AVR Studio, Atmel Studio tych problemów nie mieli oczywiście po odpowiedniej konfiguracji Toolchaina w opcjach Linkera.


Bardzo cię proszę - zastanów się dobrze jak będziesz zadawał kolejne pytania na forum, bo przyznaję, że zaczyna mnie to już drażnić - gdy tylko ktoś ci zwróci uwagę na błędy to ty zaraz piszesz teksty typu

"a na blogu xxxx było tak samo i im to działa to czemu mi ma nie działać?"

albo

"inni nie mają problemów w atmel studio czy tam innych kompilatorach a w eclipse same problemy"

Podczas gdy sam popełniasz tak podstawowy - błąd z zamianą litery l oraz I ... czy nie widzisz jakie są podobne w wielu czcionkach ? A TYM BARDZIEJ, że ja wiedząc o tym, że wielu początkujących to myli - to specjalnie na blogu podałem to TEKSTOWO do copy&paste .... Więc tym bardzie pisanie, że akurat w eclipse są problemy z dołączaniem bibliotek to jakiś nonsens

Mam nadzieję, że teraz jaśniej i że nieco zmienisz podejście przy zadawaniu kolejnych pytań ok? możemy się tak umówić ?

------------------------ [ Dodano po: 26 minutach ]

A na koniec z ciekawości zapytam - czy masz może jednak Bluebooka ? bo jeśli tak to też tylko z czystej ciekawości dlaczego korzystasz z bibliotek radzia (tzn ja nie mam nic przeciwko nim) ;) ... ale dlaczego nie korzystasz z tych z Bluebooka ?

_________________
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: 35 ]  Przejdź na stronę Poprzednia strona  1, 2

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