<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Commenti a: Corso programmazione PICMicro in C – Lezione 7 (parte 3/3) – Interfaccia con LCD &#8211; Come definire simboli e caratteri personalizzati nell&#8217;LCD + esempi di animazione</title>
	<atom:link href="http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/</link>
	<description></description>
	<lastBuildDate>Wed, 08 Feb 2012 18:15:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Di: Cecco</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-13736</link>
		<dc:creator>Cecco</dc:creator>
		<pubDate>Sun, 11 Dec 2011 23:05:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-13736</guid>
		<description>OK risolto.

Reinstallate tutte le versioni, ora va.</description>
		<content:encoded><![CDATA[<p>OK risolto.</p>
<p>Reinstallate tutte le versioni, ora va.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Cecco</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-13702</link>
		<dc:creator>Cecco</dc:creator>
		<pubDate>Fri, 02 Dec 2011 22:46:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-13702</guid>
		<description>Ciao Etti.
Mi associo ai ricordi degli sprites del C=64.
Bei tempi.</description>
		<content:encoded><![CDATA[<p>Ciao Etti.<br />
Mi associo ai ricordi degli sprites del C=64.<br />
Bei tempi.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Cecco</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-13701</link>
		<dc:creator>Cecco</dc:creator>
		<pubDate>Fri, 02 Dec 2011 21:15:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-13701</guid>
		<description>Buona sera a tutti.
E&#039; il mio primo post.
Sto anche io iniziando col C per PIC ma invece di Hi-Tech uso il CCS.
Grazie a SettoreZero e LaurTech dal quale ho preso una Freedom2, sto apprezzando la potenza e la versatilità dell&#039;elettronica digitale.
Bello e stimolante anche se il C a livello avanzato è molto impegnativo.
In questi giorni, anzi...notti, sto lavorando sul LCD.
Una domanda, quando lancio il programma CustomChar, mi viene fuori un errore tipo &quot; unable to find the runtime for the application&quot;
Nella barra dell&#039;errore c&#039;è scritto .Net Framework Initialization error.
Ho controllato e ho tutti i .NetFramework installati.
Grazie1000
Fra.</description>
		<content:encoded><![CDATA[<p>Buona sera a tutti.<br />
E&#8217; il mio primo post.<br />
Sto anche io iniziando col C per PIC ma invece di Hi-Tech uso il CCS.<br />
Grazie a SettoreZero e LaurTech dal quale ho preso una Freedom2, sto apprezzando la potenza e la versatilità dell&#8217;elettronica digitale.<br />
Bello e stimolante anche se il C a livello avanzato è molto impegnativo.<br />
In questi giorni, anzi&#8230;notti, sto lavorando sul LCD.<br />
Una domanda, quando lancio il programma CustomChar, mi viene fuori un errore tipo &#8221; unable to find the runtime for the application&#8221;<br />
Nella barra dell&#8217;errore c&#8217;è scritto .Net Framework Initialization error.<br />
Ho controllato e ho tutti i .NetFramework installati.<br />
Grazie1000<br />
Fra.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Alessio</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-13277</link>
		<dc:creator>Alessio</dc:creator>
		<pubDate>Sat, 12 Nov 2011 14:04:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-13277</guid>
		<description>Ciao volevo solo ringraziarti per il tuo lavoro.
grazie a questo articolo e ad altri simili ho compreso la logica alla base dei display LCD alfanumerici e ho imparato a programmarli in assembler! sono in debito! (non son ancora passato al C) 
Un sincero Grazie.</description>
		<content:encoded><![CDATA[<p>Ciao volevo solo ringraziarti per il tuo lavoro.<br />
grazie a questo articolo e ad altri simili ho compreso la logica alla base dei display LCD alfanumerici e ho imparato a programmarli in assembler! sono in debito! (non son ancora passato al C)<br />
Un sincero Grazie.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: plotino</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-13061</link>
		<dc:creator>plotino</dc:creator>
		<pubDate>Fri, 04 Nov 2011 16:05:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-13061</guid>
		<description>ciao bernardo 
prima di tutto complimenti. La tue guide sono eccellenti
Volevo chiedere a  te che sei un esperto, esiste un buon simulatore per PIC, 
che appunto simuli LCD, USART, etc, ovvero tutto il &quot;mondo esterno&quot; che può essere collegato al 
microntrollore, in modo da fare un completo debug software del nostro programma?

Grazie e complimenti ancora</description>
		<content:encoded><![CDATA[<p>ciao bernardo<br />
prima di tutto complimenti. La tue guide sono eccellenti<br />
Volevo chiedere a  te che sei un esperto, esiste un buon simulatore per PIC,<br />
che appunto simuli LCD, USART, etc, ovvero tutto il &#8220;mondo esterno&#8221; che può essere collegato al<br />
microntrollore, in modo da fare un completo debug software del nostro programma?</p>
<p>Grazie e complimenti ancora</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: gabriel</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-12754</link>
		<dc:creator>gabriel</dc:creator>
		<pubDate>Wed, 19 Oct 2011 09:13:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-12754</guid>
		<description>Buongiorno a tutti, i problemi segnalati da Neuro_79 e da Cicche con alcuni modelli di display mettono alla luce un difetto abbastanza serio della library lcd.c legato alla mancanza di lettura dello stato di BUSY (flag di LCD occupato e non disponibile per ricevere altri comandi). Giocare sulle temporizzazioni risolve provvisoriamente il problema ma rende la library dipendente da un modello specifico di display, rallenta il funzionamento del sistema e per ultimo impegna lo sviluppatore per lungo tempo di prove / errori per trovare i tempi giusti rischiando però che questi non siano ideali in tutte le circostanze.

Di conseguenza, ho introdotto alcune modifiche nell library per la gestione del busy con ottimi risultati. L&#039;unica complicazione consiste nel dover aggiungere una linea di controllo (R/W) per poter leggere i dati dal LCD (la linea LCD_RW bisogna scollegarla da massa e collegarla a un pin del micro).

Le modifiche introdotte nella library consistono semplicemente nella creazione di una funzione chiamata LCD_BUSY che restituisce un bit con lo stato del display. Questa funzione viene chiamata da un ciclo while introdotto all&#039;inizio della funzione LCD_WRITE. Troverete anche le definizioni di TRIS delle linee di dati D4/D7 all&#039;inizio della library perché per leggere un dato dal display le linee di dati devono essere configurate come ingressi.

La commutazione TRIS per ogni linea di dati all&#039;interno della funzione LCD_BUSY non è elegantissima ma evita problemi nel caso i pin di dati del micro siano discontinui oppure si trovino su porte diverse (ricordate di modificare i pin in base all&#039;hardware).

Dato che la library ha una sola funzione per la scrittura di un dato oppure di un comando nel display (LCD_WRITE) ho dovuto aggiungere la variabile statica tempRs all&#039;interno di LCD_BUSY per memorizzare e poi ripristinare lo stato di LCD_RS. 

Avendo operativa la linea LCD_RW si potrebbe aggiungere anche una funzione di lettura del tipo LCD_READ. Un&#039;altra cosa che si potrebbe fare è una gestione di timeout del loop di attesa del busy perchè se il display non risponde il micro rimane bloccato. Lascio aperta la strada ed spero che il mio lavoro sia utile. 

A presto.

Modifice del codice:

#define	LCD_RW	RD1			// Read / Write register (19/10/2011 by Gabriel)
#define	LCD_RS	RD2			// Register select
#define	LCD_EN	RD3			// Enable

#define	LCD_D4	RD4			// LCD data 4
#define	LCD_D4_TRIS	TRISD4	// LCD data 4 tris	(19/10/2011 by Gabriel)
#define	LCD_D5	RD5			// LCD data 5
#define	LCD_D5_TRIS	TRISD5	// LCD data 5 tris	(19/10/2011 by Gabriel)
#define	LCD_D6	RD6			// LCD data 6
#define	LCD_D6_TRIS	TRISD6	// LCD data 6 tris	(19/10/2011 by Gabriel)
#define	LCD_D7	RD7			// LCD data 7
#define	LCD_D7_TRIS	TRISD7	// LCD data 7 tris	(19/10/2011 by Gabriel)

/****************************************
 LCD BUSY
(19/10/2011 by Gabriel)
*****************************************/
bit LCD_BUSY (void)
	{
	static bit 			busyFlag;	
	static bit			tempRS;		

	LCD_D4_TRIS = 1;	// Set data lines D7-D4 as input
	LCD_D5_TRIS = 1;	
	LCD_D6_TRIS = 1;   
	LCD_D7_TRIS = 1;    

	tempRS = LCD_RS;	// Save the LCD_RS value
	LCD_RW = 1;			// Set Read mode
	LCD_RS = 0;			// Command mode

	LCD_EN = 1;			// read bits 4-7 (bit7 = busy status)
	DelayUs(1); 	
	busyFlag = LCD_D7;  // copy busy status in busyFlag Var 

	LCD_EN = 0;
	DelayUs(1); 		
	LCD_STROBE();		// read bit 0-3 (not used)

	LCD_D4_TRIS = 0;	// Set data lines D7-D4 as output
	LCD_D5_TRIS = 0;	
	LCD_D6_TRIS = 0;    
	LCD_D7_TRIS = 0;
	LCD_RW = 0;			// Set write mode    
	LCD_RS = tempRS;	// Load LCD_RS with the value saved 
	return busyFlag;
	}	

/****************************************
 Write a byte to the LCD (4 bit mode) 
****************************************/
void LCD_WRITE (unsigned char c)
	{
	while(LCD_BUSY());
	
	LCD_RW = 0; // write mode
	LCD_NIBBLE_OUT(c);
	c &lt;&lt;= 4;
	LCD_NIBBLE_OUT(c);
	DelayUs(50); 
	#if LCD_TYPEWRITE==1
	if (LCD_RS)
		{
		DelayMs(LCD_TW_DELAY); // Delay between characters
		}
	#endif
	}</description>
		<content:encoded><![CDATA[<p>Buongiorno a tutti, i problemi segnalati da Neuro_79 e da Cicche con alcuni modelli di display mettono alla luce un difetto abbastanza serio della library lcd.c legato alla mancanza di lettura dello stato di BUSY (flag di LCD occupato e non disponibile per ricevere altri comandi). Giocare sulle temporizzazioni risolve provvisoriamente il problema ma rende la library dipendente da un modello specifico di display, rallenta il funzionamento del sistema e per ultimo impegna lo sviluppatore per lungo tempo di prove / errori per trovare i tempi giusti rischiando però che questi non siano ideali in tutte le circostanze.</p>
<p>Di conseguenza, ho introdotto alcune modifiche nell library per la gestione del busy con ottimi risultati. L&#8217;unica complicazione consiste nel dover aggiungere una linea di controllo (R/W) per poter leggere i dati dal LCD (la linea LCD_RW bisogna scollegarla da massa e collegarla a un pin del micro).</p>
<p>Le modifiche introdotte nella library consistono semplicemente nella creazione di una funzione chiamata LCD_BUSY che restituisce un bit con lo stato del display. Questa funzione viene chiamata da un ciclo while introdotto all&#8217;inizio della funzione LCD_WRITE. Troverete anche le definizioni di TRIS delle linee di dati D4/D7 all&#8217;inizio della library perché per leggere un dato dal display le linee di dati devono essere configurate come ingressi.</p>
<p>La commutazione TRIS per ogni linea di dati all&#8217;interno della funzione LCD_BUSY non è elegantissima ma evita problemi nel caso i pin di dati del micro siano discontinui oppure si trovino su porte diverse (ricordate di modificare i pin in base all&#8217;hardware).</p>
<p>Dato che la library ha una sola funzione per la scrittura di un dato oppure di un comando nel display (LCD_WRITE) ho dovuto aggiungere la variabile statica tempRs all&#8217;interno di LCD_BUSY per memorizzare e poi ripristinare lo stato di LCD_RS. </p>
<p>Avendo operativa la linea LCD_RW si potrebbe aggiungere anche una funzione di lettura del tipo LCD_READ. Un&#8217;altra cosa che si potrebbe fare è una gestione di timeout del loop di attesa del busy perchè se il display non risponde il micro rimane bloccato. Lascio aperta la strada ed spero che il mio lavoro sia utile. </p>
<p>A presto.</p>
<p>Modifice del codice:</p>
<p>#define	LCD_RW	RD1			// Read / Write register (19/10/2011 by Gabriel)<br />
#define	LCD_RS	RD2			// Register select<br />
#define	LCD_EN	RD3			// Enable</p>
<p>#define	LCD_D4	RD4			// LCD data 4<br />
#define	LCD_D4_TRIS	TRISD4	// LCD data 4 tris	(19/10/2011 by Gabriel)<br />
#define	LCD_D5	RD5			// LCD data 5<br />
#define	LCD_D5_TRIS	TRISD5	// LCD data 5 tris	(19/10/2011 by Gabriel)<br />
#define	LCD_D6	RD6			// LCD data 6<br />
#define	LCD_D6_TRIS	TRISD6	// LCD data 6 tris	(19/10/2011 by Gabriel)<br />
#define	LCD_D7	RD7			// LCD data 7<br />
#define	LCD_D7_TRIS	TRISD7	// LCD data 7 tris	(19/10/2011 by Gabriel)</p>
<p>/****************************************<br />
 LCD BUSY<br />
(19/10/2011 by Gabriel)<br />
*****************************************/<br />
bit LCD_BUSY (void)<br />
	{<br />
	static bit 			busyFlag;<br />
	static bit			tempRS;		</p>
<p>	LCD_D4_TRIS = 1;	// Set data lines D7-D4 as input<br />
	LCD_D5_TRIS = 1;<br />
	LCD_D6_TRIS = 1;<br />
	LCD_D7_TRIS = 1;    </p>
<p>	tempRS = LCD_RS;	// Save the LCD_RS value<br />
	LCD_RW = 1;			// Set Read mode<br />
	LCD_RS = 0;			// Command mode</p>
<p>	LCD_EN = 1;			// read bits 4-7 (bit7 = busy status)<br />
	DelayUs(1);<br />
	busyFlag = LCD_D7;  // copy busy status in busyFlag Var </p>
<p>	LCD_EN = 0;<br />
	DelayUs(1);<br />
	LCD_STROBE();		// read bit 0-3 (not used)</p>
<p>	LCD_D4_TRIS = 0;	// Set data lines D7-D4 as output<br />
	LCD_D5_TRIS = 0;<br />
	LCD_D6_TRIS = 0;<br />
	LCD_D7_TRIS = 0;<br />
	LCD_RW = 0;			// Set write mode<br />
	LCD_RS = tempRS;	// Load LCD_RS with the value saved<br />
	return busyFlag;<br />
	}	</p>
<p>/****************************************<br />
 Write a byte to the LCD (4 bit mode)<br />
****************************************/<br />
void LCD_WRITE (unsigned char c)<br />
	{<br />
	while(LCD_BUSY());</p>
<p>	LCD_RW = 0; // write mode<br />
	LCD_NIBBLE_OUT(c);<br />
	c &lt;&lt;= 4;<br />
	LCD_NIBBLE_OUT(c);<br />
	DelayUs(50);<br />
	#if LCD_TYPEWRITE==1<br />
	if (LCD_RS)<br />
		{<br />
		DelayMs(LCD_TW_DELAY); // Delay between characters<br />
		}<br />
	#endif<br />
	}</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: gabriel</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-12745</link>
		<dc:creator>gabriel</dc:creator>
		<pubDate>Tue, 18 Oct 2011 18:26:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-12745</guid>
		<description>Ciao Giovanni, condivido i problemi che descrive neuro_79, nel mio caso con Displaytech 202A. Riesco a farlo funzionare soltanto con un impulso di strobe di almeno 5 mSec. Dato che anche a me, la cosa non mi convince afatto (secondo il datasheet i tempi dovrebbero essere di nanosecondi!!) ho fatto una seconda routine di strobe di 5 mSec e ho provato a rimpiazzare progressivamente nel programma le chiamate alla funzione di strobe normale. Ho scoperto che soltanto una chiamata necessita della funzione &quot;lunga&quot; per funzionare ed è all&#039;interno di LCD_NIBBLE_OUT.

Di seguito riporto una parte del codice modificato che a me funziona:

/****************************************
 Enable LCD to read data
*****************************************/
void LCD_STROBE (void)
	{
	LCD_EN = 1;
	DelayUs(1); 
	LCD_EN=0;
	}	

/****************************************
 Enable LCD to read data
*****************************************/
void LCD_STROBELUNGO (void)
	{
	LCD_EN = 1;
	DelayMs(5);
	LCD_EN=0;	
	}	


/****************************************
 Write a nibble to the LCD
****************************************/
void LCD_NIBBLE_OUT (unsigned char c)
	{
	if (c &amp; 0b10000000) 
		LCD_D7=1;
	else LCD_D7=0;
	
	if (c &amp; 0b01000000)
		LCD_D6=1;
	else LCD_D6=0;

	if (c &amp; 0b00100000)
		LCD_D5=1;
	else LCD_D5=0;

	if (c &amp; 0b00010000)
		LCD_D4=1;
	else LCD_D4=0;

	LCD_STROBELUNGO();
	}

Secondo me, nella funzione LCD_NIBBLE_OUT c&#039;è qualcosa che non va. In passato ho lavorato con display di diversi tipi e non ho mai avuto dei problemi anche se riconosco che è la prima volta che uso la modalità a 4 bit. Spero di trovare la risposta a questo mistero.
A presto.</description>
		<content:encoded><![CDATA[<p>Ciao Giovanni, condivido i problemi che descrive neuro_79, nel mio caso con Displaytech 202A. Riesco a farlo funzionare soltanto con un impulso di strobe di almeno 5 mSec. Dato che anche a me, la cosa non mi convince afatto (secondo il datasheet i tempi dovrebbero essere di nanosecondi!!) ho fatto una seconda routine di strobe di 5 mSec e ho provato a rimpiazzare progressivamente nel programma le chiamate alla funzione di strobe normale. Ho scoperto che soltanto una chiamata necessita della funzione &#8220;lunga&#8221; per funzionare ed è all&#8217;interno di LCD_NIBBLE_OUT.</p>
<p>Di seguito riporto una parte del codice modificato che a me funziona:</p>
<p>/****************************************<br />
 Enable LCD to read data<br />
*****************************************/<br />
void LCD_STROBE (void)<br />
	{<br />
	LCD_EN = 1;<br />
	DelayUs(1);<br />
	LCD_EN=0;<br />
	}	</p>
<p>/****************************************<br />
 Enable LCD to read data<br />
*****************************************/<br />
void LCD_STROBELUNGO (void)<br />
	{<br />
	LCD_EN = 1;<br />
	DelayMs(5);<br />
	LCD_EN=0;<br />
	}	</p>
<p>/****************************************<br />
 Write a nibble to the LCD<br />
****************************************/<br />
void LCD_NIBBLE_OUT (unsigned char c)<br />
	{<br />
	if (c &amp; 0b10000000)<br />
		LCD_D7=1;<br />
	else LCD_D7=0;</p>
<p>	if (c &amp; 0b01000000)<br />
		LCD_D6=1;<br />
	else LCD_D6=0;</p>
<p>	if (c &amp; 0b00100000)<br />
		LCD_D5=1;<br />
	else LCD_D5=0;</p>
<p>	if (c &amp; 0b00010000)<br />
		LCD_D4=1;<br />
	else LCD_D4=0;</p>
<p>	LCD_STROBELUNGO();<br />
	}</p>
<p>Secondo me, nella funzione LCD_NIBBLE_OUT c&#8217;è qualcosa che non va. In passato ho lavorato con display di diversi tipi e non ho mai avuto dei problemi anche se riconosco che è la prima volta che uso la modalità a 4 bit. Spero di trovare la risposta a questo mistero.<br />
A presto.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Etti</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-12497</link>
		<dc:creator>Etti</dc:creator>
		<pubDate>Fri, 30 Sep 2011 00:43:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-12497</guid>
		<description>Ciao, che ricordi sulla creazione e programmazione di una matrice o degli sprites che dovevano apparire sul video per creare qualche giochino o effetti usando il commodore 64, computer di altri tempi, con poca memoria, velocità, colori, suoni (pochi byte ma allegri), ma con tantissima semplicità, fantasia e passione, ma soprattutto divertimento e gratificazione assicurata.
Ciao a tutti.....</description>
		<content:encoded><![CDATA[<p>Ciao, che ricordi sulla creazione e programmazione di una matrice o degli sprites che dovevano apparire sul video per creare qualche giochino o effetti usando il commodore 64, computer di altri tempi, con poca memoria, velocità, colori, suoni (pochi byte ma allegri), ma con tantissima semplicità, fantasia e passione, ma soprattutto divertimento e gratificazione assicurata.<br />
Ciao a tutti&#8230;..</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: McGyver86</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-11695</link>
		<dc:creator>McGyver86</dc:creator>
		<pubDate>Sat, 04 Jun 2011 22:18:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-11695</guid>
		<description>ciao giovanni, è da un pò che non frequento il sito e devo dire che è cresciuto e ricco di informazioni! ti scrivo per un consiglio, ho un display 4x20 (credo) che monta 3 ks0086 e un toshiba t6963c. non sono riuscito trovare niente in giro per la rete, non è che per caso e gentilmente avresti qualche informazione??? il display ha 28 pin suddivisi sui 2 lati più corti (8+8 su un lato e 6+6 sull&#039;altro) ho notato che alcuni pin sono cortocircuitati! non so se posso utilizzarlo per questi bellissimi progetti che proponi, quindi ti chiedo una mano a reperire qualche informazione!!

grazie mille, un saluto!</description>
		<content:encoded><![CDATA[<p>ciao giovanni, è da un pò che non frequento il sito e devo dire che è cresciuto e ricco di informazioni! ti scrivo per un consiglio, ho un display 4&#215;20 (credo) che monta 3 ks0086 e un toshiba t6963c. non sono riuscito trovare niente in giro per la rete, non è che per caso e gentilmente avresti qualche informazione??? il display ha 28 pin suddivisi sui 2 lati più corti (8+8 su un lato e 6+6 sull&#8217;altro) ho notato che alcuni pin sono cortocircuitati! non so se posso utilizzarlo per questi bellissimi progetti che proponi, quindi ti chiedo una mano a reperire qualche informazione!!</p>
<p>grazie mille, un saluto!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-10841</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Thu, 17 Mar 2011 05:40:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-10841</guid>
		<description>Vi ringrazio ma non uso la postepay.</description>
		<content:encoded><![CDATA[<p>Vi ringrazio ma non uso la postepay.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: aledio</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-10835</link>
		<dc:creator>aledio</dc:creator>
		<pubDate>Wed, 16 Mar 2011 21:21:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-10835</guid>
		<description>Complimenti per l&#039;ottimo lavoro.
Vorrei fare ancora una donazione e volevo contattarti per usare la posta pay e non paypal con cui ho avuto problemi .
Non puoi mettere il tuo indirizzo di posta per comunicazioni in generale ?
Ciao Alessandro</description>
		<content:encoded><![CDATA[<p>Complimenti per l&#8217;ottimo lavoro.<br />
Vorrei fare ancora una donazione e volevo contattarti per usare la posta pay e non paypal con cui ho avuto problemi .<br />
Non puoi mettere il tuo indirizzo di posta per comunicazioni in generale ?<br />
Ciao Alessandro</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-10691</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Thu, 10 Mar 2011 03:47:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-10691</guid>
		<description>Si quei ritardi sono imprecisi, durano quasi il doppio. Le routine enanched precision danno alcuni problemi, la funzione delayBigUs non va quindi non usarla mai.</description>
		<content:encoded><![CDATA[<p>Si quei ritardi sono imprecisi, durano quasi il doppio. Le routine enanched precision danno alcuni problemi, la funzione delayBigUs non va quindi non usarla mai.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Cicche</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-10688</link>
		<dc:creator>Cicche</dc:creator>
		<pubDate>Thu, 10 Mar 2011 00:06:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-10688</guid>
		<description>Con il Cambio di STROBE l&#039;lcd funziona pure a me!
Io ho dovuto aggiungere nei setting RD1=0 perchè sulla nuova Freedom il pin R/w è collegato e se lasciato indefinito mi dava il problema della prima riga riempita di quadratini neri.
Aggiungo inoltre che pure io ho problemi con i delay, sia quelli di Giovanni sia quelli della microchip, quando ho tempo provo con quelli enanched precision e le vecchie librerie su il pic in dotazione della FreedomII v3(18F4550)

Cosi a occhio con le prime lezioni notavo una discrepanza di 1/4 dei tempi proposti, domani provo con delay alti per verificare meglio. (su fredom + 16F877A)</description>
		<content:encoded><![CDATA[<p>Con il Cambio di STROBE l&#8217;lcd funziona pure a me!<br />
Io ho dovuto aggiungere nei setting RD1=0 perchè sulla nuova Freedom il pin R/w è collegato e se lasciato indefinito mi dava il problema della prima riga riempita di quadratini neri.<br />
Aggiungo inoltre che pure io ho problemi con i delay, sia quelli di Giovanni sia quelli della microchip, quando ho tempo provo con quelli enanched precision e le vecchie librerie su il pic in dotazione della FreedomII v3(18F4550)</p>
<p>Cosi a occhio con le prime lezioni notavo una discrepanza di 1/4 dei tempi proposti, domani provo con delay alti per verificare meglio. (su fredom + 16F877A)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-10349</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Mon, 21 Feb 2011 13:21:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-10349</guid>
		<description>Si ottengo tempi precisi, verificati con l&#039;oscilloscopio. Mi riferisco sempre alle librerie enanched precision. Ho quel problema che dici tu con le librerie vecchie che si trovano nei primi esempi che ho messo.</description>
		<content:encoded><![CDATA[<p>Si ottengo tempi precisi, verificati con l&#8217;oscilloscopio. Mi riferisco sempre alle librerie enanched precision. Ho quel problema che dici tu con le librerie vecchie che si trovano nei primi esempi che ho messo.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: neuro_79</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-10348</link>
		<dc:creator>neuro_79</dc:creator>
		<pubDate>Mon, 21 Feb 2011 12:30:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-10348</guid>
		<description>Bhe come specificato le prove le ho fatte con la FREEDOM II senza nessun cablaggio esterno. Cmq a proposito delle nuove librerie Delay scaricate dal tuo sito....tu ottieni risultati precisi?! Ovvero, con un programmino lampeggio led tipo:

LED1 = LED1 ^ 1;
DelayS(50);

ottieni proprio il tempo voluto? Perche io con questa ottengo circa 10 secondi...sempre prove fatte su FREEDOM II.</description>
		<content:encoded><![CDATA[<p>Bhe come specificato le prove le ho fatte con la FREEDOM II senza nessun cablaggio esterno. Cmq a proposito delle nuove librerie Delay scaricate dal tuo sito&#8230;.tu ottieni risultati precisi?! Ovvero, con un programmino lampeggio led tipo:</p>
<p>LED1 = LED1 ^ 1;<br />
DelayS(50);</p>
<p>ottieni proprio il tempo voluto? Perche io con questa ottengo circa 10 secondi&#8230;sempre prove fatte su FREEDOM II.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-10343</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Mon, 21 Feb 2011 08:58:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-10343</guid>
		<description>A me questi ritardi così alti non mi convincono. Secondo me hai problemi col quarzo o cose del genere</description>
		<content:encoded><![CDATA[<p>A me questi ritardi così alti non mi convincono. Secondo me hai problemi col quarzo o cose del genere</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: neuro_79</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-10224</link>
		<dc:creator>neuro_79</dc:creator>
		<pubDate>Thu, 17 Feb 2011 20:29:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-10224</guid>
		<description>Ciao Giovanni, eccomi con una nuova puntata della guerra contro gli LCD! :-) 
Ho provato come da te suggerito la nuova libreria delay direttamente su FREEDOM II (per evitare problemi di cablaggi, ritardi ecc) ma niente di buono. La libreria LCD fornita con le lezioni non funziona a meno che non si mettano mani ai ritardi come con la vecchia delay. In particolare è sufficiente aumentare il delay nello strobe:

void LCD_STROBE (void)
{

LCD_EN = 1;
DelayMs(10);
LCD_EN=0;

}

Inoltre ho testato queste librerie delay nuove con un semplice lampeggio di led.....bhe non sono per nulla precise. Per esempio con una chiamata del tipo:

...
...
...
LED1 = LED1 ^ 1;
DelayS(50);
...
...

Ottengo un ritardo di circa 10 secondi (led 10 secondi acceso e 10 secondi spento).
Ho fatto altre prove anche con le funzioni DelayMs() e DelayBigMs() ottenendo errori analoghi. Tu ottenevi risultati migliori?

Ottengo un ritardo</description>
		<content:encoded><![CDATA[<p>Ciao Giovanni, eccomi con una nuova puntata della guerra contro gli LCD! :-)<br />
Ho provato come da te suggerito la nuova libreria delay direttamente su FREEDOM II (per evitare problemi di cablaggi, ritardi ecc) ma niente di buono. La libreria LCD fornita con le lezioni non funziona a meno che non si mettano mani ai ritardi come con la vecchia delay. In particolare è sufficiente aumentare il delay nello strobe:</p>
<p>void LCD_STROBE (void)<br />
{</p>
<p>LCD_EN = 1;<br />
DelayMs(10);<br />
LCD_EN=0;</p>
<p>}</p>
<p>Inoltre ho testato queste librerie delay nuove con un semplice lampeggio di led&#8230;..bhe non sono per nulla precise. Per esempio con una chiamata del tipo:</p>
<p>&#8230;<br />
&#8230;<br />
&#8230;<br />
LED1 = LED1 ^ 1;<br />
DelayS(50);<br />
&#8230;<br />
&#8230;</p>
<p>Ottengo un ritardo di circa 10 secondi (led 10 secondi acceso e 10 secondi spento).<br />
Ho fatto altre prove anche con le funzioni DelayMs() e DelayBigMs() ottenendo errori analoghi. Tu ottenevi risultati migliori?</p>
<p>Ottengo un ritardo</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-10069</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Fri, 11 Feb 2011 21:21:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-10069</guid>
		<description>Quella libreria non l&#039;ho fatta io, come specificato, e l&#039;ho utilizzata con successo con molti display senza mai avere problemi, per tale motivo decisi di pubblicarla, aggiungendo soltanto qualche funzione che mancava come quella appunto dei caratteri personalizzati che per me sono molto importanti. La libreria però non segue i miei personali &quot;standard&quot; di scrittura del codice e in più ci sono alcuni errori e molte migliorie da fare. In aggiunta quelle librerie di Delay ho scoperto che sono un vero orrore: inducono un ritardo di quasi il doppio di quello che si imposta e questo pure causa non pochi problemi. Il funzionamento a 8 bit è piu semplice: anzichè inviare i dati in 2 nibble, li invii tutti insieme. Inoltre a 8 bit puoi anche eseguire la lettura del display e questo è comodo per creare effetti particolari anche se quasi nessuno usa questa funzione.</description>
		<content:encoded><![CDATA[<p>Quella libreria non l&#8217;ho fatta io, come specificato, e l&#8217;ho utilizzata con successo con molti display senza mai avere problemi, per tale motivo decisi di pubblicarla, aggiungendo soltanto qualche funzione che mancava come quella appunto dei caratteri personalizzati che per me sono molto importanti. La libreria però non segue i miei personali &#8220;standard&#8221; di scrittura del codice e in più ci sono alcuni errori e molte migliorie da fare. In aggiunta quelle librerie di Delay ho scoperto che sono un vero orrore: inducono un ritardo di quasi il doppio di quello che si imposta e questo pure causa non pochi problemi. Il funzionamento a 8 bit è piu semplice: anzichè inviare i dati in 2 nibble, li invii tutti insieme. Inoltre a 8 bit puoi anche eseguire la lettura del display e questo è comodo per creare effetti particolari anche se quasi nessuno usa questa funzione.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: neuro_79</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-10066</link>
		<dc:creator>neuro_79</dc:creator>
		<pubDate>Fri, 11 Feb 2011 20:51:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-10066</guid>
		<description>Hai assolutamente ragione per il DelayMs(1), usavo i 4 ritardi perchè stavo provando ad abbassarli/alzarli ecc e giocare con i us era meglio che con i ms. Provero con i nuovi timer, comunque pure io vorrei indagare di piu....magari rifacendo le funzioni anche nella versione a 8 bit. Se ridai un occhio alle tue librerie magari tieni in considerazione questo problema con i display della DIPLAYTECH...in fondo sono i piu economici e diffusi.....pure sulla FREEDOM II usa quelli.</description>
		<content:encoded><![CDATA[<p>Hai assolutamente ragione per il DelayMs(1), usavo i 4 ritardi perchè stavo provando ad abbassarli/alzarli ecc e giocare con i us era meglio che con i ms. Provero con i nuovi timer, comunque pure io vorrei indagare di piu&#8230;.magari rifacendo le funzioni anche nella versione a 8 bit. Se ridai un occhio alle tue librerie magari tieni in considerazione questo problema con i display della DIPLAYTECH&#8230;in fondo sono i piu economici e diffusi&#8230;..pure sulla FREEDOM II usa quelli.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-10062</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Fri, 11 Feb 2011 18:17:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-10062</guid>
		<description>Scusa, invece di mettere 4 delayus(250) non era più logico mettere DelayMs(1) ?! Poi: non usare le funzioni di ritardo che ci sono con le lezioni perchè non forniscono ritardi precisi. Scarica quelle nuove dal menu picmicro -&gt; librerie il perchè danno problemi con quei due display non te lo so dire ma penso sia sempre una questione di temporizzazioni. Appena ho tempo quelle librerie le devo sistemare un po.</description>
		<content:encoded><![CDATA[<p>Scusa, invece di mettere 4 delayus(250) non era più logico mettere DelayMs(1) ?! Poi: non usare le funzioni di ritardo che ci sono con le lezioni perchè non forniscono ritardi precisi. Scarica quelle nuove dal menu picmicro -&gt; librerie il perchè danno problemi con quei due display non te lo so dire ma penso sia sempre una questione di temporizzazioni. Appena ho tempo quelle librerie le devo sistemare un po.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: neuro_79</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-10048</link>
		<dc:creator>neuro_79</dc:creator>
		<pubDate>Fri, 11 Feb 2011 08:32:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-10048</guid>
		<description>Ciao Giovanni, ho delle novità a riguardo dei problemi suddetti. Dopo aver escluso errori di cablaggi e di alimentazioni sono riuscito a far funzionare il DISPLAYTECH 162B e anche il DISPLAYTECH 162A modificando leggermente i ritardi nella funzione void LCD_STROBE( ):

void LCD_STROBE (void)
	{
	DelayUs(250);
	LCD_EN = 1;
	DelayUs(250);
	DelayUs(250);
	DelayUs(250);
	DelayUs(250);       
	LCD_EN=0;
	}

Lo sò che sono ritardi ENORMI ma ripeto che è l&#039;unico modo per far funzionare la libreria da te fornita. Quando dico UNICO intendo proprio UNICO...nel senso che se abbassi anche uno solo di quei tempi a 200 per esempio non funziona piu!!!! Con ritardi cosi grandi è chiaro che las crittura dei caratteri risulta molto lenta, ho quindi risolto abbassando il ritardi tra i caratteri:

#define LCD_TW_DELAY 1 // milliseconds between characters 

ottenendo discreti risultati.

Recentemente ho acquistato la FREEDOM II con PICkit2. Assieme alla scheda viene fornito un LCD proprio DISPLAYTECH 162A e ho potuto verificare quando suddetto anche con questo nuovo hardware. Quindi posso escludere ogni problema di programmatore/scheda di sviluppo che usavo prima.

Purtroppo questa soluzione NON funziona NE con il DISPLAYTECH 162D ne con il DISPLAYTECH 202B. Avendo un po di tempo mi metterò ad indagare anche su questi...rifacendo magari le funzioni di inizializzazioni con una versione ad 8 bit invece che 4. Premetto però che tutti gli LCD menzionati hanno datasheet identici (parlo della descrizione dei ritardi, della descizione della fase di inizializzazione ecc) quindi mi sembra strano si comportino in maniera diversa.

Hai qualche idea?!</description>
		<content:encoded><![CDATA[<p>Ciao Giovanni, ho delle novità a riguardo dei problemi suddetti. Dopo aver escluso errori di cablaggi e di alimentazioni sono riuscito a far funzionare il DISPLAYTECH 162B e anche il DISPLAYTECH 162A modificando leggermente i ritardi nella funzione void LCD_STROBE( ):</p>
<p>void LCD_STROBE (void)<br />
	{<br />
	DelayUs(250);<br />
	LCD_EN = 1;<br />
	DelayUs(250);<br />
	DelayUs(250);<br />
	DelayUs(250);<br />
	DelayUs(250);<br />
	LCD_EN=0;<br />
	}</p>
<p>Lo sò che sono ritardi ENORMI ma ripeto che è l&#8217;unico modo per far funzionare la libreria da te fornita. Quando dico UNICO intendo proprio UNICO&#8230;nel senso che se abbassi anche uno solo di quei tempi a 200 per esempio non funziona piu!!!! Con ritardi cosi grandi è chiaro che las crittura dei caratteri risulta molto lenta, ho quindi risolto abbassando il ritardi tra i caratteri:</p>
<p>#define LCD_TW_DELAY 1 // milliseconds between characters </p>
<p>ottenendo discreti risultati.</p>
<p>Recentemente ho acquistato la FREEDOM II con PICkit2. Assieme alla scheda viene fornito un LCD proprio DISPLAYTECH 162A e ho potuto verificare quando suddetto anche con questo nuovo hardware. Quindi posso escludere ogni problema di programmatore/scheda di sviluppo che usavo prima.</p>
<p>Purtroppo questa soluzione NON funziona NE con il DISPLAYTECH 162D ne con il DISPLAYTECH 202B. Avendo un po di tempo mi metterò ad indagare anche su questi&#8230;rifacendo magari le funzioni di inizializzazioni con una versione ad 8 bit invece che 4. Premetto però che tutti gli LCD menzionati hanno datasheet identici (parlo della descrizione dei ritardi, della descizione della fase di inizializzazione ecc) quindi mi sembra strano si comportino in maniera diversa.</p>
<p>Hai qualche idea?!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: neuro_79</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-9850</link>
		<dc:creator>neuro_79</dc:creator>
		<pubDate>Sat, 29 Jan 2011 21:12:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-9850</guid>
		<description>PIC16F877A e pin come da tuo schema. Ovvero LCD collegato alla porta D come segue:
LCD pin 1 -&gt; GND
LCD pin 2 -&gt;Vcc
LCD pin 3 -&gt;potenziometro
LCD pin 4 -&gt;RD2
LCD pin 5 -&gt;GND
LCD pin 6 -&gt;RD3
LCD pin 7 -&gt;GND
LCD pin 8 -&gt;GND
LCD pin 9 -&gt;GND
LCD pin 10 -&gt;GND
LCD pin 11 -&gt;RD4
LCD pin 12 -&gt;RD5
LCD pin 13 -&gt;RD6
LCD pin 14 -&gt;RD7

Ho fatto altre prove anche con alimentazione separata per l&#039;LCD (masse in comune) ma niente....solito risultato...prima riga tutta iena....sia sul display 162A che sul 162B mentre il 162 fà una cosa diversa ovvero si vedono qualche punto e qualche linea che ricorda vagamente la scritta &quot;Hello World&quot; che sto scrivendo. Insomma proprio non mi ci raccapezzo.....le prove tra i diversi LCD le ho fatte proprio togliendo uno e infilando l&#039;altro senza alcuna modifica...ma continuano a fare cose diverse.</description>
		<content:encoded><![CDATA[<p>PIC16F877A e pin come da tuo schema. Ovvero LCD collegato alla porta D come segue:<br />
LCD pin 1 -&gt; GND<br />
LCD pin 2 -&gt;Vcc<br />
LCD pin 3 -&gt;potenziometro<br />
LCD pin 4 -&gt;RD2<br />
LCD pin 5 -&gt;GND<br />
LCD pin 6 -&gt;RD3<br />
LCD pin 7 -&gt;GND<br />
LCD pin 8 -&gt;GND<br />
LCD pin 9 -&gt;GND<br />
LCD pin 10 -&gt;GND<br />
LCD pin 11 -&gt;RD4<br />
LCD pin 12 -&gt;RD5<br />
LCD pin 13 -&gt;RD6<br />
LCD pin 14 -&gt;RD7</p>
<p>Ho fatto altre prove anche con alimentazione separata per l&#8217;LCD (masse in comune) ma niente&#8230;.solito risultato&#8230;prima riga tutta iena&#8230;.sia sul display 162A che sul 162B mentre il 162 fà una cosa diversa ovvero si vedono qualche punto e qualche linea che ricorda vagamente la scritta &#8220;Hello World&#8221; che sto scrivendo. Insomma proprio non mi ci raccapezzo&#8230;..le prove tra i diversi LCD le ho fatte proprio togliendo uno e infilando l&#8217;altro senza alcuna modifica&#8230;ma continuano a fare cose diverse.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-9848</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Sat, 29 Jan 2011 18:25:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-9848</guid>
		<description>PIC/pin utilizzati?</description>
		<content:encoded><![CDATA[<p>PIC/pin utilizzati?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: neuro_79</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-9846</link>
		<dc:creator>neuro_79</dc:creator>
		<pubDate>Sat, 29 Jan 2011 14:43:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-9846</guid>
		<description>pure i miei sono così con una o due gocce nere. Dai datasheet vedo che sono tutti KS0070B, ne ho appena provato uno displatech 20x2 con controller KS0066U semre della displaytech ma fa esattamente uguale....prima riga tutta scritta. Ho provato il micro sia su basetta di prova (realizzata da me) sia su breadbord collegamendo unicamente alimentazioni e display...stesso risultato</description>
		<content:encoded><![CDATA[<p>pure i miei sono così con una o due gocce nere. Dai datasheet vedo che sono tutti KS0070B, ne ho appena provato uno displatech 20&#215;2 con controller KS0066U semre della displaytech ma fa esattamente uguale&#8230;.prima riga tutta scritta. Ho provato il micro sia su basetta di prova (realizzata da me) sia su breadbord collegamendo unicamente alimentazioni e display&#8230;stesso risultato</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-9845</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Sat, 29 Jan 2011 13:55:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-9845</guid>
		<description>Generalmente i display che uso io non hanno il chip, ma la quella che chiamiamo affettuosamente &quot;la macchia&quot;... cioè quella goccia nera che serve a coprire i chip stampati, per cui non c&#039;è scritto nulla e non ho idea di che controller si celi li sotto. Per alimentazione intendo un&#039;alimentazione non sufficiente, hai controllato che la tensione sia 5 volt? A quali pin del micro l&#039;hai collegato?</description>
		<content:encoded><![CDATA[<p>Generalmente i display che uso io non hanno il chip, ma la quella che chiamiamo affettuosamente &#8220;la macchia&#8221;&#8230; cioè quella goccia nera che serve a coprire i chip stampati, per cui non c&#8217;è scritto nulla e non ho idea di che controller si celi li sotto. Per alimentazione intendo un&#8217;alimentazione non sufficiente, hai controllato che la tensione sia 5 volt? A quali pin del micro l&#8217;hai collegato?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: neuro_79</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-9844</link>
		<dc:creator>neuro_79</dc:creator>
		<pubDate>Sat, 29 Jan 2011 13:20:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-9844</guid>
		<description>avendo letto tutti i commenti possibili ed immaginabili ho provato tutte queste cose, il contrasto (agendo sul potenziometro) funziona. Inoltre ho provato sia con pin (i 4 bit che non sono usati) a massa che flottanti. Per problema di alimentazione che intendi? i display che tu usi di solito sono proprio con controller Hitachi? io sono riuscito a trovare solo questi della displytech</description>
		<content:encoded><![CDATA[<p>avendo letto tutti i commenti possibili ed immaginabili ho provato tutte queste cose, il contrasto (agendo sul potenziometro) funziona. Inoltre ho provato sia con pin (i 4 bit che non sono usati) a massa che flottanti. Per problema di alimentazione che intendi? i display che tu usi di solito sono proprio con controller Hitachi? io sono riuscito a trovare solo questi della displytech</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-9843</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Sat, 29 Jan 2011 13:04:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-9843</guid>
		<description>La riga piena di quadratini può anche essere un problema di contrasto. Ci può essere pure un problema di alimentazione. Inoltre alcuni display vogliono che le 4 linee dati che non hai usato siano messe a massa, altri vogliono che siano lasciate flottanti.</description>
		<content:encoded><![CDATA[<p>La riga piena di quadratini può anche essere un problema di contrasto. Ci può essere pure un problema di alimentazione. Inoltre alcuni display vogliono che le 4 linee dati che non hai usato siano messe a massa, altri vogliono che siano lasciate flottanti.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: neuro_79</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-9842</link>
		<dc:creator>neuro_79</dc:creator>
		<pubDate>Sat, 29 Jan 2011 12:50:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-9842</guid>
		<description>Si la modalità a 4 bit è prevista, si vede anche dal datasheet che hai fornito tu....pero sembra essere decisamente diversa da quella dell&#039;Hitachi che tu hai riportato anche nella lezione.</description>
		<content:encoded><![CDATA[<p>Si la modalità a 4 bit è prevista, si vede anche dal datasheet che hai fornito tu&#8230;.pero sembra essere decisamente diversa da quella dell&#8217;Hitachi che tu hai riportato anche nella lezione.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-9841</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Sat, 29 Jan 2011 12:22:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-9841</guid>
		<description>Controlla il datasheet di quel controller (del controller, no del display) se prevede la modalità a 4 bit. Penso di si perchè vengono dichiarati compatibili.</description>
		<content:encoded><![CDATA[<p>Controlla il datasheet di quel controller (del controller, no del display) se prevede la modalità a 4 bit. Penso di si perchè vengono dichiarati compatibili.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: neuro_79</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-9840</link>
		<dc:creator>neuro_79</dc:creator>
		<pubDate>Sat, 29 Jan 2011 11:45:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-9840</guid>
		<description>Ciao Giovanni scrivo per un aiuto su questi maledetti display che mi stanno facendo dannare da qualche giorno.....
per fare le prove ho ben 3 display: Displatech 162, 162A e 162B. Tutti dovrebbero essere &quot;identici&quot; con controller KS0070B compatibile con Hitachi. Allora con il tuo software &quot;Hello World&quot; i risultati sono che sul primo si vedono i caratteri appena accennati (ovvero una asta, qualche puntino e cosi via) mentre sugli altri due si vede solo la prima riga del display tutta scritta ovvero piena di quadratini. Qualche consiglio? Ho già provato le cose suggerite nei commenti tipo aggiungere una istruzione &quot;CustomChar()&quot; oppure qualche ritardo. Nei data sheet dei display la fase di inizializzazione è identica a quella del controller hitachi ma c&#039;è solo quella a 8 bit, mentre tu usi quella a 4.</description>
		<content:encoded><![CDATA[<p>Ciao Giovanni scrivo per un aiuto su questi maledetti display che mi stanno facendo dannare da qualche giorno&#8230;..<br />
per fare le prove ho ben 3 display: Displatech 162, 162A e 162B. Tutti dovrebbero essere &#8220;identici&#8221; con controller KS0070B compatibile con Hitachi. Allora con il tuo software &#8220;Hello World&#8221; i risultati sono che sul primo si vedono i caratteri appena accennati (ovvero una asta, qualche puntino e cosi via) mentre sugli altri due si vede solo la prima riga del display tutta scritta ovvero piena di quadratini. Qualche consiglio? Ho già provato le cose suggerite nei commenti tipo aggiungere una istruzione &#8220;CustomChar()&#8221; oppure qualche ritardo. Nei data sheet dei display la fase di inizializzazione è identica a quella del controller hitachi ma c&#8217;è solo quella a 8 bit, mentre tu usi quella a 4.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Ben</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-7487</link>
		<dc:creator>Ben</dc:creator>
		<pubDate>Thu, 21 Oct 2010 12:14:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-7487</guid>
		<description>Io l&#039;ultima volta ho risolto eseguendo una nuova inizializzazione ogni volta che devo riscrivere i caratteri personalizzati in memoria</description>
		<content:encoded><![CDATA[<p>Io l&#8217;ultima volta ho risolto eseguendo una nuova inizializzazione ogni volta che devo riscrivere i caratteri personalizzati in memoria</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Ben</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-7486</link>
		<dc:creator>Ben</dc:creator>
		<pubDate>Thu, 21 Oct 2010 12:12:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-7486</guid>
		<description>Capita anche a me, con un Displaytech 162D!
Da 2 giorni ormai stavo impazzendo sul perché il display si rifiutasse di mostrare alcunché nonostante un corretta procedura di inizializzazione. Poi dato che usavo una libreria scritta da me mi è venuto il dubbio che avessi sbagliato qualcosa (anche se con altri LCD ha sempre funzionato) ed ho provato il codice presentato in queste lezioni, ma con gli stessi risultati.

Poco fa ho letto il commento di Livio e mi sono detto &quot;è assurdo, ma proviamo&quot; e ha funzionato...   Mah........ Eppure il controller è un KS0070B, perfettamente compatibile con HD44780</description>
		<content:encoded><![CDATA[<p>Capita anche a me, con un Displaytech 162D!<br />
Da 2 giorni ormai stavo impazzendo sul perché il display si rifiutasse di mostrare alcunché nonostante un corretta procedura di inizializzazione. Poi dato che usavo una libreria scritta da me mi è venuto il dubbio che avessi sbagliato qualcosa (anche se con altri LCD ha sempre funzionato) ed ho provato il codice presentato in queste lezioni, ma con gli stessi risultati.</p>
<p>Poco fa ho letto il commento di Livio e mi sono detto &#8220;è assurdo, ma proviamo&#8221; e ha funzionato&#8230;   Mah&#8230;&#8230;.. Eppure il controller è un KS0070B, perfettamente compatibile con HD44780</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Tomas Zavalloni</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-7365</link>
		<dc:creator>Tomas Zavalloni</dc:creator>
		<pubDate>Tue, 12 Oct 2010 14:02:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-7365</guid>
		<description>Ottimo, sono molto curioso. Un saluto a tutti</description>
		<content:encoded><![CDATA[<p>Ottimo, sono molto curioso. Un saluto a tutti</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-7338</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Sun, 10 Oct 2010 08:53:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-7338</guid>
		<description>E&#039; previsto per i KS0108, ma non so dire quando.</description>
		<content:encoded><![CDATA[<p>E&#8217; previsto per i KS0108, ma non so dire quando.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Tomas Zavalloni</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-7337</link>
		<dc:creator>Tomas Zavalloni</dc:creator>
		<pubDate>Sun, 10 Oct 2010 08:47:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-7337</guid>
		<description>Salve, e complimenti anche da parte mia. Mi chiedevo se in futuro è previsto un tutorial anche per i display grafici..... sarebbe un interessante sviluppo dell&#039;argomento. Reperire informazioni per i controller hitachi è infatti molto facile, ma (probabilmente per un mio limite) non è la stessa cosa per i display grafici..... 
Ne approfitto per salutare tutti ... ciao ciao</description>
		<content:encoded><![CDATA[<p>Salve, e complimenti anche da parte mia. Mi chiedevo se in futuro è previsto un tutorial anche per i display grafici&#8230;.. sarebbe un interessante sviluppo dell&#8217;argomento. Reperire informazioni per i controller hitachi è infatti molto facile, ma (probabilmente per un mio limite) non è la stessa cosa per i display grafici&#8230;..<br />
Ne approfitto per salutare tutti &#8230; ciao ciao</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-7094</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Thu, 16 Sep 2010 23:20:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-7094</guid>
		<description>Questo sistema non è quello che hai già esposto? Un paio di volte ci ho provato pure io ma a dire il vero non mi ha funzionato: in pratica il display si comportava in maniera strana. Quello che non ho fatto, però, è di cambiare un carattere già visualizzato come hai descritto tu adesso. Proverò. Grazie del contributo!</description>
		<content:encoded><![CDATA[<p>Questo sistema non è quello che hai già esposto? Un paio di volte ci ho provato pure io ma a dire il vero non mi ha funzionato: in pratica il display si comportava in maniera strana. Quello che non ho fatto, però, è di cambiare un carattere già visualizzato come hai descritto tu adesso. Proverò. Grazie del contributo!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Pax</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-7093</link>
		<dc:creator>Pax</dc:creator>
		<pubDate>Thu, 16 Sep 2010 23:14:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-7093</guid>
		<description>sono riuscito ad accontentare la mia necessità
di avere più caratteri da personalizzare.
Bisogna cmq arrivare ad un compromesso
provo a spiegare: nel mio caso avevo bisogno di
di scrivere un numero con un carattere diverso
dagli altri; un numero che va da 0 a 9
il mio numero custom è su sfondo
nero, un po&#039; più piccolo e stile display
sette segmenti.
Solo per avere tutto il sistema decimale
cioè i numeri da zero a nove avrei avuto bisogno
di 10 caratteri da personalizzare anzi dei soli
otto che mi può fornire il display.
Oltre a questo avevo bisogno di scrivere alcune
parole con un carattere più piccolo mettendo 
anche due lettere per casella.
La soluzione a tutto questo è scegliere
quali caratteri personalizzati occorrono
sempre stampati sull&#039;LCD e quali invece si devono
solo alternare fra loro.
nel mio caso ho sette caratteri personali che voglio
sempre stampati su LCD e un carattere (il numero)
che deve soltanto altrnarsi al valore successivo
cioè da zero a nove e poi ricominciare sempre nella
stessa posizione sul display.
Come fare:
Prima di tutto si possono programmare i primi sette
byte della &quot;ROM&quot; con i nostri caratteri che nn cambiano
e nell&#039;ultimo ,l&#039;ottavo, mettiamo il primo carattere
che dovrà cambiare nel corso del programma.
A questo punto possiamo stampare i nostri caratteri su LCD
nella posizione in cui li vogliamo.
Ora basta sapere che per cambiare il carattere &quot;variabile&quot;
basterà riprogrammare l&#039;ottava posizione della &quot;ROM&quot;
con i byte che creano il nuovo carattere da visualizzare
senza la necessità di ristamparlo.
il carattere si modificherà automaticamente nel momento
in cui andate a riprogrammare la &quot;ROM&quot;.
Per i più interessati questo metodo dovrebbe anche
permettere semplici animazioni all&#039;interno di
una singola casella. per esempio una lettera
che si sposta pixel per pixel
anzi che casella per casella.
Ovviamente scegliere quanti caratteri devono
rimanere fissi e quanti variabili è
assolutamente a discrezione personale.
Spero che tutto ciò possa servire a qualcuno.
Un grazie a SettoreZero per tutte le informazioni
utili nell&#039;utilizzo dei PIC.</description>
		<content:encoded><![CDATA[<p>sono riuscito ad accontentare la mia necessità<br />
di avere più caratteri da personalizzare.<br />
Bisogna cmq arrivare ad un compromesso<br />
provo a spiegare: nel mio caso avevo bisogno di<br />
di scrivere un numero con un carattere diverso<br />
dagli altri; un numero che va da 0 a 9<br />
il mio numero custom è su sfondo<br />
nero, un po&#8217; più piccolo e stile display<br />
sette segmenti.<br />
Solo per avere tutto il sistema decimale<br />
cioè i numeri da zero a nove avrei avuto bisogno<br />
di 10 caratteri da personalizzare anzi dei soli<br />
otto che mi può fornire il display.<br />
Oltre a questo avevo bisogno di scrivere alcune<br />
parole con un carattere più piccolo mettendo<br />
anche due lettere per casella.<br />
La soluzione a tutto questo è scegliere<br />
quali caratteri personalizzati occorrono<br />
sempre stampati sull&#8217;LCD e quali invece si devono<br />
solo alternare fra loro.<br />
nel mio caso ho sette caratteri personali che voglio<br />
sempre stampati su LCD e un carattere (il numero)<br />
che deve soltanto altrnarsi al valore successivo<br />
cioè da zero a nove e poi ricominciare sempre nella<br />
stessa posizione sul display.<br />
Come fare:<br />
Prima di tutto si possono programmare i primi sette<br />
byte della &#8220;ROM&#8221; con i nostri caratteri che nn cambiano<br />
e nell&#8217;ultimo ,l&#8217;ottavo, mettiamo il primo carattere<br />
che dovrà cambiare nel corso del programma.<br />
A questo punto possiamo stampare i nostri caratteri su LCD<br />
nella posizione in cui li vogliamo.<br />
Ora basta sapere che per cambiare il carattere &#8220;variabile&#8221;<br />
basterà riprogrammare l&#8217;ottava posizione della &#8220;ROM&#8221;<br />
con i byte che creano il nuovo carattere da visualizzare<br />
senza la necessità di ristamparlo.<br />
il carattere si modificherà automaticamente nel momento<br />
in cui andate a riprogrammare la &#8220;ROM&#8221;.<br />
Per i più interessati questo metodo dovrebbe anche<br />
permettere semplici animazioni all&#8217;interno di<br />
una singola casella. per esempio una lettera<br />
che si sposta pixel per pixel<br />
anzi che casella per casella.<br />
Ovviamente scegliere quanti caratteri devono<br />
rimanere fissi e quanti variabili è<br />
assolutamente a discrezione personale.<br />
Spero che tutto ciò possa servire a qualcuno.<br />
Un grazie a SettoreZero per tutte le informazioni<br />
utili nell&#8217;utilizzo dei PIC.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: pax</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-7040</link>
		<dc:creator>pax</dc:creator>
		<pubDate>Wed, 15 Sep 2010 12:15:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-7040</guid>
		<description>ricevuto. grazie cmq per la risposta</description>
		<content:encoded><![CDATA[<p>ricevuto. grazie cmq per la risposta</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-7038</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Wed, 15 Sep 2010 07:33:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-7038</guid>
		<description>Quel sistema l&#039;ho provato pure io e pare che davvero non funzioni. Non ho idea se ci sono altri sistemi</description>
		<content:encoded><![CDATA[<p>Quel sistema l&#8217;ho provato pure io e pare che davvero non funzioni. Non ho idea se ci sono altri sistemi</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Pax</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-lezione-7-parte-3-interfaccia-con-lcd-come-definire-simboli-e-caratteri-personalizzati-nell-lcd-esempi-di-animazione/comment-page-1/#comment-7033</link>
		<dc:creator>Pax</dc:creator>
		<pubDate>Tue, 14 Sep 2010 23:22:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1670#comment-7033</guid>
		<description>ciao ho appreso molto dalle lezionei sulla gestione di un LCD
ne appunto uno 16x2 volevo un consiglio su come poter avere più caratteri da personalizzare.
La mia idea era quella di riscrivere nelle 8 locazioni libere i caratteri custom ogni volta che ne ho bisogno nel source
ma ho appurato che nn funziona.
Ogni volta che riscrivo nelle locazioni libere durante l&#039;esecuzione del programma cambiano anche i caratteri custom già impressi nell&#039;LCD.
C&#039;è qualche altro modo per avere più caratteri da personalizzare?</description>
		<content:encoded><![CDATA[<p>ciao ho appreso molto dalle lezionei sulla gestione di un LCD<br />
ne appunto uno 16&#215;2 volevo un consiglio su come poter avere più caratteri da personalizzare.<br />
La mia idea era quella di riscrivere nelle 8 locazioni libere i caratteri custom ogni volta che ne ho bisogno nel source<br />
ma ho appurato che nn funziona.<br />
Ogni volta che riscrivo nelle locazioni libere durante l&#8217;esecuzione del programma cambiano anche i caratteri custom già impressi nell&#8217;LCD.<br />
C&#8217;è qualche altro modo per avere più caratteri da personalizzare?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

