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



Teraz jest 1 mar 2025, o 14:21


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 11 sty 2015, o 19:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2015
Posty: 41
Lokalizacja: Gorzów Wlkp.
Pomógł: 0

Witam. Jestem początkujący. Proszę o pomoc. Napisałem prosty program do wysyłania stringa po UART wzorując się na poradniku w jednym z odcinków o ADC. Problem w tym, że na terminalu poprawnie wyświetlana jest tylko pierwsza czasem dwie pierwsze litery stringu. Reszta to krzaki. Jeśli dodam opóźnienie 100ms przy wysyłaniu poszczególnych znaków wtedy cały string przechodzi poprawnie. Możliwe jest, że bit UDRE nie jest uaktualniany i cały czas przyjmuje wartość 0?

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.


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.


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: 11 sty 2015, o 20:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2014
Posty: 447
Lokalizacja: DKL
Pomógł: 53

Twój kod na AtMega32 działa poprawnie.
Obrazek

Jakim kwarcem taktujesz procesor, czy jest on "przyjazny" dla wybranej przez ciebie prędkości BAUD, bo może własnie tego nie wiozłeś pod uwagę i stąd błędy transmisji.

Obrazek

Poza tym sprawdź ustawienia w terminalu, dla podanego kodu ma być prędkość 9600, 8 bitów danych, bez parzystości i jeden bit stopu.

_________________
Migracja z punktu B do punktu C
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 sty 2015, o 20:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2015
Posty: 41
Lokalizacja: Gorzów Wlkp.
Pomógł: 0

Sprawdzałem na dwóch terminalach. Przez dwie przejściówki:
1. V-USB na innej atMega8 i dwa różne terminale (putty i Termite)
2. Arduino podłączone przez piny TX RX na jego "serial monitorze"

Do testów mam ustawiony wewnętrzny oscylator 8MHz. Nie mam "przyjaznego" kwarcu pod ręką.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 sty 2015, o 20:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2014
Posty: 447
Lokalizacja: DKL
Pomógł: 53

Przy 8MHz i Baud 9600 błąd jest znikomy i nie powinien on wprowadzać zamieszania.
Także musisz szukać problemów leżących poza kodem, bo ten jest sprawdzony i działa.
A jaki masz uC? Bo może jeszcze w konfiguracji i obsługi jego UART-u są jakieś rozbieżności.

_________________
Migracja z punktu B do punktu C
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 sty 2015, o 20:56 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2015
Posty: 41
Lokalizacja: Gorzów Wlkp.
Pomógł: 0

Atmega8, pozakładam dodatkowe filtry na zasilanie może to coś zmieni. Ważne, że upewniłeś mnie o poprawności kodu.
Wielkie dzięki.
Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 sty 2015, o 21:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2014
Posty: 447
Lokalizacja: DKL
Pomógł: 53

Teraz doczytałem, że używasz wewnętrznego generatora, zatem trzeba by się zainteresować jego kalibracją, za którą odpowiada rejestr OSCCAL w twoim uC. Gdzieś był chyba filmik na ten temat jak i w BB jest to dokładnie opisane.

_________________
Migracja z punktu B do punktu C
Pozdrawiam



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 5 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