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



Teraz jest 27 lis 2024, o 21:24


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 51 ]  Przejdź na stronę 1, 2  Następna strona
Autor Wiadomość
PostNapisane: 1 sty 2013, o 03:45 
Offline
Moderator
Avatar użytkownika

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

Witam, chciałbym wam przedstawić małą aktualizację do książek jeśli chodzi o obliczanie UBRR

Obrazek

Myślę, że warto się z tym zapoznać, szczególnie że poruszane są jeszcze inne drobne zagadnienia a temat jest generalnie dosyć istotny.

_________________
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: 1 sty 2013, o 03:49 

Pomógł: 0

Ooo widzę, że nie tylko, ja nie mogę spać ;).

Dziękuje za aktualizacje :).



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sty 2013, o 03:50 
Offline
Moderator
Avatar użytkownika

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

noo niestety ciśnienie mi podniósł śpec elektrodowy ;) ... ale przy tej okazji ciach i nowy mini poradnik.

_________________
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: 1 sty 2013, o 12:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8587
Pomógł: 337

żałosne to jest jednak... szkoda, że tylko potrafi się zasłaniać nickiem ... brak cywilnej odwagi żeby się przyznać
do siebie samego .... to sie nazywa super gościu .... echhh

nie martw sie Mirku widać że to dziecko neostrady wychowane przez zrywającego neta i półbogów z elektrody ...

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sty 2013, o 12:15 
Offline
Moderator
Avatar użytkownika

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

SunRiver napisał(a):
.... widać że to dziecko neostrady wychowane przez zrywającego neta i półbogów z elektrody ...


Sun jak ja uwielbiam twoje teksty ;) hahahah normalnie jesteś świetny - i wcale ci teraz nie słodzę ;) zresztą wspominałem już o tym po twoim opowiadaniu na temat naszych Lochów ;)

_________________
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: 1 sty 2013, o 13:33 
Offline
Użytkownik

Dołączył(a): 10 sie 2012
Posty: 91
Lokalizacja: Wąbrzeźno
Pomógł: 0

Ja nie wiem co wy robicie, że tak spędzacie sylwestra powiniście go spędzić w gronie programistów :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sty 2013, o 13:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2012
Posty: 778
Pomógł: 9

lukas12 napisał(a):
Ja nie wiem co wy robicie, że tak spędzacie sylwestra powiniście go spędzić w gronie programistów :D



W następny sylwester zbierzemy się i będzie impra tylko dla programistów ;)
Tylko żeby nam atmeg nie zabrakło :lol:

Mirek jak ty potrafisz tak szybko nakręcić tyle poradników które są nie do zastąpienia :?:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sty 2013, o 13:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8587
Pomógł: 337

mirek przyniesie przekąski .... M644 w zalewie octowej :P

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sty 2013, o 14:15 
Offline
Moderator
Avatar użytkownika

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

SunRiver napisał(a):
mirek przyniesie przekąski .... M644 w zalewie octowej :P


hahahahaha ;) A Sun przyniesie jakieś PIC'ki na zagrychę ;) mniam ;)

_________________
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: 1 sty 2013, o 14:16 
Offline
Użytkownik

Dołączył(a): 10 sie 2012
Posty: 91
Lokalizacja: Wąbrzeźno
Pomógł: 0

Za rok jeszcze nie będę mieć prawka żeby do Szczecina skoczyć, za 2 lata może dam radę :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sty 2013, o 14:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8587
Pomógł: 337

mirekk36 napisał(a):

hahahahaha ;) A Sun przyniesie jakieś PIC'ki na zagrychę ;) mniam ;)


hehehe no ba ... pieczone z kremikiem :P i parę MSPków z chrzanikiem

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sty 2013, o 18:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 21 gru 2012
Posty: 161
Pomógł: 9

Ale po co się tak męczyć? Można skorzystać z fajnego narzędzia liczącego BAUD i error. Do tego dużo ciekawych funkcji związanych z Timerami i inne.
http://www.b9.com/elect/avr/kavrcalc/
Polecam przetestować :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sty 2013, o 19:40 
Offline
Użytkownik

Dołączył(a): 20 mar 2012
Posty: 159
Pomógł: 6

Ale dzięki temu wzorowi bez różnicy jakie ustawisz taktowanie procesora w Eclipse czy prędkość BaudRate to automatycznie wyliczy ci nowe wartości tych rejestrów,a tak musisz zawsze pamiętać o zmianie tych parametrów.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sty 2013, o 19:46 
Offline
Moderator
Avatar użytkownika

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

