<?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 di programmazione PICMicro in C &#8211; Lezione 6 &#8211; Collegamento di pulsanti, pilotare un led in on/off</title>
	<atom:link href="http://www.settorezero.com/wordpress/corso-di-programmazione-picmicro-in-c-lezione-6-collegamento-di-pulsanti-pilotare-un-led-in-on-off/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.settorezero.com/wordpress/corso-di-programmazione-picmicro-in-c-lezione-6-collegamento-di-pulsanti-pilotare-un-led-in-on-off/</link>
	<description></description>
	<lastBuildDate>Fri, 30 Jul 2010 21:26:04 +0200</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-di-programmazione-picmicro-in-c-lezione-6-collegamento-di-pulsanti-pilotare-un-led-in-on-off/comment-page-1/#comment-6259</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Sat, 17 Jul 2010 18:14:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-6259</guid>
		<description>Così però non si finirebbe mai: tenga conto che molti pic hanno registri che altri non hanno e facendo in questo modo non farei altro che stimolare la pigrizia: tenga conto che oltre il 50% vuole la pappa pronta e non si sforza nemmeno di leggere il datasheet, cosa che invece è assolutamente necessaria altrimenti si potranno scrivere migliaia di corsi inutilmente: per tale motivo quando scrivo qualcosa lo faccio sempre con gli esempi del datasheet alla mano: è questa la cosa che ritengo più importante in assoluto, imparare a leggere ed interpretare i datasheet.

