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



Teraz jest 25 kwi 2024, o 05:42


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 30 wrz 2016, o 09:06 
Offline
Nowy

Dołączył(a): 29 wrz 2016
Posty: 16
Pomógł: 0

Witam !
Jako osoba początkująca i zaczynająca przygodę z AVR-ami w języku C natrafiłem na problem, którego nie potrafię rozwiązać.
W oparciu o wiadomości z niebieskiej księgi (wydanie II, strona275/276) i pdf-a ATmega 328p usiłuję bezskutecznie uruchomić testową transmisję (9600,8,n,1) danych ze wspomnianego procka do PC-ta. Kod zaczerpnąłem z błękitnej księgi, niestety sukcesów brak. Terminal PUTTY oczekiwanych literek "A" nie wyświetla.

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


Dlaczego po skompilowaniu i zapisaniu (ATB USBasp) powyższego kodu brak transmisji ?
Konwerter szeregowy USB/RS232 TTL na FTDI 232 działa prawidłowo, a port szeregowy "widziany" jest od strony PC-ta jako COM 4.
W PUTTY ustawiam konfigurację serial, 9600, COM4.
Za wszelkie przyjazne i konstruktywne uwagi z góry dziękuję.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 wrz 2016, o 09:33 
Offline
Użytkownik

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

Czy dobrze ustawiasz prędkość transmisji w mikrokontrolerze?

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 wrz 2016, o 10:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1148
Lokalizacja: Kraków
Pomógł: 93

A skompilowało to się w ogóle? Drobne poprawki:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Główna zmiana to przesunięcie funkcji USART_Init() poza funkcję main()



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 wrz 2016, o 11:10 
Offline
Moderator
Avatar użytkownika

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

MirkoT napisał(a):
Czy dobrze ustawiasz prędkość transmisji w mikrokontrolerze?


No jak może dobrze ustawiać ? ... skoro funkcja
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


... pomijam że jest wewnątrz main, to już pisaliście wyżej .... ale no na ZEUSA .... w argumencie baud w takiej wersji nie można sobie wpisać prędkości baudrate :( .... tylko wyliczoną makrem wartość do rejestru UBRR ....

Myślę, że chyba warto sięgnąć po książkę
http://atnel.pl/mikrokontrolery-avr-jezyk-c.html

i od niej zacząć ... żeby zrozumieć co się pisze - a nie po prostu tak na czuja skądś tam przepisywać jakiś kod bez zrozumienia - tak mi się wydaje

_________________
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: 30 wrz 2016, o 12:22 
Offline
Nowy

Dołączył(a): 29 wrz 2016
Posty: 16
Pomógł: 0

Otóż problem chyba podstawowy polega na tym, że niekoniecznie autor tekstu znający i rozumiejący zagadnienie myśli identycznie z osobą usiłująca to zagadnienie dopiero poznać.
Krótko mówiąc z powyższych wskazówek zapewne słusznych w dalszym ciągu wcale nie jest dla mnie oczywiste jak finalnie powinien być napisany kod umożliwiający to połączenie.
Po zalecaną książkę nie tylko sięgnąłem, ale ją kupiłem, posiadam, czytam i natrafiłem na trudności, które opisałem. Jak już wcześniej wspomniałem ten kod pochodzi z tej właśnie książki (strona 276) dlatego nieco zaskakuje mnie sformułowanie "skądś tam przepisywać ". Czytając wspomnianą książkę i natrafiając na trudności zadałem pytanie na forum.
Jeszcze przed zadaniem pytania na forum eksperymentowałem z różnymi wartościami wyliczanymi (wzory z pdf-a ATmega 328) lub pobranymi z tabelek i wpisanymi do UBRR0H/UBRR0L, niestety bez efektów.
Na koniec pozwolę sobie jeszcze zadać jedno szczegółowe pytanie:
W księdze błękitnej podany jest wzór na obliczenie wartości wpisywanej do UBRR (strona 282). Niestety nigdzie nie udało misie natrafić na wyjaśnienie co oznacza w tym wzorze UL".
Początki bywają trudne, a kto pyta nie błądzi. Wciąż nie tracę nadziei na konstruktywną pomoc.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 wrz 2016, o 12:28 
Offline
Użytkownik

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

UL oznacza unsigned long
taki typ danych
to odpowiedź na najprostsze pytanie
Zaraz poszukam odpowiedzi na następne ;-)

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

