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



Teraz jest 4 cze 2026, o 20:44


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 16 ] 
Autor Wiadomość
PostNapisane: 21 lip 2013, o 13:25 
Offline
Użytkownik

Dołączył(a): 10 lip 2013
Posty: 93
Lokalizacja: Puławy
Pomógł: 0

Dzień dobry bardzo,
wczoraj oglądając odcinek o ADC pisałem cały ten kod i mam takie coś że nie mogę zainkludować pliku uart.h do uart.c

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

.. i jeśli zakomentuję include myuart.h znowu działa i się kompiluje

Następnie jeśli zadeklaruję tą (i tylko tą metodę- inne działają) w "uart.h" to jeśli dopiszę argument _UBRR (z jednym podkreśleniem u mnie)
to cała deklaracja również jest podkreślona na czerwono i: "Syntax error" jak poprzednio

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

musiał bym usunąć o tak - wtedy działa:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Na końcu inkluduję plik myuart.h 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.

i się kompiluje.

Nie wiem czy może coś przeoczyłem przy tworzeniu projektu. Może to dlatego że nie mam dołączonego do projektu tego "jar'ka" -de.innot.avr.. ?
Oczywiście cały kod pisałem wg wskazówek czyli kompilacja zaraz po napisaniu metody itp. dlatego odrazu po napisaniu metody uart_init wiedziałem że jest nie ok ale napisałem inne metody i nie ma problemów z nimi.

Pzdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lip 2013, o 13:45 
Offline
Moderator
Avatar użytkownika

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

plik jar nie ma z tym NIC a NIC wspólnego.

A coś na pewno przeoczyłeś i zamiast pokazać cały swój źle kompilujący się plik *.c i *.h to piszesz fragmentami i ciężko coś podpowiedzieć - a ewidentnie gdzieś strzeliłeś babola/literówkę. Gdzieś może zapomniałeś średnika itp stąd taki komunikat

poza tym na blogu do tego poradnika masz kod źródłowy - nie możesz zajrzeć i pobrać ?

_________________
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 lip 2013, o 14:07 
Offline
Użytkownik

Dołączył(a): 10 lip 2013
Posty: 93
Lokalizacja: Puławy
Pomógł: 0

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


Wszystko jest w jednym znaczniku. Skomentowałem przy metodach gdzie jest error.
Dodam, że osobiście sprawdzałem wczoraj tysiąc razy, starannie analizując kod aby się dowiedzieć - już to robiłem wiele razy - "been there, done that". Chociaż prawda, że gdzieś siedzi babol ale nie wiem gdzie.

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


Zmieniłem też w project>properties na atmega32 i to samo.



Ostatnio edytowano 21 lip 2013, o 14:28 przez ZgłebiaczTajników, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lip 2013, o 14:27 
Offline
Moderator
Avatar użytkownika

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

dobra - to teraz zamiast pisać w komentarzu

// syntax error tak samo

wklej tutaj to co pokazuje ci się w konsoli po kompilacji - tzn miejsce gdzie jest błąd - tam masz kupę informacji

_________________
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 lip 2013, o 14:31 
Offline
Użytkownik

Dołączył(a): 10 lip 2013
Posty: 93
Lokalizacja: Puławy
Pomógł: 0

Zrobiłem to chwilę wcześniej bo zapomniałem



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lip 2013, o 14:36 
Offline
Moderator
Avatar użytkownika

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

błąd masz pomiędzy tymi liniami

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


być może wskoczył ci jakiś dziwny znak (kod HTML) jak robiłeś coś na zasadzie kopiuj/wklej

albo nie wiem ... skasuj te linie pomiędzy i aż do zakończenia tego #define a potem wstaw jedną linię przerwy

_________________
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 lip 2013, o 14:38 
Offline
Moderator
Avatar użytkownika

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

ach rzeczywiście - GWYN pierwszy wypatrzył BABOLA ;) brawo

------------------------ [ Dodano po: 3 minutach ]

ale mówiłem żebyś pobrał plik z bloga bo tam jest dobrze przecież

tzn w #define jest __UBRR

a w argumencie funkcji uart_init() jest _UBRR

może na szybko troszkę nieszczęśliwie to napisałem bo różni się to jednym podkreślnikiem, zwykle w argumencie funkcji piszę po prostu

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

_________________
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 lip 2013, o 14:42 
Offline
Użytkownik

Dołączył(a): 10 lip 2013
Posty: 93
Lokalizacja: Puławy
Pomógł: 0