Imparando a cercarsi le cose da sè avvantaggia notevolmente quando si vorrà fare il passaggio alla serie 18 o alle superiori (24, dspic33) perchè si avrà acquisita quella dimestichezza necessaria a trovare ciò che serve, perchè già si saprà dove cercare questa o quell&#039;altra cosa. Per il resto se un utente non trova una cosa sono sempre stato disposto ad indirizzarlo, e nonostante molte cose le scrivo chiaramente c&#039;è sempre chi fa il completo opposto. La conclusione è che di cose da scrivere o da puntualizzare ce ne sarebbero a bizzeffe... ma non finirei mai.. già ho arretrate troppe cose che vorrei mettere...</description>
		<content:encoded><![CDATA[<p>Così però non si finirebbe mai: tenga conto che molti pic hanno registri che altri non hanno e facendo in questo modo non farei altro che stimolare la pigrizia: tenga conto che oltre il 50% vuole la pappa pronta e non si sforza nemmeno di leggere il datasheet, cosa che invece è assolutamente necessaria altrimenti si potranno scrivere migliaia di corsi inutilmente: per tale motivo quando scrivo qualcosa lo faccio sempre con gli esempi del datasheet alla mano: è questa la cosa che ritengo più importante in assoluto, imparare a leggere ed interpretare i datasheet.</p>
<p>Imparando a cercarsi le cose da sè avvantaggia notevolmente quando si vorrà fare il passaggio alla serie 18 o alle superiori (24, dspic33) perchè si avrà acquisita quella dimestichezza necessaria a trovare ciò che serve, perchè già si saprà dove cercare questa o quell&#8217;altra cosa. Per il resto se un utente non trova una cosa sono sempre stato disposto ad indirizzarlo, e nonostante molte cose le scrivo chiaramente c&#8217;è sempre chi fa il completo opposto. La conclusione è che di cose da scrivere o da puntualizzare ce ne sarebbero a bizzeffe&#8230; ma non finirei mai.. già ho arretrate troppe cose che vorrei mettere&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-di-programmazione-picmicro-in-c-lezione-6-collegamento-di-pulsanti-pilotare-un-led-in-on-off/comment-page-1/#comment-6258</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Sat, 17 Jul 2010 17:16:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-6258</guid>
		<description>Pickit UNO ? Il pickit DUE supporta pure i pic32! Per l&#039;UNO non ti so rispondere</description>
		<content:encoded><![CDATA[<p>Pickit UNO ? Il pickit DUE supporta pure i pic32! Per l&#8217;UNO non ti so rispondere</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Cristianoscr</title>
		<link>http://www.settorezero.com/wordpress/corso-di-programmazione-picmicro-in-c-lezione-6-collegamento-di-pulsanti-pilotare-un-led-in-on-off/comment-page-1/#comment-6255</link>
		<dc:creator>Cristianoscr</dc:creator>
		<pubDate>Sat, 17 Jul 2010 16:09:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-6255</guid>
		<description>Il pickit 1 Supporta i PIC serie 16 a 40 pin e quelli della serie 18? Ovviamente non montati sulla scheda ma montati su una bread board e programmati tramite ICSP.
Dovrebbero funzionare giusto?</description>
		<content:encoded><![CDATA[<p>Il pickit 1 Supporta i PIC serie 16 a 40 pin e quelli della serie 18? Ovviamente non montati sulla scheda ma montati su una bread board e programmati tramite ICSP.<br />
Dovrebbero funzionare giusto?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: DIEGO</title>
		<link>http://www.settorezero.com/wordpress/corso-di-programmazione-picmicro-in-c-lezione-6-collegamento-di-pulsanti-pilotare-un-led-in-on-off/comment-page-1/#comment-6254</link>
		<dc:creator>DIEGO</dc:creator>
		<pubDate>Sat, 17 Jul 2010 15:32:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-6254</guid>
		<description>Le consiglierei, di stendere un piccolo articolo sul settaggio dei fuses di configurazione, e anche nel setteggio dei singoli bit. 
Molti utenti alle prime armi potrebbero confondersi e volere un po più di chiarezze su modo di stesura in C. Prendo d&#039;esempio una sua frase &quot;abilitare tale bit nel registro option (oppure scrivere: RBPU=1)&quot;.
Se facesse una piccola &quot;enciclopedia&quot; su questi termini, con i principali elencati in colonna, la loro funzione, i possibili modi di stesura (come le ho citato prima), e magari anche una breve descrizione della funzione del singolo settaggio, sono sicuro che darebbe 2 marce in più a questo corso.</description>
		<content:encoded><![CDATA[<p>Le consiglierei, di stendere un piccolo articolo sul settaggio dei fuses di configurazione, e anche nel setteggio dei singoli bit.<br />
Molti utenti alle prime armi potrebbero confondersi e volere un po più di chiarezze su modo di stesura in C. Prendo d&#8217;esempio una sua frase &#8220;abilitare tale bit nel registro option (oppure scrivere: RBPU=1)&#8221;.<br />
Se facesse una piccola &#8220;enciclopedia&#8221; su questi termini, con i principali elencati in colonna, la loro funzione, i possibili modi di stesura (come le ho citato prima), e magari anche una breve descrizione della funzione del singolo settaggio, sono sicuro che darebbe 2 marce in più a questo corso.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-di-programmazione-picmicro-in-c-lezione-6-collegamento-di-pulsanti-pilotare-un-led-in-on-off/comment-page-1/#comment-4040</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Fri, 05 Mar 2010 21:51:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-4040</guid>
		<description>€0x32 come prezzo per il pickit3 è buono, anche perchè lo si trova generalmente a qualcosa di più, ma solo perchè viene fornito con una scheda di sviluppo.
La Polonia, dopo la Cina, è abbastanza conveniente e hai la roba in una settimana. Solo che gli LCD 16x2 non stanno meno di 4 euro (escluse spedizioni) devi aver letto male o hai una quotazione vecchia. In Cina comunque a quel prezzo li si trovano. E&#039; interessante questo venditore perchè ha pure questi formati strani, come ,8x1 a caratteri giganti, questo si che è caruccio e potrebbe sostituire in maniera degna un paio di display a 7 segmenti in un voltmetro ad esempio. Salvato tra i preferiti.

Le mie comunque sono quotazioni medie, a volte preferisco spendere qualcosa di più per lo stesso prodotto ma averlo subito. Alcune cose, se comprate nei negozietti di elettronica, poi, costano da paura. 

Prova ad usare pure il 16F819 che, con lo stesso numero di pin, ti ritrovi pure il convertitore A/D che ti ci puoi divertire parecchio.</description>
		<content:encoded><![CDATA[<p>€0&#215;32 come prezzo per il pickit3 è buono, anche perchè lo si trova generalmente a qualcosa di più, ma solo perchè viene fornito con una scheda di sviluppo.<br />
La Polonia, dopo la Cina, è abbastanza conveniente e hai la roba in una settimana. Solo che gli LCD 16&#215;2 non stanno meno di 4 euro (escluse spedizioni) devi aver letto male o hai una quotazione vecchia. In Cina comunque a quel prezzo li si trovano. E&#8217; interessante questo venditore perchè ha pure questi formati strani, come ,8&#215;1 a caratteri giganti, questo si che è caruccio e potrebbe sostituire in maniera degna un paio di display a 7 segmenti in un voltmetro ad esempio. Salvato tra i preferiti.</p>
<p>Le mie comunque sono quotazioni medie, a volte preferisco spendere qualcosa di più per lo stesso prodotto ma averlo subito. Alcune cose, se comprate nei negozietti di elettronica, poi, costano da paura. </p>
<p>Prova ad usare pure il 16F819 che, con lo stesso numero di pin, ti ritrovi pure il convertitore A/D che ti ci puoi divertire parecchio.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Luca</title>
		<link>http://www.settorezero.com/wordpress/corso-di-programmazione-picmicro-in-c-lezione-6-collegamento-di-pulsanti-pilotare-un-led-in-on-off/comment-page-1/#comment-4039</link>
		<dc:creator>Luca</dc:creator>
		<pubDate>Fri, 05 Mar 2010 21:37:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-4039</guid>
		<description>Non ne ho idea, poichè mi trovo benissimo col 628A, non è che mi ci sono soffermato molto, il programmatore funziona bene, a dir la verità anche il controllo và a buon fine, e facendo una lettura del codice interno vedo (anche con i miei occhi) che è tutto flashato... comunque penso che per comodità, appena avrò caricato il mio registro MNEY=0b00110010 vedrò di prendere il PICKit3 per sedare ogni dubbio e capire che era solo uno stupido errore ed avrò speso solo tanti euro per capire che era &quot;quello stupido flag&quot;...

In ogni caso sarà sicuramente un problema risolvibile, magari quando non ho che fare; diciamo che mi sto fissando parecchio sul 628 perchè trovo sia un ottimo allenamento ad imparare a programmare un po di tutto, così quando dovrò cambiare pic per qualsiasi motivo, il tutto sarà molto più indolore!

Comunque se ti può interessare, stavo leggendo la lezione successiva ho letto le tue &quot;quotazioni&quot;, ti consiglio artronicpl su ebay, ho fatto un mega acquisto, i 628 li paghi meno di 1.50€ gli lcd da 16x2 2.50€, 877a 4.00€...conveniente vero?</description>
		<content:encoded><![CDATA[<p>Non ne ho idea, poichè mi trovo benissimo col 628A, non è che mi ci sono soffermato molto, il programmatore funziona bene, a dir la verità anche il controllo và a buon fine, e facendo una lettura del codice interno vedo (anche con i miei occhi) che è tutto flashato&#8230; comunque penso che per comodità, appena avrò caricato il mio registro MNEY=0b00110010 vedrò di prendere il PICKit3 per sedare ogni dubbio e capire che era solo uno stupido errore ed avrò speso solo tanti euro per capire che era &#8220;quello stupido flag&#8221;&#8230;</p>
<p>In ogni caso sarà sicuramente un problema risolvibile, magari quando non ho che fare; diciamo che mi sto fissando parecchio sul 628 perchè trovo sia un ottimo allenamento ad imparare a programmare un po di tutto, così quando dovrò cambiare pic per qualsiasi motivo, il tutto sarà molto più indolore!</p>
<p>Comunque se ti può interessare, stavo leggendo la lezione successiva ho letto le tue &#8220;quotazioni&#8221;, ti consiglio artronicpl su ebay, ho fatto un mega acquisto, i 628 li paghi meno di 1.50€ gli lcd da 16&#215;2 2.50€, 877a 4.00€&#8230;conveniente vero?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-di-programmazione-picmicro-in-c-lezione-6-collegamento-di-pulsanti-pilotare-un-led-in-on-off/comment-page-1/#comment-4038</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Fri, 05 Mar 2010 21:11:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-4038</guid>
		<description>Bene, è un&#039;ottima soluzione :)
Mi fa piacere vedere persone che partecipano.

Per l&#039;877A è alquanto strano, non sarà rotto? O forse il programmatore che usi non lo supporta appieno</description>
		<content:encoded><![CDATA[<p>Bene, è un&#8217;ottima soluzione :)<br />
Mi fa piacere vedere persone che partecipano.</p>
<p>Per l&#8217;877A è alquanto strano, non sarà rotto? O forse il programmatore che usi non lo supporta appieno</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Luca</title>
		<link>http://www.settorezero.com/wordpress/corso-di-programmazione-picmicro-in-c-lezione-6-collegamento-di-pulsanti-pilotare-un-led-in-on-off/comment-page-1/#comment-4037</link>
		<dc:creator>Luca</dc:creator>
		<pubDate>Fri, 05 Mar 2010 21:06:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-4037</guid>
		<description>Ciao, innanzitutto ti volevo ringraziare, il problema della lezione 3 è totalmente risolto, soltanto per il fatto dell&#039;877a ho perso le speranze. Ti rispondo qui suggerendoti una miglioria al programma di sopra: inutile l&#039;antibounce sul primo pulsante, perchè sollevato il dito in ogni caso il led tende a spegnersi superato il transitorio glitch del segnale. Sopratutto, la parte relativa al secondo pulsante la scriverei aggiungendo una soluzione al problema del lampeggio dovuto alla pressione prolungata del pulsante, basta una riga di codice:

		if (!BTN2) 
			{
			DelayMs(antib); 
			if (!BTN2)
				{
				LED2=LED2^1;
				do{ }while(!BTN2);  //&lt;---finchè il tasto rimane premuto si resta intrappolati in un ciclo vuoto, appena si solleva il dito il programma continua. Non ho provato ma un while è equivalente.
				}
			}
		}
	} 

Grazie mille ancora e Buona serata,
L</description>
		<content:encoded><![CDATA[<p>Ciao, innanzitutto ti volevo ringraziare, il problema della lezione 3 è totalmente risolto, soltanto per il fatto dell&#8217;877a ho perso le speranze. Ti rispondo qui suggerendoti una miglioria al programma di sopra: inutile l&#8217;antibounce sul primo pulsante, perchè sollevato il dito in ogni caso il led tende a spegnersi superato il transitorio glitch del segnale. Sopratutto, la parte relativa al secondo pulsante la scriverei aggiungendo una soluzione al problema del lampeggio dovuto alla pressione prolungata del pulsante, basta una riga di codice:</p>
<p>		if (!BTN2)<br />
			{<br />
			DelayMs(antib);<br />
			if (!BTN2)<br />
				{<br />
				LED2=LED2^1;<br />
				do{ }while(!BTN2);  //&lt;&#8212;finchè il tasto rimane premuto si resta intrappolati in un ciclo vuoto, appena si solleva il dito il programma continua. Non ho provato ma un while è equivalente.<br />
				}<br />
			}<br />
		}<br />
	} </p>
<p>Grazie mille ancora e Buona serata,<br />
L</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-di-programmazione-picmicro-in-c-lezione-6-collegamento-di-pulsanti-pilotare-un-led-in-on-off/comment-page-1/#comment-3993</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Tue, 02 Mar 2010 05:46:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-3993</guid>
		<description>Tenendo premuto si verifica la commutazione continua, quindi il led lampeggia. Nella maggior parte delle applicazioni è sempre così. Quando si preme un pulsante normalmente non ci si tiene il dito sopra per più di mezzo/1 secondo. Se vuoi fare in modo che non si verifica il lampeggio se uno tiene premuto, ti setti un flag che blocca la verifica del pulsante fino a quando non cambia stato. Nel filmato la questione è diversa, ho messo un ritardo troppo piccolo per l&#039;antirimbalzo.</description>
		<content:encoded><![CDATA[<p>Tenendo premuto si verifica la commutazione continua, quindi il led lampeggia. Nella maggior parte delle applicazioni è sempre così. Quando si preme un pulsante normalmente non ci si tiene il dito sopra per più di mezzo/1 secondo. Se vuoi fare in modo che non si verifica il lampeggio se uno tiene premuto, ti setti un flag che blocca la verifica del pulsante fino a quando non cambia stato. Nel filmato la questione è diversa, ho messo un ritardo troppo piccolo per l&#8217;antirimbalzo.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: zuperone</title>
		<link>http://www.settorezero.com/wordpress/corso-di-programmazione-picmicro-in-c-lezione-6-collegamento-di-pulsanti-pilotare-un-led-in-on-off/comment-page-1/#comment-3991</link>
		<dc:creator>zuperone</dc:creator>
		<pubDate>Mon, 01 Mar 2010 23:19:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-3991</guid>
		<description>Ciao Giovanni, stai facendo veramente un bellissimo lavoro che sto apprezzando moltissimo. E&#039; da un po&#039; di tempo che volevo iniziare ad usare il C per la programmazione dei PICMicro, ma non mi decidevo mai. Quando ho trovato queste pagine mi sono immediatamente deciso ad iniziare perché trovo talmente chiaro e ben esposto l&#039;argomento che non farlo mi torna impossibile. Vorrei chiederti una cosa in merito a questa lezione:
- alla pressione di P2 il tuo intento è quello semplicemente di cambiare lo stato del led, ma così facendo si provoca un lampeggio del led se il pulsante viene mantenuto premuto. Probabilmente anche nel tuo filmato hai tenuto premuto il pulsante un po&#039; più a lungo facendo pensare ad un doppio impulso mentre probabilmente si tratta di una piccola svista.
Non so se vedo giusto. Cosa ne pensi?
Un saluto ed ancora complimenti.
Claudio</description>
		<content:encoded><![CDATA[<p>Ciao Giovanni, stai facendo veramente un bellissimo lavoro che sto apprezzando moltissimo. E&#8217; da un po&#8217; di tempo che volevo iniziare ad usare il C per la programmazione dei PICMicro, ma non mi decidevo mai. Quando ho trovato queste pagine mi sono immediatamente deciso ad iniziare perché trovo talmente chiaro e ben esposto l&#8217;argomento che non farlo mi torna impossibile. Vorrei chiederti una cosa in merito a questa lezione:<br />
- alla pressione di P2 il tuo intento è quello semplicemente di cambiare lo stato del led, ma così facendo si provoca un lampeggio del led se il pulsante viene mantenuto premuto. Probabilmente anche nel tuo filmato hai tenuto premuto il pulsante un po&#8217; più a lungo facendo pensare ad un doppio impulso mentre probabilmente si tratta di una piccola svista.<br />
Non so se vedo giusto. Cosa ne pensi?<br />
Un saluto ed ancora complimenti.<br />
Claudio</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: McGyver86</title>
		<link>http://www.settorezero.com/wordpress/corso-di-programmazione-picmicro-in-c-lezione-6-collegamento-di-pulsanti-pilotare-un-led-in-on-off/comment-page-1/#comment-3788</link>
		<dc:creator>McGyver86</dc:creator>
		<pubDate>Sun, 07 Feb 2010 21:16:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-3788</guid>
		<description>hai perfettamente ragione, pensavo di aver montato la demoboard con 4 pulsanti e relative resistenze di pull-up, mentre invece le avevo collegate a massa.. che figuraccia... scusami se ti ho fatto perdere tempo...

Un saluto!!</description>
		<content:encoded><![CDATA[<p>hai perfettamente ragione, pensavo di aver montato la demoboard con 4 pulsanti e relative resistenze di pull-up, mentre invece le avevo collegate a massa.. che figuraccia&#8230; scusami se ti ho fatto perdere tempo&#8230;</p>
<p>Un saluto!!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-di-programmazione-picmicro-in-c-lezione-6-collegamento-di-pulsanti-pilotare-un-led-in-on-off/comment-page-1/#comment-3785</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Sun, 07 Feb 2010 18:34:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-3785</guid>
		<description>metto !BTN2 perchè il pulsante ha una resistenza di pullup e premendolo deve portare il segnale di massa quindi è corretto come ho scritto io, se a te funziona all&#039;inverso vuol dire che è il circuito che hai montato tu che è fatto in maniera diversa, oppure stai utilizzando un pulsante normalmente chiuso anzichè uno normalmente aperto. Come già ho specificato, il modo più corretto di collegare un pulsante è questo qui: resistenza di pullup e premendo mi deve portare il segnale di massa. 
Se utilizzi un pulsante normalmente chiuso con questo circuito, premendo lo apri e ti porta il positivo anzichè la massa e quindi la logica del software va cambiata.</description>
		<content:encoded><![CDATA[<p>metto !BTN2 perchè il pulsante ha una resistenza di pullup e premendolo deve portare il segnale di massa quindi è corretto come ho scritto io, se a te funziona all&#8217;inverso vuol dire che è il circuito che hai montato tu che è fatto in maniera diversa, oppure stai utilizzando un pulsante normalmente chiuso anzichè uno normalmente aperto. Come già ho specificato, il modo più corretto di collegare un pulsante è questo qui: resistenza di pullup e premendo mi deve portare il segnale di massa.<br />
Se utilizzi un pulsante normalmente chiuso con questo circuito, premendo lo apri e ti porta il positivo anzichè la massa e quindi la logica del software va cambiata.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: McGyver86</title>
		<link>http://www.settorezero.com/wordpress/corso-di-programmazione-picmicro-in-c-lezione-6-collegamento-di-pulsanti-pilotare-un-led-in-on-off/comment-page-1/#comment-3780</link>
		<dc:creator>McGyver86</dc:creator>
		<pubDate>Sun, 07 Feb 2010 17:08:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-3780</guid>
		<description>Ciao Giovanni, volevo renderti partecipe di una situazione strana che mi è capitata.. Premetto che per seguire le tue fantastiche lezioni utilizzo un pic16f84A con relativa demoboard da me costruita.. Vengo al dunque.. Volevo pilotare un led in on/off (premi il pulsante una volta e il led si accende, lo premi una seconda volta e il led si spegne), quindi mi è tornata utilissima questa tua lezione, dopo aver opportunamente modificato il tuo sorgente per il mio PICmicro, compilato e programmato il pic, mi succede che il led non si accende alla pressione del pulsante... Convinto di aver fatto le cose per il meglio mi rimetto a controllare il sorgente e mi accorgo che c&#039;è qualcosa che non va nella riga 27:
(!BTN2)

come spieghi tu stesso il fatto di mettere il punto esclamativo davanti al simbolo BTN2 significa negazione... Allora ho cancellato il punto esclamativo
perchè mi sembrava più giusto scrivere:

se il pulsante viene premuto, inverti lo stato del led, quindi ho corretto in questo modo:

while(1)
    {
    
    // controllo pulsante 2
   if (BTN2) // se pulsante 2 premuto
	{
	DelayMs(100); // antirimbalzo
	
	        {
	        LED2=LED2^1; // inverto lo stato del led
		}
	}
    }// Fine ciclo continuo

naturalmente l&#039;ho cancellato anche nella riga 13 altrimenti non funzionava..

Non so sinceramente se questo fatto possa dipendere dal tipo di PICmicro utilizzato, quindi chiedo cortesemente delucidazioni in merito visto che sono un nuovissimo entrato nella programmazione di PICmicro.

Grazie del tuo splendido lavoro e del tempo dedicatomi, un saluto!!</description>
		<content:encoded><![CDATA[<p>Ciao Giovanni, volevo renderti partecipe di una situazione strana che mi è capitata.. Premetto che per seguire le tue fantastiche lezioni utilizzo un pic16f84A con relativa demoboard da me costruita.. Vengo al dunque.. Volevo pilotare un led in on/off (premi il pulsante una volta e il led si accende, lo premi una seconda volta e il led si spegne), quindi mi è tornata utilissima questa tua lezione, dopo aver opportunamente modificato il tuo sorgente per il mio PICmicro, compilato e programmato il pic, mi succede che il led non si accende alla pressione del pulsante&#8230; Convinto di aver fatto le cose per il meglio mi rimetto a controllare il sorgente e mi accorgo che c&#8217;è qualcosa che non va nella riga 27:<br />
(!BTN2)</p>
<p>come spieghi tu stesso il fatto di mettere il punto esclamativo davanti al simbolo BTN2 significa negazione&#8230; Allora ho cancellato il punto esclamativo<br />
perchè mi sembrava più giusto scrivere:</p>
<p>se il pulsante viene premuto, inverti lo stato del led, quindi ho corretto in questo modo:</p>
<p>while(1)<br />
    {</p>
<p>    // controllo pulsante 2<br />
   if (BTN2) // se pulsante 2 premuto<br />
	{<br />
	DelayMs(100); // antirimbalzo</p>
<p>	        {<br />
	        LED2=LED2^1; // inverto lo stato del led<br />
		}<br />
	}<br />
    }// Fine ciclo continuo</p>
<p>naturalmente l&#8217;ho cancellato anche nella riga 13 altrimenti non funzionava..</p>
<p>Non so sinceramente se questo fatto possa dipendere dal tipo di PICmicro utilizzato, quindi chiedo cortesemente delucidazioni in merito visto che sono un nuovissimo entrato nella programmazione di PICmicro.</p>
<p>Grazie del tuo splendido lavoro e del tempo dedicatomi, un saluto!!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-di-programmazione-picmicro-in-c-lezione-6-collegamento-di-pulsanti-pilotare-un-led-in-on-off/comment-page-1/#comment-3675</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Sat, 30 Jan 2010 13:42:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-3675</guid>
		<description>Ciao e Grazie.
In realtà ciò che dici dovrebbe essere corretto: dipende dalle istruzioni generate e quindi dalla velocità con cui si cambia lo stato. Difatti sui pic18 per controllare le porte, oltre ai registri TRIS e PORT hanno introdotto un terzo registro chiamato LAT che è direttamente connesso al latch che controlla lo stato della porta fisica. In realtà i registri LAT e PORT dovrebbero svolgere la stessa, identica, funzione ma operano a livelli diversi: può difatti succedere che impostiamo un pin a livello alto ma in realtà il circuito esterno, a causa di problemi, potrebbe non permettere questo per cui il pin rimane basso e quindi avremo che per quel pin i registri PORT e LAT porteranno due valori discordanti. Il cambiare stato del pin con un&#039;istruzione o con l&#039;altra potrebbe portare a questo tipo di problemi. Sarebbe interessante verificare con un&#039;oscilloscopio quello che succede.</description>
		<content:encoded><![CDATA[<p>Ciao e Grazie.<br />
In realtà ciò che dici dovrebbe essere corretto: dipende dalle istruzioni generate e quindi dalla velocità con cui si cambia lo stato. Difatti sui pic18 per controllare le porte, oltre ai registri TRIS e PORT hanno introdotto un terzo registro chiamato LAT che è direttamente connesso al latch che controlla lo stato della porta fisica. In realtà i registri LAT e PORT dovrebbero svolgere la stessa, identica, funzione ma operano a livelli diversi: può difatti succedere che impostiamo un pin a livello alto ma in realtà il circuito esterno, a causa di problemi, potrebbe non permettere questo per cui il pin rimane basso e quindi avremo che per quel pin i registri PORT e LAT porteranno due valori discordanti. Il cambiare stato del pin con un&#8217;istruzione o con l&#8217;altra potrebbe portare a questo tipo di problemi. Sarebbe interessante verificare con un&#8217;oscilloscopio quello che succede.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: merloindiano</title>
		<link>http://www.settorezero.com/wordpress/corso-di-programmazione-picmicro-in-c-lezione-6-collegamento-di-pulsanti-pilotare-un-led-in-on-off/comment-page-1/#comment-3673</link>
		<dc:creator>merloindiano</dc:creator>
		<pubDate>Sat, 30 Jan 2010 11:23:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-3673</guid>
		<description>ciao giovanni!

grazie per quello che stai facendo.

dopo qualche tempo che leggo a destra e sinistra grazie alla tua guida mi è tornata la volgia di programmare in c anziche in assembler.
io non sono un esperto, ma credo di avere un idea sul perche l&#039;inversione del bit del buzzer non funzioni. (vedi commento 13)
volendo provare un pwm multicanale via software non riuscivo ad accendere in ASM più di un led alla volta (stavo usando la scheda inclusa nel pickit2) fintanto che un forum mi ha detto di prestare attenzione al fatto che se setto un solo bit alla volta come facevo io il micro legge lo stato della porta, lo modifica e lo ripropone in uscita. se il carico è relativamente alto o il tempo è molto piccolo potrebbe succedere che anche se avevo appena portato a 1 l&#039;uscita il sistema legga 0 per cui le istruzioni di bit set e bit clear non funzionavano. il problema si è risolto impostando tutta la porta in un solo colpo. Potrebbe essere che invertire un bit invece BUZ1=BUZ1^1 invece che assegnargli un valore con BUZ1=1 generi due codici diversi e nel primo caso si presenta il problema.
la mia è solo un&#039;ipotesi da verificare ma sono curioso di provare entrambe le situazioni e magari di provare a mettere tra il buzzer e il piedino di uscita qualcosa (come una porta o altro) per vedere che cosa succede.

grazie di nuovo per tutto! proseguo a studiare!

Mirco Ughi</description>
		<content:encoded><![CDATA[<p>ciao giovanni!</p>
<p>grazie per quello che stai facendo.</p>
<p>dopo qualche tempo che leggo a destra e sinistra grazie alla tua guida mi è tornata la volgia di programmare in c anziche in assembler.<br />
io non sono un esperto, ma credo di avere un idea sul perche l&#8217;inversione del bit del buzzer non funzioni. (vedi commento 13)<br />
volendo provare un pwm multicanale via software non riuscivo ad accendere in ASM più di un led alla volta (stavo usando la scheda inclusa nel pickit2) fintanto che un forum mi ha detto di prestare attenzione al fatto che se setto un solo bit alla volta come facevo io il micro legge lo stato della porta, lo modifica e lo ripropone in uscita. se il carico è relativamente alto o il tempo è molto piccolo potrebbe succedere che anche se avevo appena portato a 1 l&#8217;uscita il sistema legga 0 per cui le istruzioni di bit set e bit clear non funzionavano. il problema si è risolto impostando tutta la porta in un solo colpo. Potrebbe essere che invertire un bit invece BUZ1=BUZ1^1 invece che assegnargli un valore con BUZ1=1 generi due codici diversi e nel primo caso si presenta il problema.<br />
la mia è solo un&#8217;ipotesi da verificare ma sono curioso di provare entrambe le situazioni e magari di provare a mettere tra il buzzer e il piedino di uscita qualcosa (come una porta o altro) per vedere che cosa succede.</p>
<p>grazie di nuovo per tutto! proseguo a studiare!</p>
<p>Mirco Ughi</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-di-programmazione-picmicro-in-c-lezione-6-collegamento-di-pulsanti-pilotare-un-led-in-on-off/comment-page-1/#comment-1737</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Thu, 22 Oct 2009 21:30:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-1737</guid>
		<description>Il C è tutta un&#039;altra storia, è molto potente e semplifica di molto la vita, tieni conto che in caso di &quot;emergenze&quot; puoi comunque includere porzioni di assembler nel codice utilizzando le direttive #asm #endasm.
L&#039;idea del comando di un motorino passo passo è interessante, forse ci faccio un pensiero. Non posso altro che consigliarti di dare un occhio all&#039;ottima spiegazione di Vincenzo Villa sui motori stepper:

http://www.vincenzov.net/tutorial/passopasso/stepper.htm

E quindi non può mancare una citazione al grande Sergio Fiocco, questa lezione sul comando di uno stepper da picmicro in C ti può essere molto ma mooolto utile:

http://www.fisertek.it/index_000013.html

Se fai esperimenti, facci sapere, può tornare utile a tutti e non si sa mai che lo inseriamo in un prossimo tutorial.</description>
		<content:encoded><![CDATA[<p>Il C è tutta un&#8217;altra storia, è molto potente e semplifica di molto la vita, tieni conto che in caso di &#8220;emergenze&#8221; puoi comunque includere porzioni di assembler nel codice utilizzando le direttive #asm #endasm.<br />
L&#8217;idea del comando di un motorino passo passo è interessante, forse ci faccio un pensiero. Non posso altro che consigliarti di dare un occhio all&#8217;ottima spiegazione di Vincenzo Villa sui motori stepper:</p>
<p><a href="http://www.vincenzov.net/tutorial/passopasso/stepper.htm" rel="nofollow">http://www.vincenzov.net/tutorial/passopasso/stepper.htm</a></p>
<p>E quindi non può mancare una citazione al grande Sergio Fiocco, questa lezione sul comando di uno stepper da picmicro in C ti può essere molto ma mooolto utile:</p>
<p><a href="http://www.fisertek.it/index_000013.html" rel="nofollow">http://www.fisertek.it/index_000013.html</a></p>
<p>Se fai esperimenti, facci sapere, può tornare utile a tutti e non si sa mai che lo inseriamo in un prossimo tutorial.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: S.D.R.</title>
		<link>http://www.settorezero.com/wordpress/corso-di-programmazione-picmicro-in-c-lezione-6-collegamento-di-pulsanti-pilotare-un-led-in-on-off/comment-page-1/#comment-1734</link>
		<dc:creator>S.D.R.</dc:creator>
		<pubDate>Thu, 22 Oct 2009 19:08:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-1734</guid>
		<description>Ciao , ora funziona bene .
Allora , ho provato a mettere void suona(void) prima del void main(void) e il ciclo for l&#039;ho lasciato dopo la chiusura della main (modificandolo) come hai detto tu , non so , forse ho capito male quello che hai scritto , perchè non funzionava .

Allora ho messo proprio tutto il ciclo for prima del void main(void) e così funziona però quando davo alimentazione al micro il cicalino rimaneva alimentato fino alla pressione di uno dei due tasti , quindi dopo aver suonato non rimaneva più alimentato e funzionava correttamente .
Allora ho pensato di settare dal file settings.h BUZ1=0 (all&#039;avvio) e così ho risolto il problema .
Però ho fatto di più , ho messo tutto il ciclo for dentro al file settings.h e la cosa ha funzionato .
Devo dire che l&#039;ANSI C è tutto un altro mondo, ti semplifica moltissimo la vita , tempo fa avevo tentato a fare qualcosa con l&#039;ASSEMBLER ma non ho avuto ottimi risultati poi ho scoperto il VISUAL PARSIC  altro bellissimo programmino ,ma ha le sue limitazioni perchè sono anni che non lo aggiornano .

Il prossimo esperimento che voglio fare è quello di comandare un motorino passo passo , con 3 pulsanti ,AVANTI , STOP, INDIETRO .
Pilotare il motorino non credo sia difficile è come accendere in sequenza 4 led , però è il caso di mettere un ULN2003 perchè il pic non credo che riesca a alimentare il motorino , la cosa difficile sarà la logica dei tasti .

Grazie per l&#039;aiuto .</description>
		<content:encoded><![CDATA[<p>Ciao , ora funziona bene .<br />
Allora , ho provato a mettere void suona(void) prima del void main(void) e il ciclo for l&#8217;ho lasciato dopo la chiusura della main (modificandolo) come hai detto tu , non so , forse ho capito male quello che hai scritto , perchè non funzionava .</p>
<p>Allora ho messo proprio tutto il ciclo for prima del void main(void) e così funziona però quando davo alimentazione al micro il cicalino rimaneva alimentato fino alla pressione di uno dei due tasti , quindi dopo aver suonato non rimaneva più alimentato e funzionava correttamente .<br />
Allora ho pensato di settare dal file settings.h BUZ1=0 (all&#8217;avvio) e così ho risolto il problema .<br />
Però ho fatto di più , ho messo tutto il ciclo for dentro al file settings.h e la cosa ha funzionato .<br />
Devo dire che l&#8217;ANSI C è tutto un altro mondo, ti semplifica moltissimo la vita , tempo fa avevo tentato a fare qualcosa con l&#8217;ASSEMBLER ma non ho avuto ottimi risultati poi ho scoperto il VISUAL PARSIC  altro bellissimo programmino ,ma ha le sue limitazioni perchè sono anni che non lo aggiornano .</p>
<p>Il prossimo esperimento che voglio fare è quello di comandare un motorino passo passo , con 3 pulsanti ,AVANTI , STOP, INDIETRO .<br />
Pilotare il motorino non credo sia difficile è come accendere in sequenza 4 led , però è il caso di mettere un ULN2003 perchè il pic non credo che riesca a alimentare il motorino , la cosa difficile sarà la logica dei tasti .</p>
<p>Grazie per l&#8217;aiuto .</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-di-programmazione-picmicro-in-c-lezione-6-collegamento-di-pulsanti-pilotare-un-led-in-on-off/comment-page-1/#comment-1732</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Thu, 22 Oct 2009 18:34:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-1732</guid>
		<description>Se non erro, nel C18 per identificare le porte si utilizza una cosa del genere:

PORTAbits.RA1 = 1;

Cioè spefichi prima (PORTXbits) (dove X è la lettera del banco porte che interessa), seguito dal punto e quindi dalla singola porta, per i C18 non puoi assolutamente includere i file headers dei C16.

Purtroppo non so dirti di più dal momento che il C18 non ho ancora iniziato a provarlo. Sul sito di Mauro Laurenti puoi trovare un ottimo tutorial in pdf sul C18:

http://www.laurtec.com/Italiano/Tutorial/C18%20step%20by%20step/Tutorial.html

E&#039; fatto molto bene e spiega passo passo come installare e compilare, leggilo per bene e sono sicuro che poi ti funzionerà tutto.</description>
		<content:encoded><![CDATA[<p>Se non erro, nel C18 per identificare le porte si utilizza una cosa del genere:</p>
<p>PORTAbits.RA1 = 1;</p>
<p>Cioè spefichi prima (PORTXbits) (dove X è la lettera del banco porte che interessa), seguito dal punto e quindi dalla singola porta, per i C18 non puoi assolutamente includere i file headers dei C16.</p>
<p>Purtroppo non so dirti di più dal momento che il C18 non ho ancora iniziato a provarlo. Sul sito di Mauro Laurenti puoi trovare un ottimo tutorial in pdf sul C18:</p>
<p><a href="http://www.laurtec.com/Italiano/Tutorial/C18%20step%20by%20step/Tutorial.html" rel="nofollow">http://www.laurtec.com/Italiano/Tutorial/C18%20step%20by%20step/Tutorial.html</a></p>
<p>E&#8217; fatto molto bene e spiega passo passo come installare e compilare, leggilo per bene e sono sicuro che poi ti funzionerà tutto.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Antonio</title>
		<link>http://www.settorezero.com/wordpress/corso-di-programmazione-picmicro-in-c-lezione-6-collegamento-di-pulsanti-pilotare-un-led-in-on-off/comment-page-1/#comment-1731</link>
		<dc:creator>Antonio</dc:creator>
		<pubDate>Thu, 22 Oct 2009 14:22:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-1731</guid>
		<description>Ciao, ho provato ad installare High Tech nella versione lite e ad utilizzare un pic 16f677; lì ho trovato &quot;pic.h&quot; e l&#039;ho inserito con include nel programma, provo a compilare e mi dà questi errori:
Error   [192] C:\Users\Antonio\Desktop\Corso microchip Milano\prova high tech C compiler\settings.h; 11.1 undefined identifier &quot;TRISD&quot;
Error   [192] C:\Users\Antonio\Desktop\Corso microchip Milano\prova high tech C compiler\settings.h; 12.1 undefined identifier &quot;TRISE&quot;
Error   [192] C:\Users\Antonio\Desktop\Corso microchip Milano\prova high tech C compiler\settings.h; 15.1 undefined identifier &quot;RD2&quot;
Error   [192] C:\Users\Antonio\Desktop\Corso microchip Milano\prova high tech C compiler\settings.h; 16.1 undefined identifier &quot;RD3&quot;
Warning [361] C:\Users\Antonio\Desktop\Corso microchip Milano\prova high tech C compiler\main.c; 9.1 function declared implicit int
Error   [192] C:\Users\Antonio\Desktop\Corso microchip Milano\prova high tech C compiler\main.c; 13.6 undefined identifier &quot;RD0&quot;
Error   [192] C:\Users\Antonio\Desktop\Corso microchip Milano\prova high tech C compiler\main.c; 18.1 undefined identifier &quot;RD2&quot;
Error   [192] C:\Users\Antonio\Desktop\Corso microchip Milano\prova high tech C compiler\main.c; 23.1 undefined identifier &quot;RD2&quot;
Error   [192] C:\Users\Antonio\Desktop\Corso microchip Milano\prova high tech C compiler\main.c; 27.6 undefined identifier &quot;RD1&quot;
Error   [192] C:\Users\Antonio\Desktop\Corso microchip Milano\prova high tech C compiler\main.c; 32.1 undefined identifier &quot;RD3&quot;

Perchè tutto ciò?

Grazie in anticipo</description>
		<content:encoded><![CDATA[<p>Ciao, ho provato ad installare High Tech nella versione lite e ad utilizzare un pic 16f677; lì ho trovato &#8220;pic.h&#8221; e l&#8217;ho inserito con include nel programma, provo a compilare e mi dà questi errori:<br />
Error   [192] C:\Users\Antonio\Desktop\Corso microchip Milano\prova high tech C compiler\settings.h; 11.1 undefined identifier &#8220;TRISD&#8221;<br />
Error   [192] C:\Users\Antonio\Desktop\Corso microchip Milano\prova high tech C compiler\settings.h; 12.1 undefined identifier &#8220;TRISE&#8221;<br />
Error   [192] C:\Users\Antonio\Desktop\Corso microchip Milano\prova high tech C compiler\settings.h; 15.1 undefined identifier &#8220;RD2&#8243;<br />
Error   [192] C:\Users\Antonio\Desktop\Corso microchip Milano\prova high tech C compiler\settings.h; 16.1 undefined identifier &#8220;RD3&#8243;<br />
Warning [361] C:\Users\Antonio\Desktop\Corso microchip Milano\prova high tech C compiler\main.c; 9.1 function declared implicit int<br />
Error   [192] C:\Users\Antonio\Desktop\Corso microchip Milano\prova high tech C compiler\main.c; 13.6 undefined identifier &#8220;RD0&#8243;<br />
Error   [192] C:\Users\Antonio\Desktop\Corso microchip Milano\prova high tech C compiler\main.c; 18.1 undefined identifier &#8220;RD2&#8243;<br />
Error   [192] C:\Users\Antonio\Desktop\Corso microchip Milano\prova high tech C compiler\main.c; 23.1 undefined identifier &#8220;RD2&#8243;<br />
Error   [192] C:\Users\Antonio\Desktop\Corso microchip Milano\prova high tech C compiler\main.c; 27.6 undefined identifier &#8220;RD1&#8243;<br />
Error   [192] C:\Users\Antonio\Desktop\Corso microchip Milano\prova high tech C compiler\main.c; 32.1 undefined identifier &#8220;RD3&#8243;</p>
<p>Perchè tutto ciò?</p>
<p>Grazie in anticipo</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Antonio</title>
		<link>http://www.settorezero.com/wordpress/corso-di-programmazione-picmicro-in-c-lezione-6-collegamento-di-pulsanti-pilotare-un-led-in-on-off/comment-page-1/#comment-1728</link>
		<dc:creator>Antonio</dc:creator>
		<pubDate>Thu, 22 Oct 2009 11:38:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-1728</guid>
		<description>era...

#include -p18f452.h- (evito minore/maggiore sennò nn si vedono)

oppure 

#include -pic.h-</description>
		<content:encoded><![CDATA[<p>era&#8230;</p>
<p>#include -p18f452.h- (evito minore/maggiore sennò nn si vedono)</p>
<p>oppure </p>
<p>#include -pic.h-</p>
]]></content:encoded>
	</item>
</channel>
</rss>