Co do obliczeń to pozwól, że skieruję Cię tu:
http://mirekk36.blogspot.com/2013/01/rs232-ubrr-jak-prawidowo-obliczac-trick.html
tam są definicje preprocesora, które sprawę bardzo upraszczają

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 wrz 2016, o 13:04 
Offline
Moderator
Avatar użytkownika

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

cansado napisał(a):
właśnie książki (strona 276) dlatego nieco zaskakuje mnie sformułowanie "skądś tam przepisywać ".

Nie ma co być zaskoczonym - warto po prostu umiejętnie zadawać pytania, toż po drugiej stronie nikt się nie domyśli co kolega posiada a czego nie. A co za problem w pytaniu wspomnieć, że właśnie przerabiam BB i mam problem ze zrozumieniem zagadnienia XXX bo to i siamto ... wtedy od razu wiadomo w czym rzecz dla tych którzy mają odpowiedzieć, podpowiedzieć ... Poza tym na forum można sobie ustawić ikonkę że posiada się Bluebooka na dole pod podpisem i wtedy nie trzeba przypominać - ja od razu to widzę i wiem na czym się opieram udzielając odpowiedzi.

co zaś się tyczy tego:

cansado napisał(a):
Jak już wcześniej wspomniałem ten kod pochodzi z tej właśnie książki (strona 276)


proszę cię - zaklinam - no nie pisz TAKICH RZECZY bo kod który podałeś w pierwszym POŚCIE ABSOLUTNIE NIE POCHODZI z mojej książki

Obrazek

i tu proszę nie obrażaj się za moje uwagi bo (nie obraź się ale opowiadasz fantasmagorie że to kod z książki)

sorki ale jak ktoś pisze aż tak dziwne rzeczy to nie dziw się, że ja odpisuję - że przepisujesz bez zrozumienia, i aż pokażę ci fragment strony 276
Obrazek

cansado napisał(a):
Czytając wspomnianą książkę i natrafiając na trudności zadałem pytanie na forum.

I bardzo dobrze - ja ZAWSZE do tego serdecznie zapraszam - tylko no właśnie to co na początku daj znać że masz książkę i o co chodzi to wtedy można łatwiej i szybciej pomóc .... i zrozum, że nawet przepisując z książki MOŻNA WALNĄĆ BABOLA, co ty właśnie zrobiłeś .... i mam nadzieję, że już teraz widzisz tego babola

ale to nie wszystko .... bo z tego co piszesz

cansado napisał(a):
Niestety nigdzie nie udało misie natrafić na wyjaśnienie co oznacza w tym wzorze UL".

To jest arcyciekawe - tym razem pokażę ci że to jest w książce ale na przyszłość też postaraj się sam szukać - bo nie ośmieliłbym się posługiwać w książce zapisem UL gdybym tego nie wyjaśnił - ponieważ to są akurat MEGA PODSTAWY języka C - proszę:

Obrazek

ale to nie WSZYSTKO panie kolego - bo jak pisałem tobie wyżej i to była podpowiedź którą widzę kompletnie pominąłeś - NIE MOŻNA sobie do funkcji

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


przekazać tak jak ty to zrobiłeś po prostu prędkości wyrażonej w Baudrate czyli np:

Cytuj:
USART_Init( 9600 );


i nie mów proszę - że nie jest to WYJAŚNIONE w książce bo już dalszych skanów nie będę wklejał - jest to wyjaśnione ale (i tu znowu się nie urażaj) wydaje mi się, że nie przeczytałeś całego rozdziału od początku na temat PODSTAW komunikacji RS232 sądząc po ilości błędów jakie robisz w jednym miejscu ...

