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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-09-15T21:58:04+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=8528&amp;mode</id>
<entry>
<author><name><![CDATA[Elektro_maniak]]></name></author>
<updated>2014-09-15T21:58:04+01:00</updated>
<published>2014-09-15T21:58:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95605#p95605</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95605#p95605"/>
<title type="html"><![CDATA[Re: tablica dwuwymiarowa, kopiowanie z flash, wskaźniki.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95605#p95605"><![CDATA[
xor, najprostsze rozwiązanie, działa na 100%. Dziękuję, leci pomógł.<br />Dla krish oraz doman89 również pochwała za chęć pomocy.<br />Pozdrawiam <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2202">Elektro_maniak</a> — 15 wrz 2014, o 21:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xor]]></name></author>
<updated>2014-09-15T21:51:40+01:00</updated>
<published>2014-09-15T21:51:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95601#p95601</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95601#p95601"/>
<title type="html"><![CDATA[Re: tablica dwuwymiarowa, kopiowanie z flash, wskaźniki.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95601#p95601"><![CDATA[
Oczywiście wiesz, że można to załatwić przez coś w tym stylu:  <br /><br />[syntax=c]memcpy_P(bufor, tab, sizeof(tab))[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1774">xor</a> — 15 wrz 2014, o 21:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krish]]></name></author>
<updated>2014-09-15T21:40:50+01:00</updated>
<published>2014-09-15T21:40:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95598#p95598</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95598#p95598"/>
<title type="html"><![CDATA[Re: tablica dwuwymiarowa, kopiowanie z flash, wskaźniki.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95598#p95598"><![CDATA[
W tym pierwszym kodzie porobiłem trochę błędów<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br /><br />const uint8_t tab&#91;2&#93;&#91;12&#93; PROGMEM = {<br /> { 1,  2,  3, 4,  5,  6,  7, 8, 9,10,11,12},<br /> {21,22,23,24,25,26,27,28,29,30,31,32}};<br /><br />uint8_t buffor&#91;2&#93;&#91;12&#93;;<br /><br />void draw_bitmap(const uint8_t (*bitmap)&#91;12&#93;,uint8_t row) {<br />     for (uint8_t i = 0; i &lt; 256; i++)<br />         for (uint8_t j = 0; j &lt; row; j++)<br />             buffor&#91;i&#93;&#91;j&#93; = pgm_read_byte(bitmap&#91;i&#93;&#91;j&#93;);<br />}<br /><br />void draw_bitmap2(const uint8_t bitmap&#91;&#93;&#91;12&#93;,uint8_t row) {<br />     for (uint8_t i = 0; i &lt; 256; i++)<br />         for (uint8_t j = 0; j &lt; row; j++)<br />             buffor&#91;i&#93;&#91;j&#93; = pgm_read_byte(bitmap&#91;i&#93;&#91;j&#93;);<br />}<br /><br /><br />int main()<br />{<br /> draw_bitmap(tab,2);<br /> draw_bitmap2(tab,2);<br />}[/syntax]<br />Dopisałem drugi sposób dedinicji funkcji ( oba dają ten sam kod)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2273">krish</a> — 15 wrz 2014, o 21:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[doman89]]></name></author>
<updated>2014-09-15T21:52:00+01:00</updated>
<published>2014-09-15T21:24:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95597#p95597</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95597#p95597"/>
<title type="html"><![CDATA[Re: tablica dwuwymiarowa, kopiowanie z flash, wskaźniki.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95597#p95597"><![CDATA[
Taki kod mi się skompilował:<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br /><br />const uint8_t tab&#91;2&#93;&#91;12&#93; PROGMEM = { {1,2},{1,2,3,4,5,6,7,8,9,10,11,12}};<br /><br />uint8_t buffor&#91;2&#93;&#91;12&#93;;<br /><br />void draw_bitmap( const uint8_t (*bitmap)&#91;12&#93; PROGMEM, int row )<br />{<br />for (uint8_t i = 0; i &lt; 256; i++)<br />for (uint8_t j = 0; j &lt; row; j++)<br />buffor&#91;i&#93;&#91;j&#93; = pgm_read_byte(*(bitmap + i ) + j);<br />}<br /><br /><br />int main()<br />{<br />draw_bitmap(tab,2);<br />}[/syntax]<br /><br />PS Oczywiście wyżej bez PROGMEM w linijce:<br />[syntax=c]void draw_bitmap( const uint8_t (*bitmap)&#91;12&#93; PROGMEM, int row )[/syntax]<br /><br /><span style="color: #0040FF">z Niebieskim pozdRowieniem,<br />Doman89</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3271">doman89</a> — 15 wrz 2014, o 21:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Elektro_maniak]]></name></author>
<updated>2014-09-15T21:11:41+01:00</updated>
<published>2014-09-15T21:11:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95596#p95596</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95596#p95596"/>
<title type="html"><![CDATA[Re: tablica dwuwymiarowa, kopiowanie z flash, wskaźniki.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95596#p95596"><![CDATA[
Wtedy przy wywołaniu:<br />[syntax=c]draw_bitmap(tab);[/syntax]<br />mamy<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent"> warning: passing argument 1 of 'draw_bitmap' from incompatible pointer type</div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2202">Elektro_maniak</a> — 15 wrz 2014, o 21:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[doman89]]></name></author>
<updated>2014-09-15T20:51:46+01:00</updated>
<published>2014-09-15T20:51:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95592#p95592</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95592#p95592"/>
<title type="html"><![CDATA[Re: tablica dwuwymiarowa, kopiowanie z flash, wskaźniki.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95592#p95592"><![CDATA[
Witam,<br /><br />Spróbuj może tak, choć być mistrzem wskaźników dopiero mam w planach <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />, ale spróbować nie zaszkodzi:<br /><br />[syntax=c]void draw_bitmap( uint8_t (*bitmap)&#91;12&#93;, int row ) <br />{<br />    <br />    for (uint8_t i = 0; i &lt; 256; i++)<br />        for (uint8_t j = 0; j &lt; row; j++)<br />            buffor&#91;i&#93;&#91;j&#93; = pgm_read_byte(*(bitmap + i ) + j);<br /><br />}[/syntax]<br /><br />Wskaźniki ciężki temat, ale jak się opanuje to co się kozakiem jest xD<br /><br /><span style="color: #0000FF">z Niebieskim pozdRowieniem,<br />Doman89</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3271">doman89</a> — 15 wrz 2014, o 20:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Elektro_maniak]]></name></author>
<updated>2014-09-15T20:28:07+01:00</updated>
<published>2014-09-15T20:28:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95586#p95586</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95586#p95586"/>
<title type="html"><![CDATA[Re: tablica dwuwymiarowa, kopiowanie z flash, wskaźniki.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95586#p95586"><![CDATA[
RAM-u starczy, bo to Atmega 2561 (8KB RAM)<br />Krish, kod kompiluje się, ale niestety nie działa. Myślę, że jesteśmy blisko <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2202">Elektro_maniak</a> — 15 wrz 2014, o 20:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kurnachatka]]></name></author>
<updated>2014-09-15T20:23:31+01:00</updated>
<published>2014-09-15T20:23:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95583#p95583</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95583#p95583"/>
<title type="html"><![CDATA[Re: tablica dwuwymiarowa, kopiowanie z flash, wskaźniki.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95583#p95583"><![CDATA[
<div class="quotetitle">Elektro_maniak napisał(a):</div><div class="quotecontent"><br />const uint8_t tab[256][12] PROGMEM = { {...}, ...}<br /></div><br /><br />Ta tablica to troszkę duża może braknąć ram-u.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=930">kurnachatka</a> — 15 wrz 2014, o 20:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krish]]></name></author>
<updated>2014-09-15T20:11:55+01:00</updated>
<published>2014-09-15T20:11:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95581#p95581</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95581#p95581"/>
<title type="html"><![CDATA[Re: tablica dwuwymiarowa, kopiowanie z flash, wskaźniki.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95581#p95581"><![CDATA[
Sposób rozwiązania przekazywania do funkcji tablicy dwuwymiarowej jest opisany<br />w książce &quot;Wskaźniki w języku C-przewodnik&quot; (R. Reese):<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br /><br />const uint8_t tab&#91;2&#93;&#91;12&#93; PROGMEM = { {1,2},{1,2,3,4,5,6,7,8,9,10,11,12}};<br /><br />uint8_t buffor&#91;2&#93;&#91;12&#93;;<br /><br />void draw_bitmap(const uint8_t (*bitmap)&#91;12&#93;,int row) {<br />     for (uint8_t i = 0; i &lt; 256; i++)<br />         for (uint8_t j = 0; j &lt; row; j++)<br />             buffor&#91;i&#93;&#91;j&#93; = pgm_read_byte(bitmap&#91;i&#93;&#91;j&#93;);<br />}<br /><br />int main()<br />{<br /> draw_bitmap(tab,2);<br />}[/syntax]<br />Kompiluje się bez problemu, jeżeli działa to OK.<br />( trzeba przerobić jakieś 3 rozdziały, aby próbować zrozumieć-dlaczego tak ma być)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2273">krish</a> — 15 wrz 2014, o 20:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Elektro_maniak]]></name></author>
<updated>2014-09-15T19:02:10+01:00</updated>
<published>2014-09-15T19:02:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95572#p95572</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95572#p95572"/>
<title type="html"><![CDATA[tablica dwuwymiarowa, kopiowanie z flash, wskaźniki.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8528&amp;p=95572#p95572"><![CDATA[
Witajcie <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Przyjmijmy, że mamy taką dwuwymiarową tablicę umieszczoną w pamięci FLASH:<br /><br />[syntax=c]const uint8_t tab&#91;256&#93;&#91;12&#93; PROGMEM = { {...}, ...}[/syntax]<br /><br />i chciałbym ją skopiować z pamięci FLASH do pamięci RAM:<br /><br />[syntax=c]void draw_bitmap(const uint8_t *bitmap&#91;&#93;) {<br />for (uint8_t i = 0; i &lt; 256; i++)<br />for (uint8_t j = 0; j &lt; 12; j++) <br />buffor&#91;i&#93;&#91;j&#93; = pgm_read_byte(&amp;bitmap&#91;i&#93;&#91;j&#93;);<br />}[/syntax]<br /><br />poprzez wywołanie:<br /><br />[syntax=c]draw_bitmap(tab);[/syntax]<br /><br />jak to zrobić poprawnie?<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">warning: passing argument 1 of 'draw_bitmap' from incompatible pointer type</div><br /><br />Z góry dziękuję za wszelką pomoc <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2202">Elektro_maniak</a> — 15 wrz 2014, o 19:02</p><hr />
]]></content>
</entry>
</feed>