Domanoid napisał(a):
Ale po co się tak męczyć? Można skorzystać z fajnego narzędzia liczącego BAUD i error. Do tego dużo ciekawych funkcji związanych z Timerami i inne.
http://www.b9.com/elect/avr/kavrcalc/
Polecam przetestować :)


Tak tylko kolega chyba albo nie zrozumiał IDEI takiego podejścia do obliczania UBRR, albo .... po prostu jeszcze nie rozumiesz przydatności preprocesora lub w ogóle nie wiesz o co w tym chodzi ... też tak może być i broń boże nie chcę ci tu przygadać a coś ew wyjaśnić.

Owszem takie programiki jak pokazujesz są fajne, jest ich dziesiątki i robią to na różne sposoby ale ....

ale nie powiesz mi chyba, że ty pisząc swój program z transmisją RS232 obliczasz sobie UBRR tym sposobem a potem skrzętnie w kodzie wpisujesz tą stałą wyliczoną wartość np:

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


bo takie coś, jak już, to zwykle widać w setkach programów całkowicie początkujących osób, które nie rozumieją jeszcze że UART to jedno z PODSTAWOWYCH narzędzi, że często w trakcie pracy zmienia się np prędkość, że WARTO do tego wykorzystać to co daje ci PREPROCESOR, dzięki czemu w każdym programie piszesz sobie

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


czy tam jaką prędkość chcesz - a reszta najczęściej wyliczana jest na poziomie preprocesora. Tu polecam doczytać to w niebieskiej książce - mam nadzieję, że już dotarła ;) .... tzn o preprocesorze.

Ale mnóstwo jest także sytuacji gdy potrzeba w kodzie np przekalkulować tą wartość - przy czym wtedy zdecydowanie lepszy jest ten pierwszy wzór.

Reasumując - taki sposób - jak niżej - jeszcze raz go przypomnę:

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


nie tylko, że nie należy do dobrych technik programowania to powiedziałbym, że wygląda wręcz tragicznie dla oka i mam nadzieję, że również ciebie wkrótce będzie raził w oczy - zobaczysz - jak tylko dłużej liźniesz języka C ;)

ostatecznie - to powiedz mi czy z tego kodu: uart_init( 54 ); wiesz jaką mam ustawioną prędkość BAUD RATE w moim programie ??? czy nie ?? ;) ..... chyba nie .... więc widzisz takim prostym pytaniem mam nadzieję, że dobrze ci to pokazuję. A gdy w moim kodzie zobaczysz: #define BAUD 19200 .... to co ??? NAGLE wszystko jasne - prawda ?

_________________
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: 10 sty 2013, o 10:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 21 gru 2012
Posty: 161
Pomógł: 9

Dziękuję bardzo za jakże wyczerpującą odpowiedź.
Książka dotarła, właśnie skończyłem przerabiać całą teorię. Czyli zabieram się za przykłady praktyczne.
I już widzę jak dużym błędem było uczenie się bez takiej podpory jak ta książka. Programy pisałem sam lub z niewielką pomocą internetu. Teraz widzę jak dużo złych nawyków muszę się oduczyć, gdzie są braki i jak to powinno wyglądać. Największym osiągnięciem było uruchomienie wyświetlacza z radia samochodowego sterowanego przez SPI:
http://www.elektroda.pl/rtvforum/viewtopic.php?t=2318243
I teraz jak tak patrze na ten kod... Zrobiłbym to o wiele inaczej.
#define jest niesamowitym ułatwieniem, od wczoraj stosowanym przeze mnie ciągle ;)

Pozdrawiam

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sty 2013, o 12:00 
Offline
Moderator
Avatar użytkownika

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

Domanoid --> cieszę się w takim razie, że mogłem chociaż troszeczkę pomóc w tym zakresie. Dlatego też mam prośbę maleńką - aby gdzieś tam czasem znajomym tym w realu i w virtualu wspomnieć o tym co robię. Jeśli mogę prosić oczywiście.

_________________
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: 10 sty 2013, o 12:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 21 gru 2012
Posty: 161
Pomógł: 9

