<?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=4&amp;t=5239&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-12-26T13:50:18+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=5239&amp;mode</id>
<entry>
<author><name><![CDATA[DominikN]]></name></author>
<updated>2013-12-26T13:50:18+01:00</updated>
<published>2013-12-26T13:50:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5239&amp;p=62345#p62345</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5239&amp;p=62345#p62345"/>
<title type="html"><![CDATA[Re: definicje rejestrów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5239&amp;p=62345#p62345"><![CDATA[
jak to co ? <br /><br />opis z wikipedi <br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Dereferencja – zamiana referencji lub wskaźnika (identyfikatora obiektu lub adresu zmiennej) na wartość przechowywaną wewnątrz tego obiektu lub tej zmiennej. W większości języków programowania operator dereferencji nie występuje jawnie, lecz jest implikowany przez inne operatory, np. <span style="color: #BF0000"><strong>w wyrażeniu X+1</strong></span> referencja do zmiennej X zostaje automatycznie zamieniona na wartość przechowywaną wewnątrz tej zmiennej z powodu kontekstu (którym jest operator +). W programowaniu obiektowym pojęcie dereferencji wymaga zdefiniowania pojęcia wartości obiektu, co rodzi pewne problemy semantyczne.<br /></div><br /><br />makro to daje że bedziesz mógł w swoim programie w łatwy sposób manipulować tym rejestrem<br />w praktyce prawie nigdy nie musisz tego wywoływać bezposrednio , dlatego ze mozesz sie posłużyć <br />bardziej oczywistą formą<br /><br />porównaj wyciagnij wnioski z tego pogróbionego fragm. a tego makra<br />#define _SFR_IO8(io_addr) _MMIO_BYTE(<span style="color: #BF0000"><span style="text-decoration: underline">(io_addr) + __SFR_OFFSET)</span></span><br /><br />tu jest tez do poczytania <a href="http://www.egrafik.pl/kurs-c-plus-plus/8.2.php"  class="postlink">dereferencja</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1653">DominikN</a> — 26 gru 2013, o 13:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[markopololop]]></name></author>
<updated>2013-12-25T19:21:12+01:00</updated>
<published>2013-12-25T19:21:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5239&amp;p=62299#p62299</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5239&amp;p=62299#p62299"/>
<title type="html"><![CDATA[Re: definicje rejestrów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5239&amp;p=62299#p62299"><![CDATA[
Czyli to jest tylko wskaźnik na jakiś rejestr w pamięci mikrokontrolera?<br />A co da mi wywołanie tego w programie z jakimś konkretnym adresem &quot;_MMIO_BYTE(mem_addr)&quot; ? Wynik tego mogę przypisać do czegoś??<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1221">markopololop</a> — 25 gru 2013, o 19:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[DominikN]]></name></author>
<updated>2013-12-22T17:25:01+01:00</updated>
<published>2013-12-22T17:25:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5239&amp;p=62056#p62056</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5239&amp;p=62056#p62056"/>
<title type="html"><![CDATA[Re: definicje rejestrów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5239&amp;p=62056#p62056"><![CDATA[
po przepisaniu na funckcje dla gcc <br />[syntax=c]void * _mmio_byte(volatile uint8_t* mem_addr)<br />{<br /><br />}[/syntax]<br /><br />wskaźnik na rejestr z pod adresem mem_addr<br />void*  &lt;---  wskazanie na adres  bez okreslenia konkretnego typu (rozmiaru?)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1653">DominikN</a> — 22 gru 2013, o 17:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[markopololop]]></name></author>
<updated>2013-12-22T17:00:05+01:00</updated>
<published>2013-12-22T17:00:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5239&amp;p=62054#p62054</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5239&amp;p=62054#p62054"/>
<title type="html"><![CDATA[definicje rejestrów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5239&amp;p=62054#p62054"><![CDATA[
Witam serdecznie.<br />Czy mógł by mi ktoś wytłumaczyć na czym polegają takie definicje i dlaczego składnia wygląda tak jak wygląda. Dlaczego jest tam wskaźnik i jak to się dzieje że program wie pod jaki adres wskoczyć do danego rejestru?<br /><br />Mam na myśli coś takiego<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">#define _MMIO_BYTE(mem_addr) (*(volatile uint8_t *)(mem_addr))<br />#define _MMIO_WORD(mem_addr) (*(volatile uint16_t *)(mem_addr))<br />#define _MMIO_DWORD(mem_addr) (*(volatile uint32_t *)(mem_addr))<br /></div><br /><br />Aby zdefiniować nazwę rejestru to jest jakaś predefinicja która używa jakiejś innej itd..<br /><br />Dziękuję za pomoc.<br /> <br />Pozdrawiam,<br />Marek<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1221">markopololop</a> — 22 gru 2013, o 17:00</p><hr />
]]></content>
</entry>
</feed>