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



Teraz jest 8 sty 2025, o 22:59


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 16 ] 
Autor Wiadomość
PostNapisane: 22 sty 2017, o 11:06 
Offline
Nowy

Dołączył(a): 29 sty 2014
Posty: 12
Pomógł: 0

Witam mam problem z kompilacją biblioteki do UARTA dla ATmegi328p. Chciałem do tego wykorzystać kod z noty katalogowej, ale cały czas mam błędy przy kompilacji.

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


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


Proszę o pomoc bo siedziałem nad tym całą noc, czytając notę i szukając w internecie ale nic nie wymyśliłem.
Za pomoc z góry dziękuję.



Ostatnio edytowano 22 sty 2017, o 11:55 przez MainkraftiwiczPL, łącznie edytowano 2 razy

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

Dołączył(a): 10 lip 2015
Posty: 334
Pomógł: 32

Wstaw kod w syntax C!!! Trochę ci pocięło kod i nic nie widać.



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

Dołączył(a): 02 maja 2015
Posty: 100
Lokalizacja: Malbork
Pomógł: 12

MainkraftiwiczPL napisał(a):
while ( !( UCSR0A & (1<<UDRE )) );

Ta pętla nic nie robi poza sprawdzeniem warunku. Po co ona jest w tej funkcji?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2017, o 12:16 
Offline
Moderator
Avatar użytkownika

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

MainkraftiwiczPL napisał(a):
error: 'UDRE' undeclared

Masz jak byk napisane, że nie ma takiego rejestru w tym procku ... co za problem zajrzeć sobie w Eclipse do opisu NAZW rejestrów procka, którego aktualnie używasz w zakładce "Device explorer" ?

------------------------ [ Dodano po: 1 minucie ]

ogon napisał(a):
Po co ona jest w tej funkcji?

Zajrzyj proszę do Bluebooka to się dowiesz ... bo w nocie PDF też jest to opisane chociaż po angielsku

_________________
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: 22 sty 2017, o 12:17 
Offline
Użytkownik

Dołączył(a): 10 lip 2015
Posty: 334
Pomógł: 32

Ta pętla oczekuje na gotowość bufora nadawczego.
Inna rzecz, że zamiast UDRE powinno być UDRE0. (strona 245 w dokumentacji)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2017, o 12:50 
Offline
Nowy

Dołączył(a): 29 sty 2014
Posty: 12
Pomógł: 0

Program się już skompilował poprawiłem w bibliotece UDRE na UDRE0 i częściowo zadziałało. Czyli program się skompilował, ale procesor nie wysyła na ustawionych 19200 baud tylko 9600, i wysyła krzaczki(▒)

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

}

kod biblioteki plik 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.


kod pliku 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.



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

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

bo masz pan niedopasowane prędkości .... jak zwykle - TYPOWY przypadek początkującego, który ma procek taktowany 1 MHz a myśli że 8 MHz bo źle ustawił fusebity

poza tym zacznij używać typów AVR GCC skoro już piszesz w avr gcc czyli zamiast tego klepania

unsigned char

pisz pan

uint8_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  
PostNapisane: 22 sty 2017, o 15:56 
Offline
Nowy

Dołączył(a): 29 sty 2014
Posty: 12
Pomógł: 0

Fusebity mam ustawione na zewnętrzny kwarc 8MHz i taki mam podłączony do procesora i właśnie dlatego nie wiem co mu się dzieje. A jestem pewny że jest ustawione na zewnętrzny kwarc ponieważ jak go wyjmę to procesor stoi.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2017, o 16:15 
Offline
Moderator
Avatar użytkownika

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

MainkraftiwiczPL napisał(a):
Fusebity mam ustawione na zewnętrzny kwarc 8MHz i taki mam podłączony do procesora i właśnie dlatego nie wiem co mu się dzieje. A jestem pewny że jest ustawione na zewnętrzny kwarc ponieważ jak go wyjmę to procesor stoi.


A ja ci mówię, że masz ŹLE ustawione fusebity ;) ... tzn może inaczej - przewiduję to na 99,99% ... czyli prawie 100%

_________________
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: 22 sty 2017, o 16:38 
Offline
Nowy

Dołączył(a): 29 sty 2014
Posty: 12
Pomógł: 0

To w takim razie jakie mam ustawić wartości fusebitów?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2017, o 16:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1032
Lokalizacja: Trójmiasto
Pomógł: 190

Coś mi się wydaje że kolega nie widzi "sygnałów dymnych" puszczanych przez Mirka.
Zainteresuj się kolego fusebitem o nazwie CKDIV8.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2017, o 16:53 
Offline
Nowy

Dołączył(a): 29 sty 2014
Posty: 12
Pomógł: 0

Moje wartości fusbitów w hex 0xFD 0xD9 0xFF
CKSEL0=1; CKSEL1=0; CKSEL2=1; CKSEL3=1; SUT0=1; SUT1=1; CKOUT=1; CKDIV8=1



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

Dołączył(a): 23 paź 2014
Posty: 1032
Lokalizacja: Trójmiasto
Pomógł: 190

Fusy wyglądają OK.
Pytanie czy w ustawieniach projektu masz ustawioną właściwą częstotliwość, i czy jej nie zmieniałeś już po napisaniu programu. Bo jeśli zmieniałeś to powinieneś zrobić "clean project" i jeszcze raz Build.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2017, o 17:19 
Offline
Moderator
Avatar użytkownika

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

ok jednak się myliłem - myślałem że masz ustawiony CKDIV8 ale nie masz .... za to na przyszłość ustawiaj fusebit kwarc 8MHz albo większy a nie jak teraz 3-8 Mhz

W takim razie albo masz źle ustawione parametry w terminalu albo złą przejściówkę do RS232

_________________
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: 22 sty 2017, o 17:47 
Offline
Nowy

Dołączył(a): 29 sty 2014
Posty: 12
Pomógł: 0

W konsoli mam ustawione baud 9600 data 8 bit i 1 bit stop bez parzystości i bitów kontrolnych. Zaś w programie jest ustawione 19200 baud 8 bitów danych i 1 bit stopu. I w takiej sytuacji wyświetlają mi się krzaczki (▒), zaś jak ustawie w konsoli 19200 baud to konsola jest czarna. Więc nie wiem co mu jest. Mam w komputerze fizyczny port COM (płyta to ASRock H170 Performance), ale nie wiem czy mogę go podpiąć do atmegi tylko pinem Rx komputera żeby niczego nie uszkodzić.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2017, o 18:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1032
Lokalizacja: Trójmiasto
Pomógł: 190

MainkraftiwiczPL napisał(a):
ale nie wiem czy mogę go podpiąć do atmegi tylko pinem Rx komputera żeby niczego nie uszkodzić.
Absolutnie nie możesz tak podpiąć bo port komputera działa w standardzie RS232 czyli z napięciami nawet od +15V do -15V. W takim przypadku konieczny jest konwerter do TTL na przykład na scalaku MAX232.
Jeszcze pytanie czego dotychczas używałeś do komunikacji (bo rozumiem że masz jakąś przejściówka USB<=>RS232), taka przejściówka też musi być wykonana tak by po stronie RS232 miała sygnały TTL (czyli nie może to być zwykła przejściówka kupiona w sklepie komputerowym...)



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ł: Majestic-12 [Bot] i 4 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