Oczywiście, że naprowadzam na firmę Atnel oraz forum.
Na razie najciekawszą osobą tutaj sprowadzoną jest pu5zek (puszek - czy jakoś tak).
Także w tym zakresie nie trzeba prosić ;)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 sty 2013, o 07:17 
Offline
Użytkownik

Dołączył(a): 15 gru 2012
Posty: 106
Pomógł: 0

U mnie nowy wzór nie działa i najgorsze jest to że nie wiem dlaczego tak się dzieje.

Dla tych samych wartości F_CPU=8000000 i UART_BAUD=19200 otrzymuje następujące wyniki w zależności od zastosowanego wzoru:

stary wzór F_CPU/16/UART_BAUD-1 -> wynik 25 czyli OK
wzór kolegi michalko12 ( F_CPU / 16.0 / UART_BAUD - 0.5 ) -> wynik 25 tu też OK
nowy wzór ((F_CPU+UART_BAUD*8)/(16*UART_BAUD)-1) -> wynik -1 ?!?!

Wyniki działania preprocesora wyświetliłem na LCD podłączonym po atmege

Atmega 328p, eclpise juno + Atmel Toolchain 3.4

podpowiedzcie proszę gdzie robię błąd? :?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 sty 2013, o 11:16 
Offline
Moderator
Avatar użytkownika

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

Maureli napisał(a):
podpowiedzcie proszę gdzie robię błąd? :?


Spróbuj tak:

( ( FOSC + BAUD * 8UL ) / (16UL * BAUD) -1 )

------------------------ [ Dodano po: dzisiaj, o 00:33 ]

W razie czego na blogu też już poprawiłem i dodałem to UL (czyli rzutowanie jawne na Unsigned Long)

_________________
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: 18 sty 2013, o 20:42 
Offline
Użytkownik

Dołączył(a): 15 gru 2012
Posty: 106
Pomógł: 0

działa :) :) :)

wielkie dzięki Mirek :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 mar 2013, o 12:56 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 maja 2012
Posty: 233
Lokalizacja: Gdynia
Pomógł: 15

Nie wiem czy już było ale odkryłem, że w avrlibc znajduje się plik nagłówkowy <util/setbaud.h> pozwalający obliczyć UBRR. Dodatkowo definiując BAUD_TOL możemy określić maksymalny błąd transmisji który standardowo wynosi 2%. Jeśli dla zadanej prędkości nie uda się zmieścić w zakresie oczekiwanego błędu otrzymamy warninga. Plik setbaud.h includujemy po zdefiniowaniu BAUD. To tak 'nawiasem', jak było to proszę wywalić.

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: 20 mar 2013, o 12:59 
Offline
Moderator
Avatar użytkownika

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

nixie - nie nie było o tym, ja o tym nie wspominałem więc bardzo cenna wskazówka. To właśnie również dzięki takim ludziom jak Ty - to forum fajnie się rozwija ;)

_________________
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: 24 mar 2013, o 20:24 
Offline
Użytkownik

Dołączył(a): 18 paź 2012
Posty: 244
Pomógł: 2

Hmm mam takie pytanko.

W moim przypadku to chyba stary wzór się bardziej sprawdzi
No bo spójrz, mam zewn.rezonator 16MHz i szybkość 38,4k. Idealną wartością jest więc 25.

Licząc ze starego wzoru ((tj. F_CPU/16/UART_BAUD-1)), wychodzi mi 25,04 czyli zaokrągli do 25.

Licząc ze wzoru od michalko12 ( FOSC / 16.0 / BAUD - 0.5 ), też wychodzi mi 25,54. Więc zaokrągli do 26.

A licząc wg Twojego wzoru (( ( FOSC + (16 * BAUD) / 2 ) / (16 * BAUD) -1 )), wychodzi mi 26,54 więc zaokrągli nawet do 27.



Ostatnio edytowano 25 mar 2013, o 17:38 przez kiclaw, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2013, o 16:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 maja 2012
Posty: 233
Lokalizacja: Gdynia
Pomógł: 15

Nie

kiclaw napisał(a):
A licząc wg Twojego wzoru (( ( FOSC + (16 * BAUD) / 2 ) / (16 * BAUD) -1 )), wychodzi mi 26,54 więc zaokrągli nawet do 27.


tylko:

Cytuj:
( FOSC + BAUD * 8UL ) / (16UL * BAUD) -1


http://mirekk36.blogspot.com/2013/01/rs ... trick.html



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 mar 2013, o 13:47 
Offline
Moderator
Avatar użytkownika

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

