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



Teraz jest 28 mar 2024, o 10:17


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 15 paź 2014, o 00:22 
Offline
Użytkownik

Dołączył(a): 30 sie 2014
Posty: 170
Pomógł: 2

Jak wyglada adres rejestru np. PORTD.DIR? Summary pidake tylko dla dir + "adres".



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 paź 2014, o 00:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 kwi 2013
Posty: 418
Lokalizacja: Rzeszów
Pomógł: 102

Nie napisałeś o jaki konkretnie model chodzi, ale dla atxmega128a3u adres rejestru kierunku dla PORTD to 0x0660.
Jest to zerowe przesunięcie względem adresu bazowego portu D.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 paź 2014, o 04:56 
Offline
Użytkownik

Dołączył(a): 30 sie 2014
Posty: 170
Pomógł: 2

Czy moge prosic o rozpisanie, bo kompletnie nie rozumiem. Wiem jak to wyglada w megach ale tu sie pogubilem. Model dowolny, chodzi mi o sama zasade.

Czy chodzi o to ze nie podali adresu bezposredniego a "przesuniecie" wzgledem rejestru PORTD? Dodaje sie po prostu dwie wartosci hex?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 paź 2014, o 13:01 
Offline
Użytkownik

Dołączył(a): 10 sie 2013
Posty: 66
Lokalizacja: Szczecin
Pomógł: 7

doman napisał(a):
Czy chodzi o to ze nie podali adresu bezposredniego a "przesuniecie" wzgledem rejestru PORTD? Dodaje sie po prostu dwie wartosci hex?

Wszystko podali. Lookasz w PDFa danej XMEGI w końcowe rozdziały i szukasz "Peripheral Module Address Map" i w kolumnie "Base Adres" znajduje się bezpośredni adres do modułu, którego szukasz. Tu modułem nazwiemy np PORTD. Rejestry modułu ułożone są w strukturę, trochę podobnie jak rejestry portów w ATmegach.
I tak jak piszesz - dodajesz dwie wartości hex (adres bezpośredni modułu + ofset rejestru w danym module).


Autor postu otrzymał pochwałę

_________________
Build:succeeded or up-to-date, 0 failed, 0 skipped



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 paź 2014, o 13:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 kwi 2013
Posty: 418
Lokalizacja: Rzeszów
Pomógł: 102

Każdy port jest deklarowany jako struktura typu PORT_t:

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

Wynikają stąd odpowiednie przesunięcia względem adresu bazowego portu, które są zgodne ze sprzętowym ich umiejscowieniem w pamięci.

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

Te fragmenty kodu, które przytoczyłem pochodzą z pliku "iox128a3u.h".
Na przykład chcąc poznać adres rejestru wyjściowego portu F (PORTF.OUT), będzie to 0x06A0 + 4, gdzie czwórka jest kolejnym numerem pola w strukturze PORT_t (licząc od 0).

Myślę, że lepiej wytłumaczy to nota aplikacyjna jednego z układów xmega.
Strona 149: http://www.image.micros.com.pl/_dane_te ... a3b-au.pdf


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

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