dlatego nie powinno być ujmą dla ciebie gdy poradzę, żebyś jednak najpierw ten rozdział W CAŁOŚCI przeczytał uważnie ok ? Sądzę, że wszystko ci się wyjaśni ....

A to że nie wiedziałeś co to znaczy UL mówi o tym, (domyślam się tylko a nie twierdzę że na pewno) ... że czytasz książkę na wyrywki - pominąłeś całą pierwszą część z podstawami - bo gdybyś ją wcześniej RAZ - JEDEN RAZ przeczytał to ok - no mógłbyś mieć np problem ze znalezieniem gdzie to było w książce o tym kocim UL .... i nawet można byłoby się podpytać na forum ... ale jeśli ty piszesz że w ogóle nie ma o tym w książce wzmianki to jak sądzisz - dlaczego myślę, że czytasz ją na wyrywki ?

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

Książka jest na rynku od 2011 roku (styczeń!) i uwierz mi - MNÓSTWO czytelników z tzw "kopyta" ruszyło właśnie z podstawową obsługą RS232 dzięki tej właśnie książce .... "z kopyta" .... bo to jest w niej dobrze wyjaśnione i opisane - no ale trzeba jednak poświęcić te minimum czasu na dokładne przeczytanie

a na koniec NAJWAŻNIEJSZE - nawet jeśli się robi babole podczas przepisywania kodu z książki (co jest wręcz zrozumiałe dla mnie - a bo to mi się nie zdarza???) .... to do książki masz dołączoną albo płytę DVD albo Pendrive ze WSZYSTKIMI KODAMI ŹRÓDŁOWYMI z książki .... i nawet tam nie zajrzałeś żeby skonfrontować co źle robisz ? to mnie martwi

_________________
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: 30 wrz 2016, o 16:54 
Offline
Nowy

Dołączył(a): 29 wrz 2016
Posty: 16
Pomógł: 0

Panie Mirku !
1. Nie zamierzałem Pana urazić ani też krytykować. Jeżeli tak Pan zrozumiał moje intencje, to BARDZO PRZEPRASZAM I PROSZĘ O WYBACZENIE. Po prostu zaszło nieporozumienie.
2. Już na samym początku pierwszego postu napisałem, ze jestem absolutnie poczatkujący i to chyba tłumaczy moje trudności i kłopoty.
3. Sadzę, że jako wytrawny, wyrozumiały nauczyciel i przewodnik po zawiłościach programowania rozumie Pan, ze nie wszyscy uczniowie są super błyskotliwi i w lot zgłębiają najsubtelniejsze niuanse.
4. Największym jednak osiągnieciem, satysfakcją i dumą dla nauczyciela jest wytłumaczenie nie tym najzdolniejszym, ale tym którzy bez tej pomocy po prostu przepadną :-)
5. Fragmenty kodu i strony z BB podawałem tylko po to aby jasne było na czym się wzorowałem.
6. Obramowany przez Pana czerwonym kolorem MEGA BABOL !, to wzór funkcji do inicjalizacji USART podany przez Pana (BB wydanie II strona282). Ten zalecany przez Pana wzór zastosowałem w
miejscu gdzie w kodzie (strona 276) widoczna jest uwaga: "w tym miejscu inicjalizacja UART"
7. Nigdzie w kodzie ani też we wcześniejszych postach nie napisałem USART_Init( 9600 ); Nie wpisywałem tu też żadnej innej prędkości wyrażonej w Baudrate.
8. Wielka szkoda, że tyle czasu, pisania i energii zostało zmarnowane po obu stronach, a postawione przeze mnie na początku pytanie pozostaje bez odpowiedzi.
Jak powinien wyglądać wzór prawidłowo napisanego kodu dla takiej transmisji testowej ?
9. JESZCZE RAZ PRZEPRASZAM i SERDECZNIE POZDRAWIAM :-) !



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 wrz 2016, o 17:59 
Offline
Moderator
Avatar użytkownika

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

