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



Teraz jest 19 kwi 2024, o 17:43


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 
Autor Wiadomość
PostNapisane: 26 lip 2017, o 16:57 
Offline
Nowy

Dołączył(a): 02 kwi 2015
Posty: 21
Pomógł: 0

Witam,

Mam takie pytanie. Robiąc dokładnie tak jak Pan Mirek pokazuje w poradniku https://youtu.be/a0IOBtia8DY?t=124 wszystko kompiluje się bardzo ładnie :D . Jak robię zgodnie z notą to nie działa. :?:

Przechodzę do problemu. Otwieram notę z programu MkCLIPSE i znajduję taki fragment kodu (strona 238) dla przesłania ramki w formacie 8N1 :

void USART_Transmit( unsigned char data )
{
/* Wait for empty transmit buffer */
while ( !( UCSR0A & (1<<UDRE)) )
;
/* Put data into buffer, sends the data */
UDR0 = data;
}
To biorę na "żywciora" i wklejam do MkCLIPS. Tutaj pojawia się problem. Bo rejestr UDRE w dokumentacji nie ma dopisku zero. W poradniku Pan Mirek dopisuje zero i wtedy kompilacja działa. W internecie wyszukałem inną notę http://www.atmel.com/images/Atmel-8271- ... mplete.pdf strona 177 i tam jest :

/* Wait for empty transmit buffer */
while ( !( UCSRnA & (1<<UDREn)) )
;
/* Put data into buffer, sends the data */
UDRn = data;

Domyślam się że za literę "n" trzeba dać jakąś cyfrę. Teraz moje pytanie:

1. Dlaczego w nocie która otwiera się z MkCLIPSE nie ma tego zera dla rejestru UDRE, czy w nocie jest może błąd?
2. Czy dobrze myślę ze za te literki trzeba wstawić jakąś cyfrę.
3. Jeśli tak to czy można jakieś inne cyfry niż zero dawać i w jakim zakresie?
4. O czym mówią te literki n.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 lip 2017, o 17:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1020
Lokalizacja: Trójmiasto
Pomógł: 188

Cytuj:
1. Dlaczego w nocie która otwiera się z MkCLIPSE nie ma tego zera dla rejestru UDRE, czy w nocie jest może błąd?
W notach jest wiele niewielkich błędów, a mam wrażenie że odkąd są sygnowane przez Microchipa to niestety jest ich więcej i jest większy nieład (np w starych notach timer0 zawsze był opisywany jako pierwszy, a w nowych notach już myślałem że o nim zapomnieli a tu niespodzianka - timer0 opisany jako ostatni...)

dzajo16 napisał(a):
2. Czy dobrze myślę ze za te literki trzeba wstawić jakąś cyfrę.
Nie zawsze - najlepiej sobie sprawdzać w eclipse w AVR Davice Explorer bądź korzystać z podpowiedzi aclipse-a, lub (tak jak w przypadku gdy korzystamy z MKClipsa) to trzeba użyć odrobiny logiki - noty zapewne są tworzone poprzez wklejanie gotowych bloków opisowych i często są właśnie błędy wynikające z tego że blok został wklejony i nie poprawiono końcówek nazw rejestrów czyli np UDRE czy UDRE0.
Jednakże z całą pewnością można powiedzieć że noty do AVR-ów mimo tych błędów są bardzo dobrze opracowane.

dzajo16 napisał(a):
3. Jeśli tak to czy można jakieś inne cyfry niż zero dawać i w jakim zakresie?
4. O czym mówią te literki n.
Niektóre procki jak atmega128 mają 2 UARTY więc cyferki są po to by je rozróżnić.


Autor postu otrzymał pochwałę


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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Bing [Bot] i 4 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