kiclaw napisał(a):
Hmm mam takie pytanko.

W moim przypadku to chyba stary wzór się bardziej sprawdzi
No bo spójrz, mam zewn.rezonator 16MHz i szybkość 38,4k. Idealną wartością jest więc 25.

Licząc ze starego wzoru ((tj. F_CPU/16/UART_BAUD-1)), wychodzi mi 25,04 czyli zaokrągli do 25.

Licząc ze wzoru od michalko12 ( FOSC / 16.0 / BAUD - 0.5 ), też wychodzi mi 25,54. Więc zaokrągli do 26.

A licząc wg Twojego wzoru (( ( FOSC + (16 * BAUD) / 2 ) / (16 * BAUD) -1 )), wychodzi mi 26,54 więc zaokrągli nawet do 27.


Bardzo proszę zajrzyj koniecznie do artykułu na moim blogu:

http://mirekk36.blogspot.com/2013/01/rs ... trick.html

jeszcze raz - na sam dół artykułu ponieważ dodałem ważny UPDATE w związku z takimi pytaniami jak twoje. A że dostaję je ostatnio często to uznałem że warto żebym jeszcze uzupełnił info i solidnie udokumentował dlaczego podane wzory są OK i jak się o tym przekonać - sprawdź proszę ok ?

_________________
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: 2 kwi 2013, o 23:37 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 30 mar 2013
Posty: 4
Lokalizacja: Nowy Targ
Pomógł: 0

mirekk36 napisał(a):
Maureli napisał(a):
podpowiedzcie proszę gdzie robię błąd? :?


Spróbuj tak:

( ( FOSC + BAUD * 8UL ) / (16UL * BAUD) -1 )

------------------------ [ Dodano po: dzisiaj, o 00:33 ]

W razie czego na blogu też już poprawiłem i dodałem to UL (czyli rzutowanie jawne na Unsigned Long)


Cześć wszystkim,
jest to mój pierwszy raz :oops: :lol: ale na tym forum więc przedstawię się.
Mam na imię Arkadiusz i mieszkam w rejonie polski gdzie mam piękny widok na panoramę Tatr (jak nie ma mgły, zawieruchy, deszczu, itp. Poza tym mam 8 m-cy zimy ale za to potem samo piękne lato :D ). Na co dzień coś tam sobie składam w SQL wykorzystując VB.NET a moimi wypocinami racze uszczęśliwiać inny współpracowników.

Obecnie zabieram się do nauki AVR posługując się "początkowymi podstawami" C ale mam to do siebie, że jak czytam książkę "C" i jest tam coś wspomniane co będzie później rozwinięte to nie omieszkam zaglądać tam i o tym poczytać. Próbuję zgłębić otrzymaną informację aby stała się moją wiedzą i tak mam pytanie odnośnie zmiany bitu U2X0 (ok wiem że 1 << U2X0) ale może ktoś tą myśl rozwinie. Podaję parę linijek przykładu jak to wygląda, czy tak jest OK (przepisałem z noty + dodałem U2X0):

void USART_Init( unsigned int ubrr) {
/*Set baud rate */
UBRR0H = (unsigned char)(ubrr>>8);
UBRR0L = (unsigned char)ubrr;

UCSR0A = (1<<U2X0) /* dodany wiersz, logicznie myśląc przed UCSR0C i B ale chyba można w dowolnym miejscu poniżej */

/*Enable receiver and transmitter */
UCSR0B = (1<<RXEN0)|(1<<TXEN0);
/* Set frame format: 8data, 2stop bit */
UCSR0C = (1<<USBS0)|(3<<UCSZ00);
}

i napisać dokładnie coś o tym, kiedy to się zmienia (dokładnie chodzi mi o U2X0). O ile się nie mylę to aby zwiększyć prędkość transmisji, więc dlaczego większość nie zmienia tego bitu tylko używa standardowego 0. Ponieważ zgodnie z notą dla ATmega328 można wykorzystując kwarc 16MHz przesyłać z prędkością 1Mbps przy 0% błędów.

A jeżeli można dowolnie tym bitem sobie zmieniać to może i w powyższym zacytowanym wzorze uzupełnić tak aby zamiast 8UL i 16UL przy U2X0=0 wyliczać odpowiednio 4UL i 8UL przy U2X0=1 ???
Ponieważ jak mamy zmienne Fosc, BAUD to i U2X0 dodać ale tak to zmajstrować aby podając 1 lub 0 uwzględniał to wzór, ponieważ nie ładnie to by wyglądało tak: U2X0 = 1 lub U2X0 = 2 =>

