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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-06-29T23:18:17+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=3408&amp;mode</id>
<entry>
<author><name><![CDATA[1bobik1]]></name></author>
<updated>2013-06-29T23:18:17+01:00</updated>
<published>2013-06-29T23:18:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40462#p40462</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40462#p40462"/>
<title type="html"><![CDATA[Re: Definiowanie własnych znaków w locie (HD44780)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40462#p40462"><![CDATA[
Mirku dziękuję za podpowiedź (taką dawał mi też Anty)<br />Ale pozostanę jednak przy wersji z minusem. W tym przypadku nie ma chyba sensu dodawanie kolejnej biblioteki do tak błahego celu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=464">1bobik1</a> — 29 cze 2013, o 23:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-06-29T05:53:59+01:00</updated>
<published>2013-06-29T05:53:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40407#p40407</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40407#p40407"/>
<title type="html"><![CDATA[Re: Definiowanie własnych znaków w locie (HD44780)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40407#p40407"><![CDATA[
można też tak <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ... może troszkę prościej wyjdzie ? hmmm ?<br /><br />[syntax=c]#include &lt;stdlib.h&gt;; // dołączamy ten nagłówek<br /><br /><br />lcd_defchar_P(0x81,znak&#91; abs( bar.val ) &#93;;[/syntax]<br /><br />i po zawodach <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=54">mirekk36</a> — 29 cze 2013, o 05:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[barney]]></name></author>
<updated>2013-06-28T23:05:39+01:00</updated>
<published>2013-06-28T23:05:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40404#p40404</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40404#p40404"/>
<title type="html"><![CDATA[Re: Definiowanie własnych znaków w locie (HD44780)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40404#p40404"><![CDATA[
No jeżeli tutaj bar.val jest zawsze ujemne to ok, jeżeli nie to:<br />lcd_defchar_P(0x81,znak[(((bar.val%5)&lt;0) ? (-(bar.val%5)):(bar.val%5))];<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=973">barney</a> — 28 cze 2013, o 23:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[1bobik1]]></name></author>
<updated>2013-06-28T23:01:50+01:00</updated>
<published>2013-06-28T23:01:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40403#p40403</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40403#p40403"/>
<title type="html"><![CDATA[Re: Definiowanie własnych znaków w locie (HD44780)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40403#p40403"><![CDATA[
[syntax=c]lcd_defchar_P(0x81,znak&#91;-bar.val%5&#93;);[/syntax] i działa <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> dzięki<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=464">1bobik1</a> — 28 cze 2013, o 23:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[barney]]></name></author>
<updated>2013-06-28T22:06:46+01:00</updated>
<published>2013-06-28T22:06:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40402#p40402</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40402#p40402"/>
<title type="html"><![CDATA[Re: Definiowanie własnych znaków w locie (HD44780)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40402#p40402"><![CDATA[
if (popo&lt;0) popo=-popo;<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=973">barney</a> — 28 cze 2013, o 22:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[1bobik1]]></name></author>
<updated>2013-06-28T22:00:57+01:00</updated>
<published>2013-06-28T22:00:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40401#p40401</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40401#p40401"/>
<title type="html"><![CDATA[Re: Definiowanie własnych znaków w locie (HD44780)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40401#p40401"><![CDATA[
Dziękuję pięknie <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> działa<br /><br />mam jeszcze takie pytanko:<br />Jak najprościej zamienić liczbę ujemną w dodatnią<br />a tym fragmencie: [syntax=c]lcd_defchar_P(0x81,znak&#91;bar.val%5&#93;);[/syntax] bar.val ma wartość ujemną, a muszę obliczyć to tak jakby była dodatnia, jak to najprościej zapisać ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=464">1bobik1</a> — 28 cze 2013, o 22:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-06-28T12:35:23+01:00</updated>
<published>2013-06-28T12:35:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40343#p40343</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40343#p40343"/>
<title type="html"><![CDATA[Re: Definiowanie własnych znaków w locie (HD44780)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40343#p40343"><![CDATA[
a no widzisz - teraz to inna rozmowa<br /><br />więc lcd_defchar_P niszczy ustawienie kursora i trzeba go znowu ustawić - dlatego nie wyświetla ci się ten znak<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 28 cze 2013, o 12:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[1bobik1]]></name></author>
<updated>2013-06-28T11:47:16+01:00</updated>
<published>2013-06-28T11:47:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40338#p40338</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40338#p40338"/>
<title type="html"><![CDATA[Re: Definiowanie własnych znaków w locie (HD44780)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40338#p40338"><![CDATA[
Przepraszam za mało precyzyjne wyjaśnienie tematu i śpieszę z wyjaśnieniami.<br /><br />Program się nie zawiesza, wyświetla w pierwszej linii wartość a w drugiej słupek.<br />tzn wyświetla znaki: środka i cały wypełniony znak <br />Znaki te są wrzucane do pamięci LCD przed funkcją rysującą w funkcji inicjalizacyjnej:<br />[syntax=c]void bar_init(void){<br />lcd_defchar_P(0x80,znak&#91;0&#93;);   //   znak na srodku<br />lcd_defchar_P(0x85,znak&#91;5&#93;);   // znak cały wypełniony<br />}[/syntax]<br /><br />Problem jest tu:<br />[syntax=c]// końcówka<br />if(bar.val%5){<br />lcd_defchar_P(0x81,znak&#91;bar.val%5&#93;);<br />lcd_char(0x81);<br />}[/syntax]<br /><br />W przypadku gdy wartość podawana do funkcji daje resztę z dzielenia przez 5, to ten kawałek kodu powinien zdefiniować i wyświetlić odpowiedni znak, niestety nic nie definiuje i nic nie wyświetla.<br /><br />Tak to wygląda:<br />bar.val=18<br /><br />                  &gt;&lt; ||||| ||||| |||||<br />a powinno wyglądać tak:<br />                  &gt;&lt; ||||| ||||| ||||| |||<br />                                                ^<br />                                                |<br />                                              ten znak powinien być definiowany przed każdym wyświetleniem.<br /><br />Mam nadzieję że teraz będzie jaśniej i jeszcze raz przepraszam za tak lakoniczny opis (taka wada genetyczna <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=464">1bobik1</a> — 28 cze 2013, o 11:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-06-28T05:34:13+01:00</updated>
<published>2013-06-28T05:34:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40315#p40315</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40315#p40315"/>
<title type="html"><![CDATA[Re: Definiowanie własnych znaków w locie (HD44780)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40315#p40315"><![CDATA[
Panowie, panowie .... kiedy nauczycie się właściwie zadawać pytanie ? na forum <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><div class="quotetitle">1bobik1 napisał(a):</div><div class="quotecontent"><br />Z tym ostatnim jest problem, nie chce to działać,<br /></div><br /><div class="quotetitle">1bobik1 napisał(a):</div><div class="quotecontent"><br />problem jest z definiowaniem znaku w locie<br /></div><br /><br />- co to znaczy nie chce działać ?<br />- co to znaczy że jest problem ?<br /><br />no przecież to chyba oczywiste że jak się zadaje pytanie to coś nie chce działać i jest problem - ale czy nie sądzisz że warto byłoby podać chociaż jakiś elementarny opis tego co się u ciebie dzieje? spróbować chociaż wskazać podejrzane przez ciebie miejsce w kodzie ?<br /><br />nie chce działać czyli co? - w ogóle się nie wyświetlać? wyświetla się źle, program się zawiesza? wszystko znika z ekranu ? no takich pytań po takim pytaniu można mnożyć  w nieskończoność<br /><br />jest problem z definiowaniem znaku w locie czyli co ? na czym on polega ? o co chodzi ? <br /><br /><img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> no nie można tak - bo później dziwicie się, że nikt nie odpowiada czy nie pomaga .... na pytania typu:<br /><br />&quot;macie tu hektolitr kodu, schematu wam nie dam, nie opiszę na czym polega problem, a wy znajdźcie mi gdzie jest błąd i jaki?&quot;<br /><br /><img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> tylko proszę nie denerwuj się - bo nie jest moim celem jakoś ci tu przygadać tylko zmotywować do zadawania lepszych i bardziej precyzyjnych pytań ok ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 28 cze 2013, o 05:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[1bobik1]]></name></author>
<updated>2013-06-27T20:59:39+01:00</updated>
<published>2013-06-27T20:59:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40287#p40287</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40287#p40287"/>
<title type="html"><![CDATA[Definiowanie własnych znaków w locie (HD44780)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3408&amp;p=40287#p40287"><![CDATA[
Witam<br /><br /><br />Napisałem sobie taki mini kod do rysowania paska-wizualizacji liczb.<br />Tak to ma wyglądać: liczba 18                       &gt;&lt; ||||| ||||| ||||| |||                (te pięć kresek to jedna komórka wyświetlacza)<br />                            liczba -12   || ||||| ||||| &gt;&lt;            <br /><br />Do takiego rysowania potrzebujemy 10 własnych znaków, jak wiemy w sterowniku HD44780 mamy dostępnych tylko 8 miejsc na te znaki.<br />Dlatego wpadłem na pomysł by zamiast 8 własnych znaków, użyć 3 - całe pole zapełnione - środkowy znak - znak końca(definiowany w locie).<br />Z tym ostatnim jest problem, nie chce to działać, ja nie wiem z czym jest problem więc pytam mądrzejszych <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />tu kod:<br /><br />bar.c<br />[syntax=c]#include &lt;avr/pgmspace.h&gt;<br /><br />#include &quot;bar.h&quot;<br />#include &quot;LCD/lcd44780.h&quot;<br /><br /><br />const uint8_t znak&#91;10&#93;&#91;8&#93; PROGMEM = {<br />{0,17,27,31,27,17,0,0},<br />{16,16,16,16,16,16,16,0},<br />{24,24,24,24,24,24,24,0},<br />{28,28,28,28,28,28,28,0},<br />{30,30,30,30,30,30,30,0},<br />{31,31,31,31,31,31,31,0},<br />{1,1,1,1,1,1,1,0},<br />{3,3,3,3,3,3,3,0},<br />{7,7,7,7,7,7,7,0},<br />{15,15,15,15,15,15,15,0}<br />};<br /><br /><br /><br /><br /><br />void bar_init(void){<br /><br />lcd_defchar_P(0x80,znak&#91;0&#93;);   //   znak na srodku<br />lcd_defchar_P(0x85,znak&#91;5&#93;);   // znak cały wypełniony<br /><br /><br />}<br /><br /><br />void draw_bar(t_bar bar, uint8_t x, uint8_t y){<br /><br />int8_t i=(bar.v_min/5),j=(bar.v_max/5);<br /><br /><br />//  Czyszczenie pola BAR<br />lcd_locate(y,x+i);<br />while(i&lt;=j){<br />lcd_str(&quot; &quot;);<br />i++;<br />}<br /><br />//Rysowanie znaku srodka<br />lcd_locate(y,x);<br />lcd_char(0x80);<br /><br />//rysowanie słupka w prawo<br />if(bar.val&gt;0){<br /><br />//całe<br />i=0;<br />while(i&lt;(bar.val/5)){<br />lcd_locate(y,(x+1)+i);<br />lcd_char(0x85);<br />i++;<br />}<br /><br />// końcówka<br /><br />if(bar.val%5){<br />lcd_defchar_P(0x81,znak&#91;bar.val%5&#93;);<br />lcd_char(0x81);<br />}<br /><br />}<br /><br /><br />//rysowanie słupka w lewo<br />if(bar.val&lt;0){<br /><br />//całe<br />i=0;<br />while(i&gt;(bar.val/5)){<br />lcd_locate(y,(x-1)-i);<br />lcd_char(0x85);<br />i--;<br />}<br /><br />// końcówka<br /><br />if(bar.val%5){<br />lcd_defchar_P(0x81,znak&#91;bar.val%5&#93;);<br />lcd_char(0x81);<br />}<br /><br />}<br /><br /><br /><br /><br /><br />}[/syntax]<br /><br /><br />bar.h<br /><br />[syntax=c]#ifndef BAR_H_<br />#define BAR_H_<br /><br /><br /><br />#endif /* BAR_H_ */<br /><br /><br /><br />typedef struct {<br />int8_t v_min, v_max, val; // v_min i v_max podzielne przez 5<br />    } t_bar;<br /><br /><br /><br /><br />void draw_bar(t_bar bar, uint8_t x, uint8_t y);<br />void bar_init(void);[/syntax]<br /><br />main.c<br /><br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 08-04-2013<br /> *      Author: Mirosław Kardaś<br /> */<br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;LCD/lcd44780.h&quot;<br />#include &quot;MK_ENCODER/mk_encoder.h&quot;<br />#include &quot;bar.h&quot;<br />//#include &quot;terminal.h&quot;<br /><br /><br /><br /><br /><br />// własne funkcje do zarejestrowania<br />void my_encoder( int8_t dir, int8_t w );<br />void enc_switch( void );<br /><br /><br />t_bar volume;<br />uint8_t speed;// prędkość zliczania enkodera<br /><br />uint32_t wynik;// wartość zliczana przez enkoder<br /><br /><br /><br /><br /><br /><br />int main(void) {<br /><br />volume.v_max=35;<br />volume.v_min=-35;<br /><br /><br /><br />lcd_init();<br />bar_init();<br />lcd_str(&quot;start...&quot;);<br /><br /><br />encoder_init(1);<br />register_enc_callback( my_encoder );<br />register_sw_callback( enc_switch );<br /><br /><br /><br /><br /><br /><br /><br /><br />sei();<br />while(1) {<br /><br />ENCODER_EVENT( speed );<br /><br />}<br /><br />}<br /><br /><br /><br />void my_encoder( int8_t dir, int8_t w ) {<br /><br />wynik += w;<br />//if (wynik &gt; volume.v_max) wynik=0;<br />//if (wynik &lt; volume.v_min) wynik=0;<br />volume.val=wynik;<br /><br /><br />draw_bar(volume,8,1);<br />}<br /><br />void enc_switch( void ) {<br /><br />wynik = 0;<br /><br />speed++;<br /><br />}[/syntax]<br /><br /><br />Dodam że kompilator błędów nie widzi, problem jest z definiowaniem znaku w locie.<br />Wszystko inne sprawdzałem i działa jak powinno <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Proszę o podpowiedzi<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=464">1bobik1</a> — 27 cze 2013, o 20:59</p><hr />
]]></content>
</entry>
</feed>