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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-11-16T12:58:55+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=8910&amp;mode</id>
<entry>
<author><name><![CDATA[tomson5]]></name></author>
<updated>2014-11-16T12:58:55+01:00</updated>
<published>2014-11-16T12:58:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=104281#p104281</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=104281#p104281"/>
<title type="html"><![CDATA[Re: Lcd Dogs102-6 Jak wyświetlić zawartość zmiennej?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=104281#p104281"><![CDATA[
..No i bajka <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Dziękuje raz jeszcze.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2382">tomson5</a> — 16 lis 2014, o 12:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[doman89]]></name></author>
<updated>2014-11-16T03:17:16+01:00</updated>
<published>2014-11-16T03:17:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=104225#p104225</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=104225#p104225"/>
<title type="html"><![CDATA[Re: Lcd Dogs102-6 Jak wyświetlić zawartość zmiennej?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=104225#p104225"><![CDATA[
No i mamy rozwiązanie problemu <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Kolega zobacz zapisy i efekty:<br />[syntax=c]putpixel((int) x * 10,(int) y, WHITE );[/syntax]<br /><a href="http://forum.atnel.pl/_obrazki/o/3271/858188048cae15d852dbf143f38786a0.PNG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/3271/858188048cae15d852dbf143f38786a0.PNG" alt="Obrazek" /></a><br /><br />[syntax=c]putpixel((int) (x * 10),(int) y, WHITE );[/syntax]<br /><a href="http://forum.atnel.pl/_obrazki/o/3271/5a91da8b358cfcc4d7bbb20ff30f2b05.PNG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/3271/5a91da8b358cfcc4d7bbb20ff30f2b05.PNG" alt="Obrazek" /></a><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> — 16 lis 2014, o 03:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[doman89]]></name></author>
<updated>2014-11-15T12:23:06+01:00</updated>
<published>2014-11-15T12:23:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=104065#p104065</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=104065#p104065"/>
<title type="html"><![CDATA[Re: Lcd Dogs102-6 Jak wyświetlić zawartość zmiennej?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=104065#p104065"><![CDATA[
Wyzwanie przyjęte <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> W wolnej chwili (jutro?) przystąpie do katowania Atmegi  <img src="https://forum.atnel.pl/images/smilies/icon_twisted.gif" alt=":twisted:" title="Szalony" /> <br /><br />Zawsze na razie możesz mówić, że masz sinusoidę zmodulowaną <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><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 lis 2014, o 12:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomson5]]></name></author>
<updated>2014-11-14T21:05:26+01:00</updated>
<published>2014-11-14T21:05:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=103994#p103994</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=103994#p103994"/>
<title type="html"><![CDATA[Re: Lcd Dogs102-6 Jak wyświetlić zawartość zmiennej?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=103994#p103994"><![CDATA[
Zmieniłem kod na poniższy.<br />w funkcji lcd_pixel wpisałem x *10<br />[syntax=c]for (x = 0; x &lt; 101; x += 0.1)<br />{<br />        fx = sin(x);<br />        fx *= 15;<br />        fx += 30;<br /><br />        lcd_pixel((int) x *10, (int) fx);<br />}[/syntax]<br /><br />Na poniższym obrazku widać że częstotliwość się zmieniła, lecz rozsypał się wykres.<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/2382/2dc25d0fe7002bffba85ca361ceaf4b3.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/2382/2dc25d0fe7002bffba85ca361ceaf4b3.jpg" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2382">tomson5</a> — 14 lis 2014, o 21:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[doman89]]></name></author>
<updated>2014-11-14T19:55:55+01:00</updated>
<published>2014-11-14T19:55:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=103982#p103982</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=103982#p103982"/>
<title type="html"><![CDATA[Re: Lcd Dogs102-6 Jak wyświetlić zawartość zmiennej?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=103982#p103982"><![CDATA[
Kolega tak na logikę sobie to weź <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" />:<br /><br />1. Obliczasz f(x) czyli masz y i x (x masz zwiększane w pętli).<br />2. Parametr y mogę sobie wyskalować, poprzez wymnożenie, zmieniając go bo i tak w każdej iteracji pętli masz nowe przypisanie.<br />3. Wypozycjonowanie parametru y, poprzez dodawanie, również zmieniasz go, ponieważ jak wyżej.<br />4. Parametr x trzeba wyskalować, no ale właśnie nie możemy zrobić przypisania do x bo nam się rozsypie wartość przy kolejnym kroku pętli, więc co można zrobić? Ano najłatwiej wpisać odpowiedni parametr do przesłania. Tak więc w funkcji putpixel( x * 20, y).<br />5. Parametr x trzeba wyskalować? Więc podobnie jak wyżej dodajemy jakąś wartość po mnożeniu. Tak więc masz np. putpixel( x * 20 + 10, y). Przesyłasz inny x do wyświetlenia nie przypisując mu innej wartości.<br /><br />To oczywiście czysta teoria, choć powinno działać. Jak nie będzie to będę testował na moim układzie. W sumie to możesz identycznie postąpić z wartością fx. Zapis Ci się skróci.<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> — 14 lis 2014, o 19:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomson5]]></name></author>
<updated>2014-11-14T18:19:14+01:00</updated>
<published>2014-11-14T18:19:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=103970#p103970</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=103970#p103970"/>
<title type="html"><![CDATA[Re: Lcd Dogs102-6 Jak wyświetlić zawartość zmiennej?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=103970#p103970"><![CDATA[
Witam po dłuższej przerwie. pochłonięty innym projektem musiałem odłożyć naukę szczególnie że coś mi nadal nie wychodzi.<br />Jeżeli możesz mi wytłumaczyć gdzie powinienem wkleić ten zapis x *= 5; ??<br /><br />[syntax=c]for (x = 0; x &lt; 101; x += 0.1)<br />{       <br />        fx = sin(x);<br />        fx *= 10;<br />        fx += 30;<br /><br />        lcd_pixel((int) x, (int) fx);<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2382">tomson5</a> — 14 lis 2014, o 18:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[doman89]]></name></author>
<updated>2014-11-02T17:08:55+01:00</updated>
<published>2014-11-02T17:08:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=102008#p102008</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=102008#p102008"/>
<title type="html"><![CDATA[Re: Lcd Dogs102-6 Jak wyświetlić zawartość zmiennej?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=102008#p102008"><![CDATA[
<div class="quotetitle">tomson5 napisał(a):</div><div class="quotecontent"><br />Potrafię zmienić amplitudę ośY i wypozycjonować. Nie mogę niestety zmienić częstotliwości ośX<br /><br />Tego zapisu nie było wcześniej w kodzie mam go dodać??<br />[syntax=c]x *= 5;[/syntax]<br /></div><br /><br />Właśnie ta wartość jest do wyskalowania osi x <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><span style="color: #0000FF">z Niebieskim pozdRowieniem,<br />Doman89</span><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />Analogicznie do osi Y.<br /><br />Mnożenie - wyskalowanie,<br />Dodawanie - pozycjonowanie, choć tu raczej ma sens jak zrobisz podziałkę (al'a oscyloskop).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3271">doman89</a> — 2 lis 2014, o 17:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomson5]]></name></author>
<updated>2014-11-02T17:03:08+01:00</updated>
<published>2014-11-02T17:03:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=102005#p102005</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=102005#p102005"/>
<title type="html"><![CDATA[Re: Lcd Dogs102-6 Jak wyświetlić zawartość zmiennej?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=102005#p102005"><![CDATA[
Potrafię zmienić amplitudę ośY i wypozycjonować. Nie mogę niestety zmienić częstotliwości ośX<br /><br />Tego zapisu nie było wcześniej w kodzie mam go dodać??<br />[syntax=c]x *= 5;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2382">tomson5</a> — 2 lis 2014, o 17:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[doman89]]></name></author>
<updated>2014-10-31T23:22:52+01:00</updated>
<published>2014-10-31T23:22:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101776#p101776</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101776#p101776"/>
<title type="html"><![CDATA[Re: Lcd Dogs102-6 Jak wyświetlić zawartość zmiennej?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101776#p101776"><![CDATA[
<div class="quotetitle">tomson5 napisał(a):</div><div class="quotecontent"><br />Poszło  walczę teraz z rozciąganiem tej amplitudy.<br /></div><br /><br />Z tym to najmniejszy problem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Jak chcesz wyskalować w &quot;x&quot; czy &quot;y&quot; to masz właśnie operacje mnożenia:<br /><br />[syntax=c]fx *= 5;<br />x *= 5;[/syntax]<br /><br />Jak chcesz wypozycjonować to dodajesz wartości:<br />[syntax=c]fx += 7;[/syntax]<br />Czyli u mnie masz właśnie +7 bo mam pola 0-15, więc aby był środek.<br /><br />Oczywiście możesz uzyskać dokładniejszą sinusoidę robiąc iterację w pętli np. co 0.01 - ale dla mikrokontrolerka to już mocne obciążenie <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><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> — 31 paź 2014, o 23:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomson5]]></name></author>
<updated>2014-10-31T12:26:15+01:00</updated>
<published>2014-10-31T12:26:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101696#p101696</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101696#p101696"/>
<title type="html"><![CDATA[Re: Lcd Dogs102-6 Jak wyświetlić zawartość zmiennej?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101696#p101696"><![CDATA[
Nie mogę się doczekać kiedy to sprawdzę <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /> <br />Wpisałem tam pod X  wartość 30 ponieważ nie wynikało w tamtym kodzie że x=krok Teraz już kumam. <br />Dzięki po raz N-ty.<br /><br /><br /><br />EDIT:  Poszło <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> walczę teraz z rozciąganiem tej amplitudy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2382">tomson5</a> — 31 paź 2014, o 12:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[doman89]]></name></author>
<updated>2014-10-31T10:57:05+01:00</updated>
<published>2014-10-31T10:57:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101682#p101682</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101682#p101682"/>
<title type="html"><![CDATA[Re: Lcd Dogs102-6 Jak wyświetlić zawartość zmiennej?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101682#p101682"><![CDATA[
Kolega tu masz moją funkcję którą wrzuciłem:<br /><br />[syntax=c]float fx;<br />float x;<br />for (x = 0; x &lt; 40; x += 0.1)<br />{<br />fx = sin(x);<br />fx *= 5;<br />fx += 7;<br />Matrix_LED_Pixel_stellen((int) x, (int) fx, 1);<br />}[/syntax]<br /><br />I efekt: <br /><a href="http://forum.atnel.pl/_obrazki/o/3271/f06d8779a94d6401ea1c46189d7e69c6.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/3271/f06d8779a94d6401ea1c46189d7e69c6.jpg" alt="Obrazek" /></a><br /><br />Piksel w górnym lewym rogu to &quot;debugger&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /><br /><span style="color: #0000FF">z Niebieskim pozdRowieniem,<br />Doman89</span><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 3 minutach ]</span></strong><br /><br />Kurczę teraz zauważyłem u Ciebie błąd <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><br /><br />Kolega Ty masz w funkcji na sztywno przypisywane 30, więc nie dziw się, że masz linię - masz 1 parametr stały.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3271">doman89</a> — 31 paź 2014, o 10:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomson5]]></name></author>
<updated>2014-10-30T17:33:00+01:00</updated>
<published>2014-10-30T17:33:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101586#p101586</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101586#p101586"/>
<title type="html"><![CDATA[Re: Lcd Dogs102-6 Jak wyświetlić zawartość zmiennej?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101586#p101586"><![CDATA[
Coś nie zaskoczyło. Narysowało mi tylko pionową linię <br /><br />W main.c zrobiłem tak:<br />[syntax=c]#include &lt;math.h&gt;   //Dodałem tak jak poleciłeś <br /><br /><br />for(uint8_t krok = 0; krok &lt; 101; krok++)<br />{<br />  fx = sin(krok);<br />  fx *= 10;<br />  fx += 32;<br />  lcd_pixel( 30, (int)fx);// lcd_pixel(x, y)  funkcja rysowania pojedyńczego piksela<br />  }[/syntax]<br /><br />W pliku lcd.c Funkcja lcd_pixel została sklecona na bazie funkcji lcd_line rysującej linię<br />[syntax=c]/*--------------------------------------<br /> Function:lcd_pixel()<br /> Input:xs, ys<br /> Output:---<br /> Description: Rysowanie Piksela<br /> --------------------------------------*/<br /> void lcd_pixel(uint8_t xs, uint8_t ys)<br /> {<br /><br />  lcd_line(xs, ys, xs, ys); //rysowanie piksela na bazie funkcji rysowania linni<br /> }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2382">tomson5</a> — 30 paź 2014, o 17:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[doman89]]></name></author>
<updated>2014-10-30T01:21:46+01:00</updated>
<published>2014-10-30T01:21:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101490#p101490</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101490#p101490"/>
<title type="html"><![CDATA[Re: Lcd Dogs102-6 Jak wyświetlić zawartość zmiennej?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101490#p101490"><![CDATA[
Kolega to jak już masz taki głód na poligon doświadczalny to jedziesz dalej <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /><br />w main.c zrób sobie taki &quot;teścik&quot;:<br />[syntax=c]#include &lt;math.h&gt;<br /><br />/// w kodzie<br />float fx;<br />for(uint8_t krok = 0; krok &lt; 102; krok++)<br />{<br />  fx = sin(krok);<br />  fx *= 10;<br />  fx += 32;<br />  draw_pixel( x, (int) fx, 1);//tu nie wiem jak kolega ma rysowanie piksela - pozycja x, y, kolor(1 - zapal)<br />}[/syntax]<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> — 30 paź 2014, o 01:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomson5]]></name></author>
<updated>2014-10-29T20:38:24+01:00</updated>
<published>2014-10-29T20:38:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101449#p101449</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101449#p101449"/>
<title type="html"><![CDATA[Re: Lcd Dogs102-6 Jak wyświetlić zawartość zmiennej?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101449#p101449"><![CDATA[
No no ciekawe rzeczy. Spróbuje użyć poniższego kodu<br /><br />[syntax=c]// x1 , y1 - współrzędne początku odcinka<br /> // x2 , y2 - współrzędne końca odcinka<br /> void BresenhamLine(const int x1, const int y1, const int x2, const int y2)<br /> { <br />     // zmienne pomocnicze<br />     int d, dx, dy, ai, bi, xi, yi;<br />     int x = x1, y = y1;<br />     // ustalenie kierunku rysowania<br />     if (x1 &lt; x2)<br />     { <br />         xi = 1;<br />         dx = x2 - x1;<br />     } <br />     else<br />     { <br />         xi = -1;<br />         dx = x1 - x2;<br />     }<br />     // ustalenie kierunku rysowania<br />     if (y1 &lt; y2)<br />     { <br />         yi = 1;<br />         dy = y2 - y1;<br />     } <br />     else<br />     { <br />         yi = -1;<br />         dy = y1 - y2;<br />     }<br />     // pierwszy piksel<br />     glVertex2i(x, y);<br />     // oś wiodąca OX<br />     if (dx &gt; dy)<br />     {<br />         ai = (dy - dx) * 2;<br />         bi = dy * 2;<br />         d = bi - dx;<br />         // pętla po kolejnych x<br />         while (x != x2)<br />         { <br />             // test współczynnika<br />             if (d &gt;= 0)<br />             { <br />                 x += xi;<br />                 y += yi;<br />                 d += ai;<br />             } <br />             else<br />             {<br />                 d += bi;<br />                 x += xi;<br />             }<br />             glVertex2i(x, y);<br />         }<br />     } <br />     // oś wiodąca OY<br />     else<br />     { <br />         ai = ( dx - dy ) * 2;<br />         bi = dx * 2;<br />         d = bi - dy;<br />         // pętla po kolejnych y<br />         while (y != y2)<br />         { <br />             // test współczynnika<br />             if (d &gt;= 0)<br />             { <br />                 x += xi;<br />                 y += yi;<br />                 d += ai;<br />             }<br />             else<br />             {<br />                 d += bi;<br />                 y += yi;<br />             }<br />             glVertex2i(x, y);<br />         }<br />     }<br /> }[/syntax]<br />Zobaczymy co z tego wyjdzie.<br />Co do poradnika Oled to jeszcze nie dotarłem do tego momentu.<br /><br /><br />Edit: Udało się!!!! Za pierwszym podejściem <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Mam krzywe.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2382">tomson5</a> — 29 paź 2014, o 20:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[doman89]]></name></author>
<updated>2014-10-29T11:19:55+01:00</updated>
<published>2014-10-29T11:19:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101386#p101386</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101386#p101386"/>
<title type="html"><![CDATA[Re: Lcd Dogs102-6 Jak wyświetlić zawartość zmiennej?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101386#p101386"><![CDATA[
<div class="quotetitle">tomson5 napisał(a):</div><div class="quotecontent"><br />Myślę teraz nad rysowaniem linni ukośnych<br /></div><br /><br />Kolega to akurat raczej żaden problem. Przyda się algorytm Brenshama (mogę lekko przekręcić), naturalnie znajdzie kolega to w jednym z poradników o oledach p. Mirka.<br /><br />Co do sinusoidy to była by kolejna &quot;zabawa&quot;, ale raczej nie będzie problemu.<br /><br />Teoretycznie:<br />1. biblioteka bodajże math.h<br />2. funkcja f(x) = sin(x) - tu podajesz swoja wartosc; punkt y będzie się zmieniał w zależności od x.<br />A x możesz przypisywać z podanego przez Ciebie zakresu w petli for.<br /><br />Do ogarnięcia temat jak najbardziej <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><span style="color: #0000FF">z Niebieskim pozdRowieniem,<br />Doman89</span><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br />A i ewentualne skalowanie wartości jakby wykres był za mały np. ale to już też &quot;pikuś&quot;.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3271">doman89</a> — 29 paź 2014, o 11:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomson5]]></name></author>
<updated>2014-10-29T11:01:41+01:00</updated>
<published>2014-10-29T11:01:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101382#p101382</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101382#p101382"/>
<title type="html"><![CDATA[Re: Lcd Dogs102-6 Jak wyświetlić zawartość zmiennej?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101382#p101382"><![CDATA[
Śmiga jak złoto <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /> <br />Apetyt rośnie na więcej. Myślę teraz nad rysowaniem linni ukośnych lub sinusoidy<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2382">tomson5</a> — 29 paź 2014, o 11:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[doman89]]></name></author>
<updated>2014-10-28T23:38:55+01:00</updated>
<published>2014-10-28T23:38:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101327#p101327</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101327#p101327"/>
<title type="html"><![CDATA[Re: Lcd Dogs102-6 Jak wyświetlić zawartość zmiennej?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101327#p101327"><![CDATA[
<div class="quotetitle">tomson5 napisał(a):</div><div class="quotecontent"><br />No cóż hm... Pozostało ustalić tylko na jaki adres wysłać piFko<br /></div><br />Kolega może być druga używka <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Kopsnij jakąś &quot;pigułeczkę&quot; xD<br /><br /><div class="quotetitle">tomson5 napisał(a):</div><div class="quotecontent"><br />Jeszcze raz dziękuję za okazaną pomoc. Jeszcze nigdy nikt nie poświęcił mi tyle czasu na jakimkolwiek forum.Przykład godny naśladowania.<br /></div><br />Bo to nasze forum takie fajne jest <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Czyli mam rozumieć, że wreście udało się osiągnąć pozytywny wynik? <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><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> — 28 paź 2014, o 23:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomson5]]></name></author>
<updated>2014-10-28T17:44:09+01:00</updated>
<published>2014-10-28T17:44:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101214#p101214</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101214#p101214"/>
<title type="html"><![CDATA[Re: Lcd Dogs102-6 Jak wyświetlić zawartość zmiennej?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101214#p101214"><![CDATA[
No cóż hm... Pozostało ustalić tylko na jaki adres wysłać piFko <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br />Jeszcze raz dziękuję za okazaną pomoc. Jeszcze nigdy nikt nie poświęcił mi tyle czasu na jakimkolwiek forum.<br />Przykład godny naśladowania.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2382">tomson5</a> — 28 paź 2014, o 17:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[doman89]]></name></author>
<updated>2014-10-28T12:21:04+01:00</updated>
<published>2014-10-28T12:21:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101165#p101165</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101165#p101165"/>
<title type="html"><![CDATA[Re: Lcd Dogs102-6 Jak wyświetlić zawartość zmiennej?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101165#p101165"><![CDATA[
Kolega jakieś 4 godziny bojów i u mnie się ładnie wyświetlają float'y <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Całość leci na PW bo za dużo czasu na to poświęciłem <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><br /><br /><div class="quotetitle">tomson5 napisał(a):</div><div class="quotecontent"><br />Dzięki że jeszcze coś Ci się chce<br /></div><br /><br />To akurat wina p. Mirka zaraża pozytywną energią  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> <br /><br />Tylko już nie pisz, że nie działa <img src="https://forum.atnel.pl/images/smilies/icon_exclaim.gif" alt=":!:" title="Wykrzyknik" />  <img src="https://forum.atnel.pl/images/smilies/icon_cool.gif" alt="8-)" title="Cool" /> <br /><br /><span style="color: #0000FF">z Niebieskim pozdRowieniem,<br />Doman89</span><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 17 minutach ]</span></strong><br /><br /><div class="quotetitle">tomson5 napisał(a):</div><div class="quotecontent"><br />Natomiast część ułamkową chyba otrzymam przez pomnożenie przez 100 i potraktowanie wyniku modulo %<br /></div><br /><br />Wszystko pięknie ładnie tylko jak po przecinku byś miał np. 05, to Ci zero skasuje i masz błędny wynik <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3271">doman89</a> — 28 paź 2014, o 12:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomson5]]></name></author>
<updated>2014-10-28T08:20:11+01:00</updated>
<published>2014-10-28T08:20:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101157#p101157</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101157#p101157"/>
<title type="html"><![CDATA[Re: Lcd Dogs102-6 Jak wyświetlić zawartość zmiennej?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101157#p101157"><![CDATA[
W nocy spać nie mogłem. Wydumałem że część dziesiętną otrzymam przez przypisanie zmiennej float do zmiennej int <br />Natomiast część ułamkową chyba otrzymam przez pomnożenie przez 100 i potraktowanie wyniku modulo %<br />Dzięki że jeszcze coś Ci się chce <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=2382">tomson5</a> — 28 paź 2014, o 08:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[doman89]]></name></author>
<updated>2014-10-27T21:31:51+01:00</updated>
<published>2014-10-27T21:31:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101128#p101128</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101128#p101128"/>
<title type="html"><![CDATA[Re: Lcd Dogs102-6 Jak wyświetlić zawartość zmiennej?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101128#p101128"><![CDATA[
Kolega jak będę miał jutro czas przed pracą to po testuję to na moim AVR + MatrycaLED, zobaczymy co z tego wyjdzie.<br /><br /><span style="color: #0000FF">z Niebieskim pozdRowiniem,<br />Doman89</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3271">doman89</a> — 27 paź 2014, o 21:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomson5]]></name></author>
<updated>2014-10-27T21:23:44+01:00</updated>
<published>2014-10-27T21:23:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101126#p101126</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101126#p101126"/>
<title type="html"><![CDATA[Re: Lcd Dogs102-6 Jak wyświetlić zawartość zmiennej?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=101126#p101126"><![CDATA[
Witam po przerwie. Niestety nie chce mi działać to nadal. Nie chciałem zawracać głowy w weekend dlatego teraz dopiero piszę.<br />Pomyślałem sobie że może rozwiązaniem jest aby uzyskać dwie liczby<br />Dziesiętną i ułamek np: 12.5 rozbić na 12 i 5 a pomiędzy nie wsadzić kropkę.<br /><br />Siedzę i myślę nad tym jak dokonać takiego &quot;rozbicia&quot;??<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2382">tomson5</a> — 27 paź 2014, o 21:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[doman89]]></name></author>
<updated>2014-10-24T19:45:40+01:00</updated>
<published>2014-10-24T19:45:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=100543#p100543</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=100543#p100543"/>
<title type="html"><![CDATA[Re: Lcd Dogs102-6 Jak wyświetlić zawartość zmiennej?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=100543#p100543"><![CDATA[
Kolega aleś mi zagwózdkę wrzucił <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Tu masz odnowioną funkcję fascii:<br />[syntax=c]char * fascii (float i)         <br />{<br />    char puffer &#91;17&#93;;<br />    char *s;int j,k;<br />    float a,b,c;<br />    j=i;<br />    s=(char*)malloc(10*sizeof(char));<br />    itoa(j, s, 10);<br />    strcat( puffer, s);<br />    strcat( puffer, &quot;.&quot;);<br />    i=i-j;<br /><br />    for(a=0,c=0.1,k=1;(b=(i-a))!=0;a+=c)<br />    {<br />        if(b&lt;0)<br />        {<br />            b=i+a;<br />            k++; a=c/10; c=a;<br />        }<br />        if(a==1)<br />        { a=c/10;c=a;}<br />    }<br /><br /><br />    for(;k&gt;0;k--)<br />    {<br />        i=10*i;<br />    }<br />    j=i;<br />    itoa(j, s, 10);<br />    strcat(puffer, s);<br />    strcpy(s, puffer);<br />    return s;<br />}[/syntax]<br /><br />Mam nadzieję, że wreście coś zaśmigoli <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><br /><br />Testowałem w/w funkcję na C dla PieCa i z takim programem mi dało pozytywny wynik:<br />[syntax=c]int main()<br />{<br />    float x = 2.456;<br />    char * m;<br /><br /><br />    printf(&quot;%s\n&quot;, (fascii(x)) );<br />    return 0;<br />}[/syntax]<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> — 24 paź 2014, o 19:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomson5]]></name></author>
<updated>2014-10-24T18:28:52+01:00</updated>
<published>2014-10-24T18:28:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=100522#p100522</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=100522#p100522"/>
<title type="html"><![CDATA[Re: Lcd Dogs102-6 Jak wyświetlić zawartość zmiennej?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=100522#p100522"><![CDATA[
Coś się ruszyło ale nie wiem czy na lepsze <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Na zdjęciu widać w jaki sposób wyświetla tą liczbę.<br /><a href="http://forum.atnel.pl/_obrazki/o/2382/cea0b3762a645e1c5effd5ad2ed9aad9.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/2382/cea0b3762a645e1c5effd5ad2ed9aad9.jpg" alt="Obrazek" /></a><br /><br />Dla pewności że robię wszystko ok zamieszczam cały plik lcd.c<br />Na końcu pliku jest to co uzupełniłem teraz<br />[syntax=c]/*--------------------------------------|<br />|File: lcd.c|<br />|Date:    August 2011|<br />|Author: J. Moertl|<br />|Description:Source data to control the |<br />| EA DOGS102-6 lcd module|<br />| including init, write and|<br />| drawing functions.|<br />|--------------------------------------*/<br /><br />#include &quot;main.h&quot;<br /><br />unsigned char lcd_buffer&#91;XPIXEL&#93;&#91;YPIXEL/8&#93;;  //Buffer to store display data. The buffer organization is equal to<br /> // the one of the display<br /><br /><br /><br />/*--------------------------------------<br />Function:lcd_init()<br />Input:---<br />Output:---<br />Description:Initializes and clears lcd<br />--------------------------------------*/<br />void lcd_init(void)<br />{<br />DDRB |= (1&lt;&lt;DRESET); //Set display reset as output<br /><br />PORTB|=(1&lt;&lt;DRESET);  //Set display reset to high -&gt; LCD is running now<br /><br />//Initialize bottom view 3.3V (booster on) 8Bit SPI<br />lcd_send_command(0x40); //Startline 0<br />lcd_send_command(0xA1); //SEG reverse<br />lcd_send_command(0xC0); //Set COM direction (COM0-COM63)<br />lcd_send_command(0xA4); //Set all Pixel to on<br />lcd_send_command(0xA6); //Display inverse off<br />lcd_send_command(0xA2); //Set bias 1/9<br />lcd_send_command(0x2F); //Booster, regulator, follower on<br />lcd_send_command(0x27); //Set contrast<br />lcd_send_command(0x81); //Set contrast<br />lcd_send_command(0x10); //Set contrast<br />lcd_send_command(0xFA); //Temperature compensation<br />lcd_send_command(0x90); //Temperature compensation<br />lcd_send_command(0xAF); //Display on<br /><br />lcd_clear_all(); //Clear display and set display buffer to 0<br /><br />}<br /><br />/*--------------------------------------<br />Function:lcd_send()<br />Input:data, cd<br />Output:---<br />Description:send data, as command (cd=0)<br />or simple data (cd=1)<br />--------------------------------------*/<br />void lcd_send(uint8_t data, uint8_t cd)<br />{<br />PORTB&amp;=~(1&lt;&lt;DCS);//Slave select (DCS to gnd)<br />if (cd == 0)<br />PORTB&amp;=~(1&lt;&lt;DCD);//Send command (DCD to 0)<br />else<br />PORTB|=(1&lt;&lt;DCD);//Send data (DCD to 1)<br /><br />spi_byte(data);//Send data<br /><br />}<br /><br />/*--------------------------------------<br />Function:lcd_clear()<br />Input:xs, ys, xe, ye<br />Output:---<br />Description:clear a rectangle<br />--------------------------------------*/<br />void lcd_clear(uint8_t xs, uint8_t ys, uint8_t xe, uint8_t ye)<br />{<br />//i,j are index variables<br />//ps, pe are page start and endadress<br />//yr is restpixels<br />uint8_t i=0,j=0, ps=0, pe=0, yr=0;<br /><br /><br />ps=ys/8; //calculate startpage<br />pe=ye/8; //calculate endpage<br /><br /><br />//-------------Clear part of startpage--------------<br />//Set coloumn adress<br />lcd_send_command(xs&amp;0x0F);      //LSB adress<br />lcd_send_command(0x10+(xs&gt;&gt;4)); //MSB adress<br /><br />//set page adress<br />lcd_send_command(0xB0+ps);<br /><br />j=0xFF; //use j as buffer<br />if (pe == ps) //if start and endadress are in same page<br />     //you have to make sure, not to delete to much<br />{<br />j=ye%8-0xFF; //calculate stop within first page<br />}<br /><br />yr=ys%8; //calculate the start within first page<br />for(i=xs; i&lt;=xe; i++) //loop starting first colomn to last coloumn<br />{<br /><br />lcd_buffer&#91;i&#93;&#91;ps&#93;&amp;=j&gt;&gt;(8-yr);     //clear the buffer<br />lcd_send_data(lcd_buffer&#91;i&#93;&#91;ps&#93;); //send the changed pages of the buffer to the display<br />}<br /><br />//-------------Clear part of endpage----------------<br />//Set coloumn adress<br />lcd_send_command(xs&amp;0x0F);//LSB adress<br />lcd_send_command(0x10+(xs&gt;&gt;4)); //MSB adress<br /><br />//set page adress<br />lcd_send_command(0xB0+pe);<br />yr=ye%8; //calculate the stop within last page<br /><br />for(i=xs; i&lt;=xe; i++) //loop starting first colomn to last coloumn<br />{<br />lcd_buffer&#91;i&#93;&#91;pe&#93;&amp;=(0xFF&lt;&lt;(yr+1)); //clear the buffer<br />lcd_send_data(lcd_buffer&#91;i&#93;&#91;pe&#93;);  //send the changed pages of the buffer to the display<br />}<br /><br /><br />//-------------------Clear middle pages----------------------<br />for(j=ps+1; j&lt;pe; j++) //loop starting first middle page to last middle page<br />{<br />//Set coloumn adress<br />lcd_send_command(xs&amp;0x0F); //LSB adress<br />lcd_send_command(0x10+(xs&gt;&gt;4));//MSB adress<br /><br />//set page adress<br />lcd_send_command(0xB0+j);<br /><br />for(i=xs; i&lt;=xe; i++) //loop starting first colomn to last coloumn<br />{<br /><br />lcd_buffer&#91;i&#93;&#91;j&#93;=0x00; //clear the buffer<br />lcd_send_data(0x00);   //clear display same as lcd_send_data(lcd_buffer&#91;i&#93;&#91;j&#93;);<br />}<br />}<br /><br />}<br /><br /><br />/*--------------------------------------<br />Function:lcd_fill()<br />Input:xs, ys, xe, ye<br />Output:---<br />Description:fill a rectangle<br />--------------------------------------*/<br />void lcd_fill(uint8_t xs, uint8_t ys, uint8_t xe, uint8_t ye)<br />{<br />//i,j are index variables<br />//ps, pe are page start and endadress<br />//yr is restpixels<br />uint8_t i=0,j=0, ps=0, pe=0, yr=0;<br /><br />ps=ys/8; //calculate startpage<br />pe=ye/8; //calculate endpage<br /><br /><br />//-------------Fill part of startpage--------------<br />//Set coloumn adress<br />lcd_send_command(xs&amp;0x0F);      //LSB adress<br />lcd_send_command(0x10+(xs&gt;&gt;4)); //MSB adress<br /><br />//set page adress<br />lcd_send_command(0xB0+ps);<br /><br />j=0xFF; //use j as buffer<br />if (pe == ps)<br />{<br />j=ye%8-0xFF; //calculate stop within first page<br />}<br /><br />yr=ys%8; //calculate the start within first page<br /><br />for(i=xs; i&lt;=xe; i++) //loop starting first colomn to last coloumn<br />{<br /><br />lcd_buffer&#91;i&#93;&#91;ps&#93;|=j&lt;&lt;yr; //fill the buffer<br />lcd_send_data(lcd_buffer&#91;i&#93;&#91;ps&#93;);//send the changed pages of the buffer to the display<br />}<br /><br />//-------------Fill part of endpage--------------<br />//Set coloumn adress<br />lcd_send_command(xs&amp;0x0F);      //LSB adress<br />lcd_send_command(0x10+(xs&gt;&gt;4)); //MSB adress<br /><br />//set page adress<br />lcd_send_command(0xB0+pe);<br />yr=ye%8; ///calculate the stop within last page<br /><br />for(i=xs; i&lt;=xe; i++)//loop starting first colomn to last coloumn<br />{<br />lcd_buffer&#91;i&#93;&#91;pe&#93;|=(0xFF&gt;&gt;(8-yr-1));//fill the buffer<br />lcd_send_data(lcd_buffer&#91;i&#93;&#91;pe&#93;);//send the changed pages of the buffer to the display<br />}<br /><br /><br />//-------------------Fill middle pages----------------------<br />for(j=ps+1; j&lt;pe; j++) //loop starting first middle page to last middle page<br />{<br />//Set coloumn adress<br />lcd_send_command(xs&amp;0x0F); //LSB adress<br />lcd_send_command(0x10+(xs&gt;&gt;4));//MSB adress<br /><br />//set page adress<br />lcd_send_command(0xB0+j);<br /><br />for(i=xs; i&lt;=xe; i++)//loop starting first colomn to last coloumn<br />{<br /><br />lcd_buffer&#91;i&#93;&#91;j&#93;=0xFF; //fill the buffer<br />lcd_send_data(0xFF);   //fill display same as lcd_send_data(lcd_buffer&#91;i&#93;&#91;j&#93;);<br />}<br />}<br /><br />}<br /><br /><br />/*--------------------------------------<br />Function:lcd_line()<br />Input:xs, ys, xe, ye<br />Output:---<br />Description:draw a stright line, please<br />make sure, that the line is<br />either horizontal or<br />vertical<br />--------------------------------------*/<br />void lcd_line(uint8_t xs, uint8_t ys, uint8_t xe, uint8_t ye)<br />{<br />//i,j are index variables<br />//ps, pe are page start and endadress<br />//yr is restpixels<br />uint8_t i=0,j=0, ps=0, pe=0, yr=0;<br /><br />ps=ys/8; //calculate startpage<br />pe=ye/8; //calculate endpage<br /><br /><br />//-------------Starpage--------------<br />//Set coloumn adress<br />lcd_send_command(xs&amp;0x0F);    //LSB adress<br />lcd_send_command(0x10+(xs&gt;&gt;4));//MSB adress<br /><br />//set page adress<br />lcd_send_command(0xB0+ps);<br /><br />yr=ys%8; //calculate the start within first page<br /><br /><br />if (ys==ye) //horizontal line<br />{<br />for(i=xs; i&lt;=xe; i++) //loop starting first colomn to last coloumn<br />{<br /><br />lcd_buffer&#91;i&#93;&#91;ps&#93;|=0x01&lt;&lt;yr;     //fill the buffer<br />lcd_send_data(lcd_buffer&#91;i&#93;&#91;ps&#93;);//send the changed pages of the buffer to the display<br />}<br />}<br />else //vertical line<br />{<br />i=0xFF; //use i as buffer<br />if (ps == pe) //if line is only in one page, you have to make sure<br />  //that you only fill a apart of the page<br />{<br />i=ye%8-0xFF; //calculate stop within first page<br />}<br />//Fill part of startpage<br />lcd_buffer&#91;xs&#93;&#91;ps&#93;|=i&lt;&lt;yr;        //fill the buffer<br />lcd_send_data(lcd_buffer&#91;xs&#93;&#91;ps&#93;);//send the changed pages of the buffer to the display<br /><br />if(ps==pe) //if line is only in one page, you can leave funtion here.<br /> return;<br /><br />//Fill part of endpage<br />//Set coloumn adress<br />lcd_send_command(xs&amp;0x0F);      //LSB adress<br />lcd_send_command(0x10+(xs&gt;&gt;4));//MSB adress<br />//set page adress<br />lcd_send_command(0xB0+pe);<br /><br />yr=ye%8; //calculate the stop within last page<br />lcd_buffer&#91;xs&#93;&#91;pe&#93;|=(0xFF&gt;&gt;(8-yr)); //fill the buffer<br />lcd_send_data(lcd_buffer&#91;xs&#93;&#91;pe&#93;);//send the changed pages of the buffer to the display<br /><br />//-------------------Fill middle pages----------------------<br />for(j=ps+1; j&lt;pe; j++) //loop starting first middle page to last middle page<br />{<br />//Set coloumn adress<br />lcd_send_command(xs&amp;0x0F);     //LSB adress<br />lcd_send_command(0x10+(xs&gt;&gt;4)); //MSB adress<br /><br />//set page adress<br />lcd_send_command(0xB0+j);<br /><br />lcd_buffer&#91;xs&#93;&#91;j&#93;=0xFF;//fill the buffer<br />lcd_send_data(0xFF);   //fill display same as lcd_send_data(lcd_buffer&#91;i&#93;&#91;j&#93;);<br />}<br /><br />}<br /><br />}<br /><br />/*--------------------------------------<br />Function:lcd_rect()<br />Input:xs, ys, xe, ye<br />Output:---<br />Description:draw a rectanlge<br />--------------------------------------*/<br />void lcd_rect(uint8_t xs, uint8_t ys, uint8_t xe, uint8_t ye)<br />{<br />lcd_line(xs, ys, xe, ys); //upper line<br />lcd_line(xs, ye, xe, ye); //lower line<br />lcd_line(xs, ys, xs, ye); //left line<br />lcd_line(xe, ys, xe, ye); //right line<br />}<br /><br /><br />/*--------------------------------------<br />Function:lcd_char()<br />Input:x, y, data, *font, linkmode<br />Output:---<br />Description:print a single char on x,y<br />--------------------------------------*/<br />void lcd_char(uint8_t x, uint8_t y, uint8_t data, const uint8_t *font, uint8_t linkmode)<br />{<br />//i,j are index variables<br />//n is flag, if char has to be shifted in one page<br />//ps, pe are page start and endadress<br />//yr is restpixels<br />//byte buffer to store char-data<br />uint8_t i=0, j=0, n=1, ps=0, pe=0, yr=0, byte=0;<br /><br />unsigned int font_pos=0; //postion of data within the font array<br /><br /><br />ps=y/8; //calculate startpage<br />pe=pgm_read_byte(font + 6)+ps; //calculate endpage<br />yr=y%8;  //calculate the start within first page<br /><br />if(yr) //if you are not starting at 0 in a page, the<br />pe++; //endpage is increased with one<br /><br />//calculate positon of data in font array<br />//(data*Bytes pro Char)-(start of chars * bytes pro char)+bytes for header<br />font_pos=(data*pgm_read_byte(font + 7))-(pgm_read_byte(font + 2)*pgm_read_byte(font + 7))+8;<br /><br />font_pos-=pgm_read_byte(font + 4); //subtract pixels for one char, because it's added again in loop<br /><br />if(linkmode==ADD)  //linkmode add, the pixels of char are added into display<br />{<br />for(j=ps; j&lt;pe;j++)  //loop starting first page to last page<br />{<br />//Set coloumn adress<br />lcd_send_command(x&amp;0x0F);     //LSB adress<br />lcd_send_command(0x10+(x&gt;&gt;4));//MSB adress<br /><br />//set page adress<br />lcd_send_command(0xB0+j);<br /><br />font_pos+=pgm_read_byte(font + 4); //set new postion of data pointer to get next data for one page<br /><br />if(n) //jump alternating in if clause or else clause<br />{<br />for(i=x; i&lt;pgm_read_byte(font + 4)+x; i++) //loop starting first colomn to last coloumn<br />{<br />byte=pgm_read_byte(font+i+font_pos-x); //get data from font buffer (subtract x because i is not started with 0)<br />lcd_buffer&#91;i&#93;&#91;j&#93;|=byte&lt;&lt;yr;      //write data into display buffer, but shifted if it is needed<br />lcd_send_data(lcd_buffer&#91;i&#93;&#91;j&#93;); //send the changed pages of the buffer to the display<br />}<br /><br />if(yr) //next step is shifting the char the other direction, if the char is not writtin whithin one page<br />n=0;<br />}<br />else //shift the char another direction<br />{<br />font_pos-=pgm_read_byte(font + 4); //set new postion of data pointer to get next data for one page (substract because it<br />   //is added again in next loop<br />for(i=x; i&lt;pgm_read_byte(font + 4)+x; i++)<br />{<br />byte=pgm_read_byte(font+i+font_pos-x); //get data from font buffer (subtract x because i is not started with 0)<br />lcd_buffer&#91;i&#93;&#91;j&#93;|=byte&gt;&gt;(8-yr);  //write data into display buffer, but shifted if it is needed<br />lcd_send_data(lcd_buffer&#91;i&#93;&#91;j&#93;); //send the changed pages of the buffer to the display<br />}<br />n=1; //next step is shifting the char the other direction<br /><br />if(j&lt;pe-1)<br />j--;  //the page recently filled has content from last part, the rest would remain empty.<br />  //Because of that, the page is decremented, because in next loop the page is inceased again to the<br />  //actual written page. New data is written into same page<br />}<br /><br /><br />}<br />}<br />else //another linkmode, data is addad with xor<br />{<br />for(j=ps; j&lt;pe;j++)  //loop starting first page to last page<br />{<br />//Set coloumn adress<br />lcd_send_command(x&amp;0x0F);    //LSB adress<br />lcd_send_command(0x10+(x&gt;&gt;4)); //MSB adress<br /><br />//set page adress<br />lcd_send_command(0xB0+j);<br /><br />font_pos+=pgm_read_byte(font + 4); //set new postion of data pointer to get next data for one page<br /><br />if(n) //jump alternating in if clause or else clause<br />{<br />for(i=x; i&lt;pgm_read_byte(font + 4)+x; i++) //loop starting first colomn to last coloumn<br />{<br />byte=pgm_read_byte(font+i+font_pos-x); //get data from font buffer (subtract x because i is not started with 0)<br />lcd_buffer&#91;i&#93;&#91;j&#93;^=byte&lt;&lt;yr;      //write data into display buffer, but shifted if it is needed<br />lcd_send_data(lcd_buffer&#91;i&#93;&#91;j&#93;); //send the changed pages of the buffer to the display<br />}<br /><br />if(yr) //next step is shifting the char the other direction, if the char is not writtin whithin one page<br />n=0;<br />}<br />else //shift the char another direction<br />{<br />font_pos-=pgm_read_byte(font + 4); //set new postion of data pointer to get next data for one page (substract because it<br />   //is added again in next loop<br />for(i=x; i&lt;pgm_read_byte(font + 4)+x; i++)<br />{<br />byte=pgm_read_byte(font+i+font_pos-x); //get data from font buffer (subtract x because i is not started with 0)<br />lcd_buffer&#91;i&#93;&#91;j&#93;^=byte&gt;&gt;(8-yr);  //write data into display buffer, but shifted if it is needed<br />lcd_send_data(lcd_buffer&#91;i&#93;&#91;j&#93;);  //send the changed pages of the buffer to the display<br />}<br />n=1; //next step is shifting the char the other direction<br /><br />if(j&lt;pe-1)<br />j--; //the page recently filled has content from last part, the rest would remain empty.<br /> //Because of that, the page is decremented, because in next loop the page is inceased again to the<br /> //actual written page. New data is written into same page<br />}<br />}<br />}<br /><br />}<br /><br /><br />/*--------------------------------------<br />Function:lcd_string()<br />Input:x, y, data, *font, linkmode<br />Output:---<br />Description:print a string on x,y<br />--------------------------------------*/<br />void lcd_string(uint8_t x, uint8_t y, char *data, const uint8_t *font, uint8_t linkmode)<br />{<br />//i is index variable<br />//xe, ye is endpostion of string<br />//length is number of chars<br />uint8_t i=0, xe=0, ye=0, length=0;<br /><br />if(linkmode==DELETE)<br />{<br />//get number of chars<br />while(data&#91;i&#93;)<br />{<br />i++;<br />}<br />length=i;<br /><br />xe=length*pgm_read_byte(font + 4)+x; //claculate length of string<br />ye=y+pgm_read_byte(font + 5);        //calcutlate hight of string<br />lcd_clear(x,y,xe,ye); //clear a rectangle where the string is printed later on<br />}<br />else if(linkmode==INVERS)<br />{<br />//get number of chars<br />while(data&#91;i&#93;)<br />{<br />i++;<br />}<br />length=i;<br /><br />xe=length*pgm_read_byte(font + 4)+x; //claculate length of string<br />ye=y+pgm_read_byte(font + 5); //calcutlate hight of string<br />lcd_fill(x,y,xe,ye); //fill a rectangle where the string is printed later on<br />}<br />else<br />{<br /> //other modes<br />}<br /><br /><br />i=0; //reset i<br />while(data&#91;i&#93;)<br />{<br />lcd_char(x,y,data&#91;i&#93;, font, linkmode); //write single char<br />x+=pgm_read_byte(font + 4); //calculate next x postion for next char<br />i++;<br />}<br />}<br /><br />/*--------------------------------------<br />Function:      fascii<br />Input:          zmienna (i)<br />Output:         ---<br />Description:  przekonwertuj zmienna (i) na lancuch tekstowy<br />--------------------------------------*/<br />char* fascii(float i)  //123,456       /* Function to convert a floating point number into a stream of ASCII characters */<br /><br />{<br />    char puffer&#91;17&#93;;<br />    char *s; int j,k;<br />    float a,b,c;<br />    j=i;<br />    s=(char*)malloc(10*sizeof(char));<br />    itoa(j, puffer, 10);<br />    strcat(puffer, &quot;.&quot;);<br />    //s=iascii(j);<br />    //printf(&quot;%s.&quot;,s);<br />    i-=j;<br /><br />    for(a=0,c=0.1,k=1;(b=(i-a))!=0;a+=c)<br />    {<br />        if(b&lt;0)<br />        {<br />            b=i+a;<br />            k++; a=c/10; c=a;<br />        }<br />        if(a==1)<br />        { a=c/10;c=a;}<br />    }<br /><br />    for(;k&gt;0;k--)<br />    {<br />        i=10*i;<br />    }<br />    j=i;<br />    strcat(puffer, itoa(j, s, 10));<br />    //s=iascii(j);<br />    return puffer;<br />}<br /><br />void lcd_float (uint8_t x, uint8_t y, float i, uint8_t linkmode)<br />{<br /> lcd_string( x, y, fascii(i), ptr_font_8x16, linkmode);<br />}<br /><br /><br />//----------------- END lcd.c ------------[/syntax]<br /><br />Dla pewności że w pliku lcd.h jest wszystko Ok zamieszczam go również<br />[syntax=c]/*--------------------------------------|<br />|File: lcd.h|<br />|Date:    August 2011|<br />|Author: J. Moertl|<br />|Description:Headerfile for lcd function|<br />|--------------------------------------*/<br />#ifndef _LCD_H<br />#define _LCD_H<br /><br />//----------------- Definitions -----------<br />#define DELETE 0<br />#define ADD1<br />#define INVERS 2<br /><br />//-------------- Global varibales ----------<br />extern unsigned char lcd_buffer&#91;XPIXEL&#93;&#91;YPIXEL/8&#93;;<br /><br />//--------------- Macrofuncitons ----------<br />#define lcd_send_command(data) lcd_send(data, 0)<br />#define lcd_send_data(data) lcd_send(data, 1)<br />#define lcd_clear_all() lcd_clear(0,0,XPIXEL-1,YPIXEL-1)<br />#define lcd_fill_all() lcd_fill(0,0,XPIXEL-1,YPIXEL-1)<br /><br />//----------------- Functions ------------<br />void lcd_init(void);<br />void lcd_send(uint8_t data, uint8_t cd);<br />void lcd_clear(uint8_t xs, uint8_t ys, uint8_t xe, uint8_t ye);<br />void lcd_fill(uint8_t xs, uint8_t ys, uint8_t xe, uint8_t ye);<br />void lcd_line(uint8_t xs, uint8_t ys, uint8_t xe, uint8_t ye);<br />void lcd_rect(uint8_t xs, uint8_t ys, uint8_t xe, uint8_t ye);<br />void lcd_char(uint8_t x, uint8_t y, uint8_t data, const uint8_t *font, uint8_t linkmode);<br />void lcd_string(uint8_t x, uint8_t y, char *data, const uint8_t *font, uint8_t linkmode );<br />void lcd_float (uint8_t x, uint8_t y, float i, uint8_t linkmode); //tutaj dodałem tą funkcję!!!!!!!!!!!!!!!!!!!!!!<br /><br />#endif<br />//----------------- EOF lcd.h ------------[/syntax]<br /><br />nie jestem pewny w jaki sposób mam zadeklarować w pliku lcd.h poniższą funkcję<br />[syntax=c]char* fascii(float i)  //123,456       /* Function to convert a floating point number into a stream of ASCII characters */<br /><br />{<br />    char puffer&#91;17&#93;;<br />    char *s; int j,k;<br />    float a,b,c;<br />    j=i;<br />    s=(char*)malloc(10*sizeof(char));<br />    itoa(j, puffer, 10);<br />    strcat(puffer, &quot;.&quot;);<br />    //s=iascii(j);<br />    //printf(&quot;%s.&quot;,s);<br />    i-=j;<br /><br />    for(a=0,c=0.1,k=1;(b=(i-a))!=0;a+=c)<br />    {<br />        if(b&lt;0)<br />        {<br />            b=i+a;<br />            k++; a=c/10; c=a;<br />        }<br />        if(a==1)<br />        { a=c/10;c=a;}<br />    }<br /><br />    for(;k&gt;0;k--)<br />    {<br />        i=10*i;<br />    }<br />    j=i;<br />    strcat(puffer, itoa(j, s, 10));<br />    //s=iascii(j);<br />    return puffer;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2382">tomson5</a> — 24 paź 2014, o 18:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[doman89]]></name></author>
<updated>2014-10-24T14:28:46+01:00</updated>
<published>2014-10-24T14:28:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=100483#p100483</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=100483#p100483"/>
<title type="html"><![CDATA[Re: Lcd Dogs102-6 Jak wyświetlić zawartość zmiennej?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8910&amp;p=100483#p100483"><![CDATA[
<div class="quotetitle">tomson5 napisał(a):</div><div class="quotecontent"><br />Zanim wrócę do dom i przetestuję to zadam kilka pytań.  Rozumiem że zapis int i =9.5  jest błędny ponieważ obcina mi ułamek.  Powinno być float i =9.5   Pytam ponieważ myślałem że skoro eclipse nie dał ostrzeżenia to jest ok. <br /></div><br /><br />Tak int - tylko liczby całkowite,<br />float - liczby zmienne.<br /><br />Czemu eclipse nie dał ostrzeżenia to nie wiem.<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Czy tą nową funkcję muszę deklarować w pliku lcd.h? <br /></div><br /><br />Jeżeli chcesz korzystać z niej w pliku main.c czy jakimkolwiek innym to oczywista oczywistość, że tak <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><div class="quotetitle">tomson5 napisał(a):</div><div class="quotecontent"><br />Czy mam ją umieścić w pliku lcd.c czy main? <br /></div><br />Na logikę w lcd.c - to jest Twoja biblioteka do wyświetlacza i tam trzymaj wszystkie funkcje z nim związane.<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Rozumiem że w poniższej funkcji powinno być float i zamiast float zmienna To pozostałości z początku tematu gdzie nazwałem swoją zmienną zmienna<br /></div><br /><br />Kolega tak ma być float, ale wyżej co Ci podałem to z kolei ja się zakręciłem - tak to jest przy metodzie CTRL+C i CTRL+V <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Naturalnie nie potrzebny Ci itoa tylko funkcja z którą walczymy &quot;fascii&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Zaraz zamieszczę kod poprawiony.<br /><br /><span style="color: #0000FF">z Niebieskim pozdRowieniem,<br />Doman89</span><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 7 minutach ]</span></strong><br /><br />[syntax=c]void lcd_float (uint8_t x, uint8_t y, float zmienna,  uint8_t linkmode) <br />{ <br /> lcd_string( x, y, fascii( zmienna), ptr_font_6x8, linkmode); <br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3271">doman89</a> — 24 paź 2014, o 14:28</p><hr />
]]></content>
</entry>
</feed>