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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-04-03T15:13:27+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=11270&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-04-03T15:13:27+01:00</updated>
<published>2015-04-03T15:13:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11270&amp;p=125509#p125509</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11270&amp;p=125509#p125509"/>
<title type="html"><![CDATA[Re: Wartość adresu komórki pamięci]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11270&amp;p=125509#p125509"><![CDATA[
<div class="quotetitle">RedLine napisał(a):</div><div class="quotecontent"><br />to zastanawia mnie jak poradzić sobie i dlaczego pojawiają się takie komunikaty.<br /></div><br />Bo nie robisz panie jawnego rzutowania.<br /><br /><div class="quotetitle">RedLine napisał(a):</div><div class="quotecontent"><br />Co ciekawsze po ponownym skompilowaniu komunikaty znikają. Czy jest to prawidłowe zachowanie programu, czy ja niewłaściwie do tego podchodzę.<br /></div><br />Oczywiście że prawidłowe zachowanie kompilatora (nie programu), a ty niewłaściwie podchodzisz ... hmmm może inaczej, nie wiesz jak działa kompilator - przypomnę zatem<br /><br />gdy puszczasz kompilację - a są ostrzeżenia to kompilator pokazuje warningi !<br /><br />ale gdy bez zmian w kodzie puszczasz drugi raz kompilację to innymi słowy mówisz kompilatorowi &quot;Zamknij się, warningi mnie nie interesują, ja wiem co robię, więc mi ich nie pokazuj - co najwyżej pokaż BŁĘDY jeśli są&quot;<br /><br />A jak zrobisz CLEAN to zaczyna się od nowa czyli najpierw warningi i tak dalej<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 3 kwi 2015, o 15:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RedLine]]></name></author>
<updated>2015-04-03T14:40:14+01:00</updated>
<published>2015-04-03T14:40:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11270&amp;p=125502#p125502</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11270&amp;p=125502#p125502"/>
<title type="html"><![CDATA[Wartość adresu komórki pamięci]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11270&amp;p=125502#p125502"><![CDATA[
Witam. Mam pytanie odnośnie wyświetlania wartości adresu komórki pamięci która przechowuje wartość zmiennej. Napisałem taki oto kod który miałby m.in. wyświetlić w terminalu wartość adresu pod którym przechowuje jakąś zmienną (wybraną):<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;MKUART/mkuart.h&quot;<br /><br />#define TEST 1<br /><br />uint8_t value_1 = 0x11;<br />uint8_t value_2 = 0x22;<br />uint8_t value_3 = 0x33;<br />uint8_t value_4 = 0x44;<br />uint16_t value_a = 0xaaaa;<br />uint16_t value_b = 0xbbbb;<br />uint16_t value_c = 0xcccc;<br />uint16_t value_d = 0xdddd;<br /><br /><br /><br />void ram_view_adr_val_8( uint8_t *val );<br />void ram_view_adr_val_16( uint16_t *val );<br /><br />void ram_change_adr_val_8( uint16_t adres, uint8_t wartosc);<br />void ram_change_adr_val_16( uint16_t adres, uint16_t wartosc);<br /><br />int main( void ) {<br /><br />USART_Init( __UBRR );<br />sei();<br /><br />#if TEST == 1<br /><br />uint8_t *wsk;<br />wsk = 0xEE;// wybranie adresu komorki pamieci<br />*wsk = 0xAA;// wpisanie pod wybrany adres jak wyżej (0xEE) wartosci np 0xAA<br /><br />ram_view_adr_val_8(0xEE);<br /><br />#else<br />// wprowadza wartosc pod okreslone adresy w pamieci<br />ram_change_adr_val_8( 0x0212, 0x11 );<br />ram_change_adr_val_16( 0x0222, 0x2222 );<br /><br />// wyswietla adres oraz wartosc zmiennej<br />ram_view_adr_val_8(&amp;value_1);<br />ram_view_adr_val_16(&amp;value_a);<br />#endif<br /><br />while(1) {<br /><br /><br />}<br />}<br /><br />// wywietla ardes komorki pamieci oraz wartosc zmiennej w niej przechowywanej<br />void ram_view_adr_val_8( uint8_t *val){<br /><br />uint8_t adres;<br />uint8_t wartosc;<br /><br />adres = val;<br />wartosc = *val;<br /><br />uart_puts(&quot;---------WARTOSC 8BIT---------\r\n&quot;);<br />uart_puts(&quot;Adres: &quot;);<br />uart_putint(adres,16);<br />uart_puts(&quot;\r\n&quot;);<br />uart_puts(&quot;Wartosc: &quot;);<br />uart_putint(wartosc,16);<br />uart_puts(&quot;\r\n\r\n&quot;);<br />}<br /><br />// wywietla ardes komorki pamieci oraz wartosc zmiennej w niej przechowywanej<br />void ram_view_adr_val_16( uint16_t *val){<br /><br />uint16_t adres;<br />uint16_t wartosc;<br /><br />adres = val;<br />wartosc = *val;<br /><br />uart_puts(&quot;---------WARTOSC 16BIT---------\r\n&quot;);<br />uart_puts(&quot;Adres: &quot;);<br />uart_putint(adres,16);<br />uart_puts(&quot;\r\n&quot;);<br />uart_puts(&quot;Wartosc: &quot;);<br />uart_putint(wartosc,16);<br />uart_puts(&quot;\r\n\r\n&quot;);<br />}<br /><br />// zmienia wartosc zmiennej przechowywanej pod okreslonym adresem<br />void ram_change_adr_val_8( uint16_t adres, uint8_t wartosc){<br /><br />uint8_t *wsk;<br /><br />wsk = adres;<br />*wsk = wartosc;<br />}<br /><br />// zmienia wartosc zmiennej przechowywanej pod okreslonym adresem<br />void ram_change_adr_val_16( uint16_t adres, uint16_t wartosc){<br /><br />uint16_t *wsk;<br /><br />wsk = adres;<br />*wsk = wartosc;<br />}[/syntax]<br /><br /><br />Wybierając TEST = 1, <br />[syntax=c]#define TEST 1[/syntax]<br />chciałem pod wybrany przez siebie adres komórki pamięci wpisać wybraną przez siebie wartość. A następnie podglądnąć za pomocą terminala czy udało się ją tam zapisać.<br /><br />Po skompilowaniu wyświetlają się następujące komunikaty:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">assignment makes pointer from integer without a cast &#91;enabled by default&#93;</div><br />dla próby przypisania adresu<br />oraz <br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">passignment makes integer from pointer without a cast &#91;enabled by default&#93;</div><br />dla funkcji która wyświetla wartość spod określonego adresu<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/2254/096cbb17b2f3a1a96b16d300c3e58c09.JPG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/2254/096cbb17b2f3a1a96b16d300c3e58c09.JPG" alt="Obrazek" /></a><a href="http://forum.atnel.pl/_obrazki/o/2254/74977e768b60d9e39131f36769373c70.JPG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/2254/74977e768b60d9e39131f36769373c70.JPG" alt="Obrazek" /></a><a href="http://forum.atnel.pl/_obrazki/o/2254/b4e6158d5a3c3ddd40c7b907c181b42e.JPG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/2254/b4e6158d5a3c3ddd40c7b907c181b42e.JPG" alt="Obrazek" /></a><br /><br />O ile po kompilacji i wgraniu do procesora w terminalu wygląda, że jest ok tzn. pod adres 0xEE została zapisana wartość 0xAA, to zastanawia mnie jak poradzić sobie i dlaczego pojawiają się takie komunikaty. Co ciekawsze po ponownym skompilowaniu komunikaty znikają. Czy jest to prawidłowe zachowanie programu, czy ja niewłaściwie do tego podchodzę.<br /><br />Sprzęt: ATMEGA8A-PU, zewnętrzny kwarc 8MHz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2254">RedLine</a> — 3 kwi 2015, o 14:40</p><hr />
]]></content>
</entry>
</feed>