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



Teraz jest 12 lut 2025, o 12:56


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 23 gru 2012, o 13:04 
Offline
Nowy

Dołączył(a): 23 gru 2012
Posty: 9
Pomógł: 0

Dzień dobry,

Chce stworzyć program, który zmienia pwm w atmega8 pod wpływem przyciśnięcia przycisku na wejściu PB0.
Steruje silnikiem przez scalaka l293d, niestety po drobnych zmianach program nawet nie chce się skompilować.
Wywala błąd "expected expression before 'void'" w miejscu zaznaczonym w programie. Proszę o pomoc w zrealizowaniu tego pomysłu.

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


Wstawiłem znaczniki - SunRiver
Następnym razem do lochu .....



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 gru 2012, o 13:11 
Offline
Użytkownik

Dołączył(a): 10 sie 2012
Posty: 91
Lokalizacja: Wąbrzeźno
Pomógł: 0

Pierwsze spostrzeżenia:
1. Jak dodajesz kod umieść go w znacznikach coda dla C.
2. Źle zdefiniowałeś przycisk.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 gru 2012, o 13:17 
Offline
Użytkownik

Dołączył(a): 15 lut 2012
Posty: 344
Lokalizacja: Bydgoszcz
Pomógł: 11

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


Te void służy do zadeklarowania i zdefiniowania funkcji która niczego nie zwraca w programie. Funkcję należy wywoływać w ten sposób:
pwmlow() itp.
Swoją drogą używaj operacji bitowych(tutaj masz to wyjaśnione: http://mirekk36.blogspot.com/2012/01/av ... stawy.html) a nie mark _BV a najlepiej będzie jak się wyposażysz w tą pozycję: http://atnel.pl/mikrokontrolery-avr-jezyk-c.html bo widać u ciebie spore braki w rozumieniu języka C.

Jeszcze jedna uwaga otóż widzę że zapomniałeś o klamrach w instrukcji warunkowej a wykonujesz więcej niż jedną operację więc te klamry powinny być.

Pozdrawiam i życzę wesołych świąt!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 gru 2012, o 13:26 
Offline
Nowy

Dołączył(a): 23 gru 2012
Posty: 9
Pomógł: 0

Dzięki już chodzi :D, właśnie jestem w trakcie przerabiania tej książki niestety to mi umknęło.
A co do _BV dlaczego nie warto tego używać?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 gru 2012, o 13:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 lut 2012
Posty: 243
Lokalizacja: wlkp
Pomógł: 2

Nie tyle, co nie warto - po prostu Mirek preferuje ustawianie konkretnych bitów za pomocą przesunięć, a np. dla porównania T. Francuz (autor innej książki do AVRów) wykorzystuje makro _BV(PBX).
Na forum przyjęły się przesunięcia bitowe, bo faktycznie kod jest wtedy czytelniejszy i łatwiej znaleźć ewentualną pomyłkę.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 gru 2012, o 15:40 
Offline
Moderator
Avatar użytkownika

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

jrq napisał(a):
A co do _BV dlaczego nie warto tego używać?


Tak jak napisał kolega wyżej .... ja dodam tylko, że każdy początkujący, który zamiast przesunięć korzysta z kociego makra _BV() ..... to widać od razu na kilometr - że nie do końca zrozumiał działanie przesunięć i stara się przed tym uciekać - a jak widać to się szybko mści ;)

dlatego dobra solucja - na naszym forum - jak prezentujemy kody to używamy przesunięć ..... poza tym jak sam się przyzwyczaisz do ich używania - to szybko też dojdziesz do wniosku że kod źródłowy o 100x lepiej wygląda ;)

wesołych świąt ;)

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

Strefa czasowa: UTC + 1


Kto przegląda forum

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