cansado napisał(a):
. Nigdzie w kodzie ani też we wcześniejszych postach nie napisałem USART_Init( 9600 ); Nie wpisywałem tu też żadnej innej prędkości wyrażonej w Baudrate.

Z tym się zgodzę - i tu moja wina bo gdzieś mi to mignęło ale to nie było w twoim poście - sorki

Nie mniej jednak ... no proszę cię
Cytuj:
Jak powinien wyglądać wzór prawidłowo napisanego kodu dla takiej transmisji testowej ?


Piszesz, że nie dostałeś odpowiedzi a w książce nie ma ? A na nośniku do książki w kodach nie ma ? Czy ja mam tylko takie wrażenie czy jak ? że jakby pomijasz to co piszę w pewnych miejscach i to nie tylko to co ja piszę, bo proszę tu też kolega ci podpowiedział:
MirkoT napisał(a):
Co do obliczeń to pozwól, że skieruję Cię tu:
http://mirekk36.blogspot.com/2013/01/rs ... trick.html
tam są definicje preprocesora, które sprawę bardzo upraszczają


i co do żadnego ze źródeł z podpowiedzi jakie otrzymałeś nadal nie zajrzałeś ? a piszesz że:

cansado napisał(a):
a postawione przeze mnie na początku pytanie pozostaje bez odpowiedzi.


Dlatego proponuję - odpal kod z nośnika dołączonego do książki

07_UART

zajrzyj proszę do niego - zobacz, porównaj - sprawdź ... no bo ja - nie wiem już za bardzo jak inaczej cię naprowadzić ... A wcale nie uznaję przez to, że z tobą jest coś nie tak - tylko ze mną. Dlaczego ? ... ano dlatego że nie potrafię tobie dobrze wyjaśnić ... ja mam takie podejście ...

Za to nie obrażaj się, że bardzo wyraźnie reaguję na to gdy ktoś pisze na forum, że "przepisałem z książki jota w jotę" i pokazuje jakiś przedziwny kod. I nie reaguję ze złości czy coś - tylko po to żeby później .... ktoś podobnie początkujący gdy zajrzy na to forum i znajdzie twój wpis bez żadnego odzewu - nie poszedł na inne fora i napisał .... "aaaa gdzieś tam słyszałem, że w BB są jakieś błędnie napisane funkcje " - rozumiesz ?

Jak widzisz ja nie mam problemu z wyjaśnianiem , doprecyzowaniem i odpowiadaniem na pytania

no tylko przy okazji udzielam też tobie ale nie tylko tobie wskazówek jak w ogóle pytania zadawać bo to często jest przyczyną nieporozumień na forach ...

_________________
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: 30 wrz 2016, o 21:56 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 lut 2014
Posty: 296
Lokalizacja: Jaskółowo k. Warszawy
Pomógł: 9

Cześć.
Mnie z kolei zastanawia czemu kolega wybrał procka Atmega 328?
Rozumiem że fajny jest bo nowy dużo pamięci, mały, lepsze peryferia.
No ale coś za coś. Dla początkującego masakra.
Kody z książki głownie pisane na atmege32.
Radzę zaopatrzyć się w takiego procka wraz z kwarcem 11,0592MHZ.
Inaczej przy każdym kodzie będziesz musiał sprawdzać w nocie czy oby na pewno masz wszystko dobrze ustawione.
Zostaw to sobie jako next stopień wtajemniczenia.
Na razie to analizuj kody z workspace wraz z książką i wgrywać na ATmega32 inaczej się pogubisz.
Zobaczysz że działa, dopiero stosuj zmiany wraz z pdf. Np zmień sobie częstotliwość, wysyłane/odbierane dane.
Metoda zmian na chybił trafił w C nie działa.

Gwarantuje Ci że jak zmienisz procka to kod wgrany z workspace na pewno zadziała.
Zadawaj często pytania bo warto.

Powodzenia.

_________________
POZDROWIONKA



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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