Kurcze - nic z tych rzeczy które wymieniliście. Skasowałem linijki puste i zmieniłem wszędzie z _UBRR na ubrr i taki sam błąd :(
Edit:
@up - ja też to zobaczyłem i zmieniłem na poprawne czyli z _UBRR na __UBRR i skompilowałem wcześniej.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lip 2013, o 14:46 
Offline
Moderator
Avatar użytkownika

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

ZgłebiaczTajników napisał(a):
@up - ja też to zobaczyłem i zmieniłem na poprawne czyli z _UBRR na __UBRR i skompilowałem wcześniej.


no to właśnie źle zrobiłeś

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

gdybyś w definicji i deklaracji funkcji zostawił _UBRR to by ci działało a że poprawiłeś na __UBRR to masz właśnie syntax error

_________________
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 lip 2013, o 14:51 
Offline
Użytkownik

Dołączył(a): 10 lip 2013
Posty: 93
Lokalizacja: Puławy
Pomógł: 0

Obecnie mam plik skompilowany jak w moim drugim poście z _UBRR w każdym wystapieniu zamiast __UBRR w każdym wystąpieniu.

Oczywiście we wszystkich plikach mam z _UBRR. Zamieniając znowu oczywiście z ubrr na _UBRR.



Ostatnio edytowano 21 lip 2013, o 14:53 przez ZgłebiaczTajników, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lip 2013, o 14:59 
Offline
Moderator
Avatar użytkownika

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

ZgłebiaczTajników napisał(a):
z _UBRR w każdym wystapieniu zamiast __UBRR w każdym wystąpieniu.


no ale przeczytaj UWAŻNIE post Gwyn'a gdzie znalazł ci babola. Przecież wyraźnie napisał i ja też podpowiedziałem co masz zmienić

a zresztą wystarczyłoby żebyś zajrzał do pliku który pobrałeś z bloga to byś zobaczył - dlaczego sobie nie pomagasz ? przecież po to tworzę i udostępniam te pliki

jak zajrzysz to zobaczysz że w definicji #define jest i ma BYĆ __UBRR

a w funkcji był i ma pozostać _UBRR


Autor postu otrzymał pochwałę

_________________
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 lip 2013, o 15:00 
Offline
Użytkownik

Dołączył(a): 10 lip 2013
Posty: 93
Lokalizacja: Puławy
Pomógł: 0

Tak też zrobiłem. Dzięki. Oczywiście dziękuję Wam bardzo. Teraz działa.
Pozdrawiam.



Ostatnio edytowano 21 lip 2013, o 15:02 przez ZgłebiaczTajników, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lip 2013, o 15:00 
Offline
Moderator
Avatar użytkownika

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

chociaż dla porządku lepiej byłoby tę funkcję napisać dla oka tak:

Cytuj:
void uart_init( uint16_t ubrr ) {
/* Set baud rate */
UBRRH = (uint8_t)(ubrr>>8);
UBRRL = (uint8_t)ubrr;
/* Enable transmitter */
UCSRB = (1<<TXEN);

}

_________________
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 lip 2013, o 15:03 
Offline
Użytkownik

Dołączył(a): 10 lip 2013
Posty: 93
Lokalizacja: Puławy
Pomógł: 0

I trzeba dodać że 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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lip 2013, o 15:04 
Offline
Moderator
Avatar użytkownika

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

ZgłebiaczTajników napisał(a):
I trzeba dodać że w main.c:


oczywiście ;)

ale tu:

Cytuj:
uart_init( __UBRR );


------------------------ [ Dodano po: 2 minutach ]

musi kolega jeszcze raz w książce wrócić do rozdziału o funkcjach w języku C i DOKŁADNIE przeczytać o argumentach, czym się różnią te formalne od aktualnych itp ... bo widzę po tym że tu ma kolega jeszcze zamieszanie w głowie

_________________
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 lip 2013, o 15:11 
Offline
Użytkownik

Dołączył(a): 10 lip 2013
Posty: 93
Lokalizacja: Puławy
Pomógł: 0

Tak dokładnie ja tu leżę w tej dziedzinie języka C - jest bardziej "kumaty" od Javy np. I to mi się w nim podoba. Tym bardziej że ja nie pisze programów krów w których musiałbym wykorzystać w pełni obiektowość np. jak w Javie. Wystarczy jedna klasa i wiele metod ;)



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 7 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO