<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[SDS PLC/PAC: Měření Energie & OnlineTechnology.cz - Verzia s LCD]]></title>
		<link>https://forum.sds.an-d.cz/viewtopic.php?id=156</link>
		<atom:link href="https://forum.sds.an-d.cz/extern.php?action=feed&amp;tid=156&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Nejnovější příspěvky v Verzia s LCD.]]></description>
		<lastBuildDate>Fri, 13 Apr 2012 16:01:37 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Verzia s LCD]]></title>
			<link>https://forum.sds.an-d.cz/viewtopic.php?pid=1747#p1747</link>
			<description><![CDATA[<p>Podsvícení LCD je napevno z napájecí větve přes pevné rezistory. Pokud si je vyměníte za trimry, dosáhnete svého požadovaného výsledku.</p>]]></description>
			<author><![CDATA[null@example.com (adamn)]]></author>
			<pubDate>Fri, 13 Apr 2012 16:01:37 +0000</pubDate>
			<guid>https://forum.sds.an-d.cz/viewtopic.php?pid=1747#p1747</guid>
		</item>
		<item>
			<title><![CDATA[Re: Verzia s LCD]]></title>
			<link>https://forum.sds.an-d.cz/viewtopic.php?pid=1736#p1736</link>
			<description><![CDATA[<p>Aktualne mam problem s LCD podsvietenim (svieti len prava strana LCD), ale napriek tomu sa chcem spytat, ci neuvazujete do buducnosti aj o moznosti vlastneho nastavenia jasu a podsvietenia. Softverovo to asi nepojde, ale 2 male trimre by to snad vedeli poriesit?</p>]]></description>
			<author><![CDATA[null@example.com (vaanja)]]></author>
			<pubDate>Wed, 04 Apr 2012 18:32:34 +0000</pubDate>
			<guid>https://forum.sds.an-d.cz/viewtopic.php?pid=1736#p1736</guid>
		</item>
		<item>
			<title><![CDATA[Re: Verzia s LCD]]></title>
			<link>https://forum.sds.an-d.cz/viewtopic.php?pid=925#p925</link>
			<description><![CDATA[<p>velka vdaka, super prispevok, takto sa mi to paci.<br />este sa chcem spytat, ci existuje nejaka character map - ake znaky sa daju zobrazit na LCD?<br />a tiez ma zaujima, ci sa da pristupovat na LCD aj po pixeloch? (verim ze ano, ved aj vase logo je urcite bitmapa).</p>]]></description>
			<author><![CDATA[null@example.com (vaanja)]]></author>
			<pubDate>Wed, 21 Dec 2011 21:02:23 +0000</pubDate>
			<guid>https://forum.sds.an-d.cz/viewtopic.php?pid=925#p925</guid>
		</item>
		<item>
			<title><![CDATA[Re: Verzia s LCD]]></title>
			<link>https://forum.sds.an-d.cz/viewtopic.php?pid=924#p924</link>
			<description><![CDATA[<p><strong>CITACE Z Wiki.MereniEnergie.cz</strong> - pro aktuální verzi se podívejte na WiKi:</p><p>Máte-li SDS MACRO vybavené doplňkovým modulem (interním) s displayem (LCD), můžete na tento display psát libovolné texty, pomocí funkce lcd_echo.</p><p>Display je provozován v režimu čtyři řádky po 22 znaků.</p><div class="codebox"><pre><code> lcd_echo(POZICE_NA_ŘÁDKU, ŘÁDEK, BARVA, ...text...);</code></pre></div><p>Funkce se používá shodně jako echo, ovšem je zde potřeba určit, na který ze dvou řádků se má daný výstup zapsat - a proto je potřeba hned první parametr při volání této funkce použít pro určení řádku. Druhý parametr je vyhrazen pro určení barvy, pro aktuální použitý display můžete zvolit:</p><p>&nbsp; &nbsp; neinvertovaná barva - číslo 0<br />&nbsp; &nbsp; invertovaná barva - číslo 1 </p><p>určení pozice na řádku:</p><p>&nbsp; &nbsp; číslo 1 až 22 </p><p>a pro určení řádku:</p><p>&nbsp; &nbsp; první řádek (a bude nejprve smazán) - číslo 1<br />&nbsp; &nbsp; druhý řádek (a bude nejprve smazán) - číslo 2<br />&nbsp; &nbsp; třetí řádek (a bude nejprve smazán) - číslo 3<br />&nbsp; &nbsp; čtvrtý řádek (a bude nejprve smazán) - číslo 4<br />&nbsp; &nbsp; první řádek (nebude smazán) - číslo 100<br />&nbsp; &nbsp; druhý řádek (nebude smazán) - číslo 200<br />&nbsp; &nbsp; třetí řádek (nebude smazán) - číslo 300<br />&nbsp; &nbsp; čtvrtý řádek (nebude smazán) - číslo 400 </p><p>Pokud chcete zapsat více než 16 znaků, budou nadbytečné znaky zahozeny (nedojde k přepsání dalšího řádku). Zápis probíhá vždy od levého kraje řádku. Také si můžete vybrat, zda-li chcete celý řádek před novým zápisem smazat nebo ne.</p><p>Příklad zápisu do prvního řádku na první pozici z kraje, včetné předcházejícího smazání, neinvertované barvy:</p><div class="codebox"><pre><code> lcd_echo(1, 1, 0, &#039;text&#039;, &#039;a dalsi&#039;);</code></pre></div><p>Příklad zápisu do třetího řádku bez předchozího smazání řádku, od desáté pozice zleva, invertované barvy:</p><div class="codebox"><pre><code> lcd_echo(10, 300, 1, &#039;Teplota je &#039;,sys[310]);</code></pre></div><p>Pozor! Při jakékoliv změně obsahu LCD (byť zápis jediného znaku) je celý display aktualizován - nedojde ke ztrátě předchozích zápisů, ale je potřeba zvážit případné zdržení (příklad: např. při zápisu po jednotlivých znacích (mnoho volání lcd_echo) bude mnohem déle trvat celá akce, než jediné zavolání lcd_echo s celým textem).</p><br /><p>&nbsp; &nbsp; lcd_clear - smazání LCD (pro zařízení SDS MACRO) </p><p>Funkce má jediný parametr, a to určení řádku. Po zavolání se celý daný řádek vymaže. Nedojde ke změně na ostatních řádcích.</p><p>&nbsp; &nbsp; celý LCD - číslo 0<br />&nbsp; &nbsp; první řádek - číslo 1<br />&nbsp; &nbsp; druhý řádek - číslo 2<br />&nbsp; &nbsp; třetí řádek - číslo 3<br />&nbsp; &nbsp; čtvrtý řádek - číslo 4 </p><p>Příklad smazání celého prvního řádku:</p><div class="codebox"><pre><code> lcd_clear(1);</code></pre></div><p>&nbsp; &nbsp; lcd_newline - posune text na LCD o jeden řádek nahoru </p><p>Funkce nemá parametr. Vhodné pro emulaci vzhledu konzolového výpisu.</p><p>Po zavolání funkce je text každého řádku přesunut o jeden řádek výše. Původní obsah nejvyššího řádku se ztrácí.</p><p>Příklad použití:</p><div class="codebox"><pre><code> lcd_newline(0);</code></pre></div><p>Paramtery: vždy uveďte číslo 0. V budoucí verzi se význam může změnit.</p><br /><p>případně si omrknout jednoduchý program, který je v macru s lcd jako výchozí a zobrazuje teploty čidel..<br /></p><div class="codebox"><pre><code>// priklad - vypis stavu teploty,  na LCD

//pamatuju si posledni stav
var stav_teplota_1, stav_teplota_2, stav_teplota_3,

//pomocne promenny
var teplota_cele_cislo;
var teplota_desetiny;

//pro zprehledeni zapisu programu pouzijeme define
#define TEPLOTA_1 sys[310]
#define TEPLOTA_2 sys[311]
#define TEPLOTA_3 sys[312]



//
kresli_zaklad
{
 //smazu cely display
 lcd_clear(0);

 //prvni radek
 lcd_echo(1, 1, 1, &#039;SDS&#039;);
 lcd_echo(7,100,0,&#039;MereniEnergie.cz&#039;);

 //druhy
 lcd_echo(1,2,1,&#039;TEPLOTA:&#039;);

 //treti
  lcd_echo(1,3,1,&#039;TEPLOTA:&#039;);

 //ctvrty
  lcd_echo(1,4,1,&#039;TEPLOTA:&#039;);



}

kresli_stav_teplota_1
{
 //vypocitej celou a desetinnou cast
 teplota_cele_cislo = TEPLOTA_1 / 100;
 teplota_desetiny = TEPLOTA_1 % 100;
 //
 if (teplota_desetiny &gt;= 0) goto kresliuz;
 //musime otocit znamenko
 teplota_desetiny = 0 - teplota_desetiny;

kresliuz:

 //druhy
 lcd_echo(11,200,0,teplota_cele_cislo, &#039;.&#039;, teplota_desetiny , &#039; stC&#039;);
}


kresli_stav_teplota_2
{
 //vypocitej celou a desetinnou cast
 teplota_cele_cislo = TEPLOTA_2 / 100;
 teplota_desetiny = TEPLOTA_2 % 100;
 //
 if (teplota_desetiny &gt;= 0) goto kreslited;
 //musime otocit znamenko
 teplota_desetiny = 0 - teplota_desetiny;

kreslited:

 //treti
 lcd_echo(11,300,0,teplota_cele_cislo, &#039;.&#039;, teplota_desetiny , &#039; stC&#039;);
}

kresli_stav_teplota_3
{
 //vypocitej celou a desetinnou cast
 teplota_cele_cislo = TEPLOTA_3 / 100;
 teplota_desetiny = TEPLOTA_3 % 100;
 //
 if (teplota_desetiny &gt;= 0) goto kreslinow;
 //musime otocit znamenko
 teplota_desetiny = 0 - teplota_desetiny;

kreslinow:

 //treti
 lcd_echo(11,400,0,teplota_cele_cislo, &#039;.&#039;, teplota_desetiny , &#039; stC&#039;);
}






zmena_teplota_1
{
 //doslo ke zmene teploty
 kresli_stav_teplota_1();

 //zapamatuj si novou hodnotu, at pozname dalsi zmenu
 stav_teplota_1 = TEPLOTA_1;
}

zmena_teplota_2
{
 //doslo ke zmene teploty
 kresli_stav_teplota_2();

 //zapamatuj si novou hodnotu, at pozname dalsi zmenu
 stav_teplota_2 = TEPLOTA_2;
}

zmena_teplota_3
{
 //doslo ke zmene teploty
 kresli_stav_teplota_3();

 //zapamatuj si novou hodnotu, at pozname dalsi zmenu
 stav_teplota_3 = TEPLOTA_3;
}


main
{

 // 1. nejprve nakreslime pevnou stavbu (to co se nebude menit) na LCD

 kresli_zaklad();

 // 2. zjistime si vychozi stav (zapamatuje pro pozdejsi zjisteni zmeny)

 stav_teplota_1 = TEPLOTA_1;
 stav_teplota_2 = TEPLOTA_2;
 stav_teplota_3 = TEPLOTA_3;


 // 3. poprve nakreslime promenne data na display, at tam neco je !

 kresli_stav_teplota_1();
 kresli_stav_teplota_2();
 kresli_stav_teplota_3();


 // 4. ted budeme hlidat, kdy dojde ke zmene,
 //    a pri zmene

smycka:

 //je aktualni stav (ted) jiny nez posledni co si pamatuju?
 //pokud ano, spusti se funkce zmena_teplota_1()
 if (TEPLOTA_1 != stav_teplota_1) zmena_teplota_1();

 //je aktualni stav (ted) jiny nez posledni co si pamatuju?
 //pokud ano, spusti se funkce zmena_teplota_1()
 if (TEPLOTA_2 != stav_teplota_2) zmena_teplota_2();


 //je aktualni stav (ted) jiny nez posledni co si pamatuju?
 //pokud ano, spusti se funkce zmena_teplota_3()
 if (TEPLOTA_3 != stav_teplota_3) zmena_teplota_3();



 //a znovu
 goto smycka;

}</code></pre></div><p>no a nakonec veškeré lcd simulace podporuje oblíbený sds-c simulátor.. takže ladit ladit a ladit</p>]]></description>
			<author><![CDATA[null@example.com (hrnous)]]></author>
			<pubDate>Wed, 21 Dec 2011 19:01:24 +0000</pubDate>
			<guid>https://forum.sds.an-d.cz/viewtopic.php?pid=924#p924</guid>
		</item>
		<item>
			<title><![CDATA[Verzia s LCD]]></title>
			<link>https://forum.sds.an-d.cz/viewtopic.php?pid=923#p923</link>
			<description><![CDATA[<p>Dobry den,<br />dal som si prerobit SDS Macro na verziu s LCD.<br />Otazka je, ako dostanem na LCD nejake udaje?<br />Nepripravujete firmware specialne pre SDS-Macro s LCD, kde by sa dalo vo web rozhrani konfigurovat, co sa ma zobrazovat na LCD?</p>]]></description>
			<author><![CDATA[null@example.com (vaanja)]]></author>
			<pubDate>Wed, 21 Dec 2011 18:42:21 +0000</pubDate>
			<guid>https://forum.sds.an-d.cz/viewtopic.php?pid=923#p923</guid>
		</item>
	</channel>
</rss>
