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



Teraz jest 19 mar 2026, o 07:22


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 12 lis 2015, o 20:05 
Offline
Nowy

Dołączył(a): 05 cze 2013
Posty: 9
Pomógł: 0

Dobry wieczór Państwu. Po długiej przerwie z mikrokontrolerami postanowiłem się z nimi na nowo pobawić, niestety mój zapał został szybko ostudzony ;). Planowałem napisać sobie funkcję generującą przebieg prostokątny na jednym z wyjść uC (ATMega16 @ 8MHz) w zależności od wartości zmiennej. Utknąłem niestety na uruchomieniu Timera i nie mam pomysłu co z poniższym fantem zrobić. Poniżej zamieszczam kod i dwa screeny. Byłbym wdzięczny za pomysły. (Używam Code::Blocka 13.2, WinAvr 20100110; oboje świeżo pobrani i zainstalowani na czysto)

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

Kod:
||=== Build: Release in GENERATOR_PROSTOKAT (compiler: GNU GCC Compiler for AVR) ===|
main.c||In function 'main':|
main.c|10|error: called object '1' is not a function|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|


ObrazekObrazek



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

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

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


Pozdr.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2015, o 20:23 
Offline
Użytkownik

Dołączył(a): 29 mar 2012
Posty: 595
Lokalizacja: Jaworzno
Pomógł: 39

Zamiast
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.

Brakuje również średnika na końcu linii 7.


Autor postu otrzymał pochwałę

_________________
Pozdrawiam
PP



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2015, o 20:31 
Offline
Nowy

Dołączył(a): 05 cze 2013
Posty: 9
Pomógł: 0

Czy wstawienie typu funkcji main ma jakieś znaczenie ? czy to tylko dla utrzymania czytelności kodu ? Nigdy nie dawałem "void'a" i działało. A po wstawieniu średnika - ruszyło z kopyta. Dziękuję Panowie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2015, o 21:08 
Offline
Użytkownik

Dołączył(a): 29 mar 2012
Posty: 595
Lokalizacja: Jaworzno
Pomógł: 39

Owszem, kompilator AVR-GCC łyka bez zająknięcia definicję funkcji main() bez void w nawiasach. Jednak w ramach dobrych praktyk oraz dla porządku w kodzie warto wpisywać void. Szczególnie gdy tworzymy własne funkcje, jest to jasna informacja dla nas i kogoś kto czyta kod, że dana funkcja nie wymaga podania żadnych argumentów.

_________________
Pozdrawiam
PP



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2015, o 21:16 
Offline
Moderator
Avatar użytkownika

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

Bartq napisał(a):
czy to tylko dla utrzymania czytelności kodu ?

To jest dobry styl programowania a jak widzisz na tym forum staramy się taki styl utrzymywać bo każdemu wtedy i łatwiej analizować kod i łatwiej odpowiadać

_________________
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: 12 lis 2015, o 23:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 kwi 2013
Posty: 418
Lokalizacja: Rzeszów
Pomógł: 102

W języku C, brak podania argumentów funkcji w jej deklaracji/definicji oznacza że może ona przyjąć dowolną (sic!) liczbę argumentów!

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


C++ nie daje się już tak łatwo oszukać i w nim nie jest konieczne wstawianie "void'a".

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



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

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