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



Teraz jest 29 gru 2025, o 10:45


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 
Autor Wiadomość
PostNapisane: 29 paź 2015, o 16:14 
Offline
Użytkownik

Dołączył(a): 28 paź 2015
Posty: 26
Pomógł: 0

Witam,
posiadam arduino uno oraz przejściówkę ....

uprocek jest na 12MHz, a baudrate na 9600 ustawiony. Próbowałem na innych baudratach ale za każdym razem chińszczyna pojawia się na terminalu. Proszę o jakieś wskazówki.


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.


uart.c

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


uart.h

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



Ostatnio edytowano 29 paź 2015, o 17:16 przez mk89, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 paź 2015, o 17:07 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3230
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 91

No nie poprawione. A chyba instrukcja zapisana zrozumiale. Jaśniej się chyba już nie da...

_________________
http://www.jaglarz.info



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 paź 2015, o 17:14 
Offline
Użytkownik

Dołączył(a): 28 paź 2015
Posty: 26
Pomógł: 0

mam nadzieję, że teraz już ok



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 paź 2015, o 17:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 sty 2014
Posty: 39
Lokalizacja: Pszczyna
Pomógł: 4

A czy w Arduino uno nie ma czasem kwarcu 16MHz?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 paź 2015, o 17:55 
Offline
Użytkownik

Dołączył(a): 28 paź 2015
Posty: 26
Pomógł: 0

oryginały są chyba właśnie na 16MHz ale egzemplarz, który posiadam jest na 12MHz. Mkavr kalkulator mówi aby ustawić baudrate 16000 dla takich f ale nie da się takiej wartości ustawić na terminalu



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 paź 2015, o 18:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

A dobrze ustawiasz baudrate? Bo tak patrząc na szybko to chyba nie ...
W funkcji mamy
Kod:
/*************************************************************************
Function: uart_init()
Purpose:  initialize UART and set baudrate
Input:    baudrate using macro UART_BAUD_SELECT()
Returns:  none
**************************************************************************/
void uart_init(unsigned int baudrate)
{
...
#if defined(UART0_UBRRH)
UART0_UBRRH = (unsigned char)((baudrate>>8)&0x80) ;
#endif
UART0_UBRRL = (unsigned char) (baudrate&0x00FF);
Czyli wpisuje podaną wartość do rejestru a nie przelicza baudrate na nią.
Sprawdź czy nie zadziała:
Kod:
uart_init(UART_BAUD_SELECT(9600, F_CPU));
bo taka funkcje masz w tej bibliotece.

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 paź 2015, o 19:48 
Offline
Użytkownik

Dołączył(a): 28 paź 2015
Posty: 26
Pomógł: 0

Dzięki Robert za sugestię ale niestety po wprowadzeniu tej zmiany dalej chińszczyzna w terminalu się pojawia :(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 paź 2015, o 21:15 
Offline
Nowy

Dołączył(a): 23 lis 2013
Posty: 19
Pomógł: 0

Sprawdź, czy na pewno terminal masz ustawiony na odbiór takiej ramki, jaką wysyłasz z procka. Czy zgadzają się bity parzystości, prędkość itp.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 paź 2015, o 22:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

Proponuję zacznij od sprawdzenia czy działa Ci RS232 w najprostszej konfiguracji, czyli ustaw w main parametry portu szeregowego a następnie wpisuj coś w pętli do UDR (tylko rób przerwy).
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Tylko pamiętaj, że musisz poprawnie ustawić prędkość oscylatora w Eclipse.

Edit: To jest wersja dla ATmega32. Jaki procek masz na swojej płytce?

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 paź 2015, o 22:26 
Offline
Użytkownik

Dołączył(a): 28 paź 2015
Posty: 26
Pomógł: 0

jutro posiedzę przy tym i mam nadzieję, że coś ruszy. Dam znać jutro jak mi z tym poszło. Dzięki za pomysły.
pzdr

procek na pokładzie to atmega328p z xtalem 12MHz



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 paź 2015, o 22:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

Jak masz Atmega328P to masz w nazwach rejestrów dla USARTa jeszcze jego numer, więc kod będzie wyglądał tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 paź 2015, o 13:41 
Offline
Użytkownik

Dołączył(a): 28 paź 2015
Posty: 26
Pomógł: 0

Podłączyłem sobie LCD dzisiaj i chyba coś nie tak u mnie z częstotliwością procka gdyż coś za szybko ta sekunda wygląda na LCD'iku.
Zakładając projekt wpisuję tam w okienku 12000000 gdyż mam fizycznie 12MHz XTAL ale procek chyba nie śmiga na takowej f w związku z czym może ta chińszczyzna się pojawia przy UART'cie :?

Poniżej przedstawiam ten kod do wyświetlania na LCD

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


Co nie tak u mnie z tymi częstotliwościami?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 paź 2015, o 15:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

Czy masz na pewno na 1000% tam kwarc 12MHz?
Czy sprawdzałeś jak masz ustawione fuse bity, bo może nie korzystasz z zewnętrznego kwarcu - choć między wierszami można wyczytać że sugerujesz uzyskiwanie większej szybkość niż zakładana, co raczej wymaga zewnętrznego kwarcu (podaj jaką masz częstotliwość na LCD).

Testowałeś na ustawieniach kwarcu jaki teoretycznie mają oryginalne płytki - 16MHz (tylko obowiązkowo zrób clean projektu po zmianie kwarcu)?

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 paź 2015, o 16:34 
Offline
Użytkownik

Dołączył(a): 13 lut 2015
Posty: 99
Pomógł: 6

A jaką masz pewność że chiński kwarc 12MHz ma na pewno 12MHz a nie 16?

popróbuj różnych F_CPU aby sekunda była sekundą.
2. Zmień bibliotekę

_________________
AVR-UART-lib
AVR-FAST-ENCODER
RFM7x-lib



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 paź 2015, o 19:05 
Offline
Użytkownik

Dołączył(a): 28 paź 2015
Posty: 26
Pomógł: 0

słuchajcie panowie śmiech na sali normalnie :lol: Ja te 12MHz to chyba sobie uroiłem i to nie wiem skąd. UART zaczął ze mną w końcu gadać ;) na baudrate 19200.

Wielkie dzięki za pomoc



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

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