<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=49&amp;t=8828&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-10-15T13:02:06+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=49&amp;t=8828&amp;mode</id>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2014-10-15T13:02:06+01:00</updated>
<published>2014-10-15T13:02:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8828&amp;p=99093#p99093</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8828&amp;p=99093#p99093"/>
<title type="html"><![CDATA[Re: xmega adres rejestru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8828&amp;p=99093#p99093"><![CDATA[
Każdy port jest deklarowany jako struktura typu PORT_t:<br /><br />[syntax=c]/* I/O Ports */<br />typedef struct PORT_struct<br />{<br />    register8_t DIR;  /* I/O Port Data Direction */<br />    register8_t DIRSET;  /* I/O Port Data Direction Set */<br />    register8_t DIRCLR;  /* I/O Port Data Direction Clear */<br />    register8_t DIRTGL;  /* I/O Port Data Direction Toggle */<br />    register8_t OUT;  /* I/O Port Output */<br />    register8_t OUTSET;  /* I/O Port Output Set */<br />    register8_t OUTCLR;  /* I/O Port Output Clear */<br />    register8_t OUTTGL;  /* I/O Port Output Toggle */<br />    register8_t IN;  /* I/O port Input */<br />    register8_t INTCTRL;  /* Interrupt Control Register */<br />    register8_t INT0MASK;  /* Port Interrupt 0 Mask */<br />    register8_t INT1MASK;  /* Port Interrupt 1 Mask */<br />    register8_t INTFLAGS;  /* Interrupt Flag Register */<br />    register8_t reserved_0x0D;<br />    register8_t REMAP;  /* I/O Port Pin Remap Register */<br />    register8_t reserved_0x0F;<br />    register8_t PIN0CTRL;  /* Pin 0 Control Register */<br />    register8_t PIN1CTRL;  /* Pin 1 Control Register */<br />    register8_t PIN2CTRL;  /* Pin 2 Control Register */<br />    register8_t PIN3CTRL;  /* Pin 3 Control Register */<br />    register8_t PIN4CTRL;  /* Pin 4 Control Register */<br />    register8_t PIN5CTRL;  /* Pin 5 Control Register */<br />    register8_t PIN6CTRL;  /* Pin 6 Control Register */<br />    register8_t PIN7CTRL;  /* Pin 7 Control Register */<br />} PORT_t;[/syntax]<br />Wynikają stąd odpowiednie przesunięcia względem adresu bazowego portu, które są zgodne ze sprzętowym ich umiejscowieniem w pamięci. <br /><br />[syntax=c]#define PORTA    (*(PORT_t *) 0x0600)  /* I/O Ports */<br />#define PORTB    (*(PORT_t *) 0x0620)  /* I/O Ports */<br />#define PORTC    (*(PORT_t *) 0x0640)  /* I/O Ports */<br />#define PORTD    (*(PORT_t *) 0x0660)  /* I/O Ports */<br />#define PORTE    (*(PORT_t *) 0x0680)  /* I/O Ports */<br />#define PORTF    (*(PORT_t *) 0x06A0)  /* I/O Ports */<br />#define PORTR    (*(PORT_t *) 0x07E0)  /* I/O Ports */[/syntax]<br />Te fragmenty kodu, które przytoczyłem pochodzą z pliku &quot;iox128a3u.h&quot;.<br />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).<br /><br />Myślę, że lepiej wytłumaczy to nota aplikacyjna jednego z układów xmega.<br />Strona 149: <!-- m --><a class="postlink" href="http://www.image.micros.com.pl/_dane_techniczne_auto/atmx256a3b-au.pdf" >http://www.image.micros.com.pl/_dane_te ... a3b-au.pdf</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1183">atmel</a> — 15 paź 2014, o 13:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[daro2020]]></name></author>
<updated>2014-10-15T13:01:59+01:00</updated>
<published>2014-10-15T13:01:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8828&amp;p=99092#p99092</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8828&amp;p=99092#p99092"/>
<title type="html"><![CDATA[Re: xmega adres rejestru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8828&amp;p=99092#p99092"><![CDATA[
<div class="quotetitle">doman napisał(a):</div><div class="quotecontent"><br />Czy chodzi o to ze nie podali adresu bezposredniego a &quot;przesuniecie&quot; wzgledem rejestru PORTD? Dodaje sie po prostu dwie wartosci hex?<br /></div><br />Wszystko podali. Lookasz w PDFa danej XMEGI w końcowe rozdziały i szukasz &quot;Peripheral Module Address Map&quot; i w kolumnie &quot;Base Adres&quot; 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.<br />I tak jak piszesz - dodajesz dwie wartości hex (adres bezpośredni modułu + ofset rejestru w danym module).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1608">daro2020</a> — 15 paź 2014, o 13:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[doman]]></name></author>
<updated>2014-10-15T04:56:55+01:00</updated>
<published>2014-10-15T04:56:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8828&amp;p=99057#p99057</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8828&amp;p=99057#p99057"/>
<title type="html"><![CDATA[Re: xmega adres rejestru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8828&amp;p=99057#p99057"><![CDATA[
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.<br /><br />Czy chodzi o to ze nie podali adresu bezposredniego a &quot;przesuniecie&quot; wzgledem rejestru PORTD? Dodaje sie po prostu dwie wartosci hex?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5642">doman</a> — 15 paź 2014, o 04:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2014-10-15T00:39:07+01:00</updated>
<published>2014-10-15T00:39:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8828&amp;p=99056#p99056</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8828&amp;p=99056#p99056"/>
<title type="html"><![CDATA[Re: xmega adres rejestru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8828&amp;p=99056#p99056"><![CDATA[
Nie napisałeś o jaki konkretnie model chodzi, ale dla atxmega128a3u adres rejestru kierunku dla PORTD to 0x0660.<br />Jest to zerowe przesunięcie względem adresu bazowego portu D.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1183">atmel</a> — 15 paź 2014, o 00:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[doman]]></name></author>
<updated>2014-10-15T00:22:57+01:00</updated>
<published>2014-10-15T00:22:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8828&amp;p=99055#p99055</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8828&amp;p=99055#p99055"/>
<title type="html"><![CDATA[xmega adres rejestru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8828&amp;p=99055#p99055"><![CDATA[
Jak wyglada adres rejestru np. PORTD.DIR? Summary pidake tylko dla dir + &quot;adres&quot;.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5642">doman</a> — 15 paź 2014, o 00:22</p><hr />
]]></content>
</entry>
</feed>