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



Teraz jest 12 gru 2024, o 00:06


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 13 sie 2020, o 09:34 
Offline
Użytkownik

Dołączył(a): 05 sty 2015
Posty: 393
Lokalizacja: Mielec
Pomógł: 14

Witam wszystkich.

Borykam się z tematem głównie chodzi mi o zmianę Parity i Bits Stop w czasie trwania programu, zmiana samych rejestrow nie wystarcza, reset flagi error też nie pomaga, trzeba coś jeszcze zmienić?
Nie próbowałem jaszcze tylko z wyłączonymi przerwaniami globalnymi bo sen już mnie dziś zmorzył.

A może coś jeszcze potrzeba?

Dzieki za pomoc.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 sie 2020, o 10:24 
Offline
Moderator
Avatar użytkownika

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

Nic nie potrzeba - wystarczy zmienić ustawienia w rejestrach i już

_________________
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: 13 sie 2020, o 14:26 
Offline
Użytkownik

Dołączył(a): 05 sty 2015
Posty: 393
Lokalizacja: Mielec
Pomógł: 14

Mirku robiłem tak I kurza twarz nie robi u mnie,
Dałem nawet delay coby uart niby za szybko nic nie wysłał, choć wiem że to nie ma znaczenia bo cykle muszą się zakończyć, rejestry przestawić, aby program poszedł dalej.

Mirku jeszcze jedno przy okazji, w libsie uart 2.0 AT obliczasz CZAS (us) jaki potrzeba na wysłanie bitu ale nie widze odniesienia, Poco to?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 sie 2020, o 20:07 
Offline
Moderator
Avatar użytkownika

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

Szofer napisał(a):
Mirku robiłem tak I kurza twarz nie robi u mnie,
Dałem nawet delay coby uart niby za szybko nic nie wysłał, choć wiem że to nie ma znaczenia bo cykle muszą się zakończyć, rejestry przestawić, aby program poszedł dalej.

Zrób pan jakiś prosty test, wyizoluj problem. Toż można zrobić nowy MINI projekt i na nim przetestować - a jak znam życie to pewnie działasz na jakimś swoim całym projekcie i nie za bardzo nawet wiesz jak to przetestować albo źle testujesz .... toż to mega łatwo sprawdzić ... A jak już będziesz miał ten nowy projekt to i łatwiej ci będzie pokazać kod i jak to testujesz żeby można było pomóc - bo tak? to jak zwykle tylko gdybanie i wróżenie niestety.

Szofer napisał(a):
Mirku jeszcze jedno przy okazji, w libsie uart 2.0 AT obliczasz CZAS (us) jaki potrzeba na wysłanie bitu ale nie widze odniesienia, Poco to?

Jak to po co ? do transmisji binarnej i to jest mega podstawowy parametr dzięki któremu można śmigać z binarką. To dzięki temu można ustalać sobie precyzyjny odstęp między ramkami - czasy o wielkości np 1,2,3 lub 4 bajtów - przecież w zależności od użytej prędkości baudrate - będą one zawsze inne.

Piszesz, że nie widzisz odniesienia - ale nie za bardzo czuję o jakie odniesienie tobie chodzi.

_________________
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: 13 sie 2020, o 23:18 
Offline
Użytkownik

Dołączył(a): 05 sty 2015
Posty: 393
Lokalizacja: Mielec
Pomógł: 14

Chodziło mi o ten zapis

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


Ale już wyjaśniłeś, odniesienie nazwy UART_BYTE_TIME a dokładniej gdzie się ten czas wyliczony zapisuje, jako stała dosłowna?
taka pętelka do wysylania komend AT dla kazdego baud rate z tablicy, zmiana baud rate dziala, ale reszte ustawien bits stop i parity juz nie,

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


sprawdzam to poprzez podpięcie przejściówki USB UART na FTDI ustawiając jakiś baud rate w putty stop bit i parity np na 19200,1,Even i z atmegi wysylam ASCII tak jak widać w kodzie,
delay dane tylko do testow,

przy kazdym baud rate z 1 stop bits i parity none działa dobrze.

pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sie 2020, o 06:04 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2587
Pomógł: 128

Podepnij wyjście pod dowolny logic analizer i wtedy obserwuj czy się zmienia transmisja.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sie 2020, o 22:33 
Offline
Użytkownik

Dołączył(a): 05 sty 2015
Posty: 393
Lokalizacja: Mielec
Pomógł: 14

Witam

Temat rozwiązany, ale po kolei,
zapiąłem analizator do testów i USART wysyłał dane z jakimś baud rate, nie analizowałem jakim bo nie było to dla mnie istotne,
celem była właściwa prędkość z właściwymi ustawieniami, może problem jest gdzieś indziej bo do końca nie wiem czy atmega328p smd
jest oryginalna, wygląda na oryginał, wszystko działa jak trzeba, ale...

przepisanie 7 bitów rejestru UCSR0C przy każdej zmianie Stop Bit i Parity pomogło i działa, cel osiągnięty.

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


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

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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO