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



Teraz jest 4 gru 2024, o 21:26


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 36 ]  Przejdź na stronę Poprzednia strona  1, 2
Autor Wiadomość
PostNapisane: 20 mar 2012, o 20:23 
Online
Moderator
Avatar użytkownika

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

wasu napisał(a):
Pytam o to gdy wywołuje ją poza ciałem funkcji, a zaraz za definicja pwm, wowczas dostaje wspomniane bledy i nie jest to wina niedolaczonej biblioteki


Pewnie że nie wina niedołączonej biblioteki, przecież pisałem ci że nawet nie raczyłeś odpowiedzieć na poprzednie, a robisz kolejne i to mega babole. Sorki ale musisz wziąć książkę i poczytać o funkcjach. ..... Albo coś ci się pokiełbasiło totalnie albo w ogóle nie rozumiesz o co tu chodzi..... Tyle że to jest tak wyraźnie napisane w książce że ja już jak mówiłem wymiękam.

jedyne co ci podpowiem teraz to:

1. masz na czerwono zaznaczoną bzdurę jaką robisz
2. poczytaj o funkcjach
3. poczytaj w końcu co to jest DEFINICJA i DEKLARACJA a szczególnie jeśli chodzi o funkcje.

Jak mi tu napiszesz co to jest DEFINICJA i DEKLARACJA funkcji to może jeszcze coś pomogę - inaczej - absolutnie kończę swoje odpowiedzi w tym wątku - bardzo przepraszam ale nie daję rady.

_________________
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: 21 mar 2012, o 00:00 
Offline
Użytkownik

Dołączył(a): 07 mar 2012
Posty: 54
Pomógł: 0

Jeśli deklaruje funkcję to daje znać kompilatorowi jakiego typu argumenty może ona przyjmować oraz jaki typ zwraca,
a definicja oprócz tego rezerwuje jeszcze pewien obszar pamięci flash (czyli pamiec programu) i umieszcza w niej zawartosc funkcji



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 mar 2012, o 07:42 
Online
Moderator
Avatar użytkownika

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

wasu napisał(a):
Jeśli deklaruje funkcję to daje znać kompilatorowi jakiego typu argumenty może ona przyjmować oraz jaki typ zwraca,
a definicja oprócz tego rezerwuje jeszcze pewien obszar pamięci flash (czyli pamiec programu) i umieszcza w niej zawartosc funkcji


No właśnie - więc jak można wpaść na pomysł "wywołania" funkcji POZA CIAŁEM INNEJ FUNKCJI ????

przecież zapis:

def_lcdchar(0x81, znak_);

tuż po definicji zmiennych kompilator będzie próbował rozpoznać jako deklarację funkcji tyle że jakąś skopaną na maxa. No bo nie widać jaki typ danych ona zwraca, nie widać typów jej argumentów, kompilator widzi tylko jakąś nazwę, a to że po jej prawej stronie jest otwarty pierwszy nawias okrągły i dzieje się to poza jakąkolwiek funkcją - to domyśla się że ma do czynienia z próbą deklaracji funkcji, ale jakiejś okaleczonej a co gorsze - mówi ci w komunikatach WYRAŹNIE że taka nazwa została już wcześniej zarezerwowana w bibliotece LCD ......

Zatem nie wymyślaj proszę nowych zasad języka C - bo nigdzie w książce nie napisałem, że można wywoływać jakiekolwiek funkcje poza ciałem innych funkcji - toż to jakaś fantasmagoria zarówno dla mnie jak i dla kompilatora. Więc nie ma co się dziwić, że prawie się kompilator udławił jak próbował taki kod skompilować i zwymiotował taką ilością warningów i błędów.

..... poczytaj o funkcjach .....

_________________
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: 21 mar 2012, o 08:22 
Offline
Użytkownik

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

mirekk36 napisał(a):
(...) Więc nie ma co się dziwić, że prawie się kompilator udławił jak próbował taki kod skompilować i zwymiotował taką ilością warningów i błędów.

..... poczytaj o funkcjach .....

Ale się uśmiałem :D
Masz Mirku niezwykle sugestywny język... ;)

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 mar 2012, o 22:47 
Offline
Użytkownik

Dołączył(a): 07 mar 2012
Posty: 54
Pomógł: 0

Witam, skonczylem reazlizacje mojego pierwszego 'projektu' , ktory tak naprawde sam sobie wymyslilem.
Program wykorzystuje 5 klawiszy K 12345, 8 diod led i wyswietlacz LCD, wykonalem to na plytce ATB 1.03.
klawisz numer 1 przesówa sie w menu w lewo, 5 w prawo, 3 wchodzi do wybranej diody i otwiera menu wyboru funkcji z ktorego wychodzimy klawiszem K5. Jak komus bedzie siechcialo sprawdzic i cos podpowiedziec cozrobic w celu optymalizacji kodu bede wdzieczny. Mirku Tobie dziekuje za cierpliwosc i wyrozumialosc, to byl moj pierwszy projekt w ktorym spotkalem wiele problemow i troche siedzieki temu nauczylem
w zalaczniku projekt


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 mar 2012, o 23:00 
Online
Moderator
Avatar użytkownika

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

Wgrałem projekt, kompiluje się ale źle, a ty tego nie zauważasz. A już ci wcześniej mówiłem, że masz wyłączoną optymalizację - tzn na -O0

rozumiesz to?

wszystkie funkcje _delay ci w związku z tym źle działają i masz takie błędy w konsoli:

Cytuj:
c:/winavr-20100110/lib/gcc/../../avr/include/util/delay.h:90:3: warning: #warning "Compiler optimizations disabled; functions from <util/delay.h> won't work as designed"


przez co program po kompilacji zajmuje o zgrozo:
Program: 10340 bytes (15.8% Full) ----- FLASH
(.text + .data + .bootloader)

Data: 167 bytes (4.1% Full) --------- RAM
(.data + .bss + .noinit)

tymczasem po włączeniu optymalizacji na -Os będziesz miał:

Program: 2462 bytes (3.8% Full) ----- FLASH
(.text + .data + .bootloader)

Data: 158 bytes (3.9% Full) --------- RAM
(.data + .bss + .noinit)


ustaw optymalizację na -Os

Poza tym cieszę się, że udało ci się zrobić taki wielo-plikowy projekt

_________________
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: 36 ]  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