( ( FOSC + BAUD * ( 4 * U2X0 ) UL ) / ( ( 8 * U2X0 ) UL * BAUD) -1 )

więc może tak przy założeniach U2X0 = 0 lub U2X0 = 1, ale czy staje się on czytelniejszym ? ale mamy już "chyba wszytko ujęte":

( ( FOSC + BAUD * ( 4 + ( 4 * U2X0) ) UL ) / ( ( 8 + (8 * U2X0 ) ) UL * BAUD) -1 )

Wybaczcie o ile coś namieszałem w tym moim rozumowaniu ale człek całe życie się uczy ;)


------------------------ [ Dodano po: 46 minutach ]

Ajj pomyliłem się z tego wszystkiego (chyba późna pora) bo ustawiając U2X0 = 1 powinien chodzić szybciej a tu jest na opak. Trzeba to jeszcze poprawić !!!

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 kwi 2013, o 07:19 
Offline
Moderator
Avatar użytkownika

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

Witamy Arcadio, a jeśli chodzi o bit U2X to nie jest on do zwiększania czy zmniejszania prędkości - chociaż tak by się wydawać mogło a bardziej do zwiększenia elastyczności doboru prędkości baudrate dla danego taktowania ale ta możliwość czyli wybór U2X=1 jest niestety kosztem czegoś .... przez co jak zauważyłeś większość jednak tego nie stosuje ;) i słusznie zauważyłeś. Jak doczytasz dokładnie w nocie PDF to działanie U2X=1 związane jest PRZEDE wszystkim ze zmianą rozdzielczości próbkowania sygnału, dokładniej mówiąc z jej zmniejszeniem - przez co są te nieco większe możliwości ale jednocześnie narażamy się na większą możliwość błędów podczas transmisji a dokładniej mówiąc możliwości iż błędnie zostaną zinterpretowane stany poszczególnych bitów. Czasem gdy transmisja RS232 nie ma najwyższej wagi, i przy porządnym taktowaniu np z rezonatora kwarcowego - można sobie na taki zabieg pozwalać. W innych wypadkach albo najlepiej zawsze korzystać z U2X=0. Tak to wygląda mniej więcej.

------------------------ [ Dodano po: wczoraj, o 23:20 ]

Przy okazji bardzo fajny cytat w twoim podpisie ;)

_________________
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: 3 kwi 2013, o 17:11 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 30 mar 2013
Posty: 4
Lokalizacja: Nowy Targ
Pomógł: 0

Dzięki Mirek za info.
Nie mniej jednak mam jakiś niedosyt ale zaczekam aż coś sobie wymyślę i aby to naocznie sprawdzić co daje zmiana U2X0 i jakie to generuje błędy ale wcześniej jeszcze dużo nauki przede mną i pewnie wybiegłem troszkę do przodu ;)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 kwi 2013, o 19:01 
Offline
Moderator
Avatar użytkownika

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

No i właśnie o to chodzi Arcadio - nie ma to jak sprawdzić na własnym organiźmie ;) aczkolwiek pewnie się zdziwisz w pierwszych testach - że niby przy U2X=1 także wszystko działa ;) .... niestety jeśli zaczniesz wszystkie projekty na tym robić - mające działać na długo i na poważnie, na RS485 itp .... to sam powoli zaczniesz dostrzegać - że tu nie chodzi o to że w testach zaraz po kilku próbach miałoby wyjść że jest BEEE .... no ale ... to właśnie jest kwestia prób i własnych doświadczeń ;)

_________________
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: 2 gru 2013, o 20:20 
Offline
Nowy

Dołączył(a): 29 lis 2013
Posty: 11
Pomógł: 0

Witam,

Odświeżę trochę temat:

Używam Atmegi328P-PU, podłączyłem kwarc 8Mhz.
Fusebity ustawiłem: efuse = 07, hfuse= D9, lfuse = 5D czyli odpowiadający mu Obrazek

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


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


Wysyłam dane tzn. wartości z czujnika ciśnienia.
Wynik:
Obrazek


Co robię źle?



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: 51 ]  Przejdź na stronę 1, 2  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

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