<?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>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: Dany</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-13542</link>
		<dc:creator>Dany</dc:creator>
		<pubDate>Sun, 20 Nov 2011 17:10:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-13542</guid>
		<description>Ciao, che tecnica mi consigli di adottare per evitare il rimbalzo in un progetto che prevede 25 tasti ognuno dei quali collegati ad un ingresso del pic? Il livello logico dei tasti viene letto in sequenza ed il risultato vado a scriverlo nel buffer dell&#039;usb per darlo &quot;in pasto&quot; al pc.  Sto utilizzando un 18F4550...eviterei l&#039;immissione di un ritardo software perchè 100ms a tasto vorrebbe dire perdere 2,5 secondi...come mi consigli di procedere??

Ciao e grazie!!!
PS: complimenti per il sito ;)</description>
		<content:encoded><![CDATA[<p>Ciao, che tecnica mi consigli di adottare per evitare il rimbalzo in un progetto che prevede 25 tasti ognuno dei quali collegati ad un ingresso del pic? Il livello logico dei tasti viene letto in sequenza ed il risultato vado a scriverlo nel buffer dell&#8217;usb per darlo &#8220;in pasto&#8221; al pc.  Sto utilizzando un 18F4550&#8230;eviterei l&#8217;immissione di un ritardo software perchè 100ms a tasto vorrebbe dire perdere 2,5 secondi&#8230;come mi consigli di procedere??</p>
<p>Ciao e grazie!!!<br />
PS: complimenti per il sito ;)</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-12799</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Sat, 22 Oct 2011 16:51:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-12799</guid>
		<description>Mi hai dato tante di quelle informazioni che non saprei da dove cominciare.</description>
		<content:encoded><![CDATA[<p>Mi hai dato tante di quelle informazioni che non saprei da dove cominciare.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: lublink</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-12797</link>
		<dc:creator>lublink</dc:creator>
		<pubDate>Sat, 22 Oct 2011 16:39:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-12797</guid>
		<description>Ciao sono sempre io dopo mesi ho ripreso il progetto e ho ricreato tutto il circuito e bum...non funziona nulla! Ho provato ad usare il mio file ed il tuo ma non vanno. Ti chiedo aiuto. Grazie!</description>
		<content:encoded><![CDATA[<p>Ciao sono sempre io dopo mesi ho ripreso il progetto e ho ricreato tutto il circuito e bum&#8230;non funziona nulla! Ho provato ad usare il mio file ed il tuo ma non vanno. Ti chiedo aiuto. Grazie!</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-11044</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Tue, 29 Mar 2011 19:30:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-11044</guid>
		<description>Io dicevo la licenza di caccia</description>
		<content:encoded><![CDATA[<p>Io dicevo la licenza di caccia</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: lublink</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-11043</link>
		<dc:creator>lublink</dc:creator>
		<pubDate>Tue, 29 Mar 2011 19:15:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-11043</guid>
		<description>E&#039; un&#039;alimentatore originale della sony per le telecamere a 5 V. Nuovo mai usato quindi è anche stabilizzato!</description>
		<content:encoded><![CDATA[<p>E&#8217; un&#8217;alimentatore originale della sony per le telecamere a 5 V. Nuovo mai usato quindi è anche stabilizzato!</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-11042</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Tue, 29 Mar 2011 17:33:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-11042</guid>
		<description>L&#039;alimentatore ce l&#039;ha la licenza?</description>
		<content:encoded><![CDATA[<p>L&#8217;alimentatore ce l&#8217;ha la licenza?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: lublink</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-11041</link>
		<dc:creator>lublink</dc:creator>
		<pubDate>Tue, 29 Mar 2011 16:54:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-11041</guid>
		<description>Ok allora provero a spostare il circuito perchè la +5V arriva da tutte le parti e semprerebbe un problema della massa ma non si capisce!Cmq l&#039;alimentatore caccia 5,4V!!!Cmq appena effettuata la prova le faccio sapere il risultato...cmq ti ringrazio ancora...sempre gentilissimo!!!</description>
		<content:encoded><![CDATA[<p>Ok allora provero a spostare il circuito perchè la +5V arriva da tutte le parti e semprerebbe un problema della massa ma non si capisce!Cmq l&#8217;alimentatore caccia 5,4V!!!Cmq appena effettuata la prova le faccio sapere il risultato&#8230;cmq ti ringrazio ancora&#8230;sempre gentilissimo!!!</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-11040</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Tue, 29 Mar 2011 16:23:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-11040</guid>
		<description>Ricontrolla i collegamenti, soprattutto se la +5V arriva in tutti i punti indicati dallo schema. Se usi la breadboard controlla con un tester che la 5V arrivi. Controlla che l&#039;alimentatore che usi fornisca 5V se non usi un regolatore di tensione, se usi un regolatore di tensione 7805 allora l&#039;alimentatore deve fornire minimo 7V. 
Se il circuito l&#039;hai realizzato correttamente, la 5V arriva da tutte le parti e tieni collegato soltanto il pickit e spunti la casella per fornire alimentazione, deve funzionare tutto. Se sei sicuro di aver collegato tutto bene allora sposta il circuito in un&#039;altra zona della breadboard.</description>
		<content:encoded><![CDATA[<p>Ricontrolla i collegamenti, soprattutto se la +5V arriva in tutti i punti indicati dallo schema. Se usi la breadboard controlla con un tester che la 5V arrivi. Controlla che l&#8217;alimentatore che usi fornisca 5V se non usi un regolatore di tensione, se usi un regolatore di tensione 7805 allora l&#8217;alimentatore deve fornire minimo 7V.<br />
Se il circuito l&#8217;hai realizzato correttamente, la 5V arriva da tutte le parti e tieni collegato soltanto il pickit e spunti la casella per fornire alimentazione, deve funzionare tutto. Se sei sicuro di aver collegato tutto bene allora sposta il circuito in un&#8217;altra zona della breadboard.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: lublink</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-11039</link>
		<dc:creator>lublink</dc:creator>
		<pubDate>Tue, 29 Mar 2011 16:16:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-11039</guid>
		<description>lo zoccolo nel senso che lo collego al pic e all&#039;alimentazione!!!cioe i pin 1,2,3,4,5 collegati come da schema sopra riportato! Grazie!</description>
		<content:encoded><![CDATA[<p>lo zoccolo nel senso che lo collego al pic e all&#8217;alimentazione!!!cioe i pin 1,2,3,4,5 collegati come da schema sopra riportato! Grazie!</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-11038</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Tue, 29 Mar 2011 16:06:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-11038</guid>
		<description>Colleghi il pickit a quale zoccolo?</description>
		<content:encoded><![CDATA[<p>Colleghi il pickit a quale zoccolo?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: lublink</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-11037</link>
		<dc:creator>lublink</dc:creator>
		<pubDate>Tue, 29 Mar 2011 15:57:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-11037</guid>
		<description>Ho un problema!Quando programmo e ho collegato il pickit2 allo zoccolo e do l&#039;alimentazione esterna tutto va bene ma se alimento solo con il pickit2 o solo con l&#039;alimentatore esterno e scollego il pickit2 non mi parte niente!Ti chiedo aiuto....grazie!!!</description>
		<content:encoded><![CDATA[<p>Ho un problema!Quando programmo e ho collegato il pickit2 allo zoccolo e do l&#8217;alimentazione esterna tutto va bene ma se alimento solo con il pickit2 o solo con l&#8217;alimentatore esterno e scollego il pickit2 non mi parte niente!Ti chiedo aiuto&#8230;.grazie!!!</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-10633</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Tue, 08 Mar 2011 17:51:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-10633</guid>
		<description>certamente</description>
		<content:encoded><![CDATA[<p>certamente</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Video Lab</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-10625</link>
		<dc:creator>Video Lab</dc:creator>
		<pubDate>Tue, 08 Mar 2011 16:15:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-10625</guid>
		<description>Ciao Giovanni vorrei sapere se si può utilizzare la seguente istruzione:
if(!BT1 &amp;&amp; !BT2)
{ DelayMs(100);
if(!BT1 &amp;&amp; !BT2)
{ .......
Io vorrei fare in modo che una certa parte di programma venga fatta solo se sono premuti entrambi i tasti.
Ciao e grazie
Nino</description>
		<content:encoded><![CDATA[<p>Ciao Giovanni vorrei sapere se si può utilizzare la seguente istruzione:<br />
if(!BT1 &amp;&amp; !BT2)<br />
{ DelayMs(100);<br />
if(!BT1 &amp;&amp; !BT2)<br />
{ &#8230;&#8230;.<br />
Io vorrei fare in modo che una certa parte di programma venga fatta solo se sono premuti entrambi i tasti.<br />
Ciao e grazie<br />
Nino</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-10477</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Mon, 28 Feb 2011 22:59:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-10477</guid>
		<description>Bravo! Così vi voglio! :D</description>
		<content:encoded><![CDATA[<p>Bravo! Così vi voglio! :D</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: stardust72</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-10475</link>
		<dc:creator>stardust72</dc:creator>
		<pubDate>Mon, 28 Feb 2011 22:53:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-10475</guid>
		<description>Infatti, nellla parte da te citata, ho inserito un flag che fino a che non si rilascia il pulsante non si resetta (viene settata nel momento in cui il pulsante viene premuto) impedendo di fatto il lampeggio

void main(void)
 {
int start=0;
LED2=0;
 while(1)
    {
    
   if ((!BTN2)&amp;&amp;(start==0)) // se pulsante 2 premuto e flag zero (quindi rilasciato o mai premuto
	{
	DelayMs(100); // antirimbalzo
	if (!BTN2)
	        {
	        LED2=LED2^1; // inverto lo stato del led
                start=1; //setta il flag per indicare che ho il dito sul pulsante
		}
	}
   if (BTN2) //Se pulsante 2 rilasciato
        {
        start=0;//azzero il flag
        }

    }// Fine ciclo continuo
 } // Fine main

Ciaooo</description>
		<content:encoded><![CDATA[<p>Infatti, nellla parte da te citata, ho inserito un flag che fino a che non si rilascia il pulsante non si resetta (viene settata nel momento in cui il pulsante viene premuto) impedendo di fatto il lampeggio</p>
<p>void main(void)<br />
 {<br />
int start=0;<br />
LED2=0;<br />
 while(1)<br />
    {</p>
<p>   if ((!BTN2)&amp;&amp;(start==0)) // se pulsante 2 premuto e flag zero (quindi rilasciato o mai premuto<br />
	{<br />
	DelayMs(100); // antirimbalzo<br />
	if (!BTN2)<br />
	        {<br />
	        LED2=LED2^1; // inverto lo stato del led<br />
                start=1; //setta il flag per indicare che ho il dito sul pulsante<br />
		}<br />
	}<br />
   if (BTN2) //Se pulsante 2 rilasciato<br />
        {<br />
        start=0;//azzero il flag<br />
        }</p>
<p>    }// Fine ciclo continuo<br />
 } // Fine main</p>
<p>Ciaooo</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Engmecc</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-9643</link>
		<dc:creator>Engmecc</dc:creator>
		<pubDate>Fri, 21 Jan 2011 11:41:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-9643</guid>
		<description>chiedo scusa ma ho fatto un errore copia/incolla.
il codice (completo) in set.h è :

#define LED1 RB1
#define LED2 RC2
#define LED3 RB0
#define ON	 1
#define OFF	 0
#define BTN1 RB2
#define BTN2 RC0

void settings (void)
{
OPTION = 0b10000101;
INTCON = 0b10010000;
TRISA = 0b00000000;
TRISB = 0b00000100;
TRISC = 0b10000001;
PORTB = 0;
PORTC = 0;
PORTA = 0;
}</description>
		<content:encoded><![CDATA[<p>chiedo scusa ma ho fatto un errore copia/incolla.<br />
il codice (completo) in set.h è :</p>
<p>#define LED1 RB1<br />
#define LED2 RC2<br />
#define LED3 RB0<br />
#define ON	 1<br />
#define OFF	 0<br />
#define BTN1 RB2<br />
#define BTN2 RC0</p>
<p>void settings (void)<br />
{<br />
OPTION = 0b10000101;<br />
INTCON = 0b10010000;<br />
TRISA = 0b00000000;<br />
TRISB = 0b00000100;<br />
TRISC = 0b10000001;<br />
PORTB = 0;<br />
PORTC = 0;<br />
PORTA = 0;<br />
}</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Engmecc</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-9642</link>
		<dc:creator>Engmecc</dc:creator>
		<pubDate>Fri, 21 Jan 2011 11:39:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-9642</guid>
		<description>Salve e complimenti per l&#039; ottimo lavoro che state facendo (i corsi sono formidabili !!).
mi succede (guarda caso) una cosa un pò beffarda :
ho 2 pulsanti e due led &quot;in generale&quot; finzionanti. La stranezza sta nel fatto che se collego entrambi i pulsanti alle porte B premendo uno dei bottoni accendo i led e premendo l&#039;altro li spengo. Se modifico il codice in modo che  uno pulsanti sia connesso a una porta C l&#039;accensione funziona normalmente mentre lo spegnimento diventa intermittenza (solo se tengo premuto il bottone).
Posto ovviamente il codice :

il codice qui sotto è contenuto nel file set.h

#define OFF	 0
#define BTN1 RB2
#define BTN2 RC0

void settings (void)
{
OPTION = 0b10000101;
INTCON = 0b10010000;
TRISA = 0b00000000;
TRISB = 0b00000100;
TRISC = 0b10000001;
PORTB = 0;
PORTC = 0;
PORTA = 0;
}

il codice qui sotto è contenuto in Leds_ON.h (esiste l&#039;equivalente Leds_OFF.h)

void leds_on(void)
{	
	LED1 = ON;
	LED2 = ON;
	LED3 = ON;
}

il codice qui sotto è contenuto nel file (.c) principale che contiene il main

#define  XTAL_FREQ 20MHZ // questo è utilizzato dalle routine di ritardo contenute in Delay.C
#include  // contiene i nomi mnemonici di registri e porte
#include &quot;delay.c&quot; // routine per ritardi
#include &quot;set.h&quot;
#include &quot;Leds_ON.h&quot;
#include &quot;Leds_OFF.h&quot;

// Fuses di configurazione
__CONFIG (HS &amp; WDTDIS &amp; PWRTEN &amp; BORDIS &amp; LVPDIS &amp; DUNPROT &amp; WRTEN &amp; DEBUGDIS &amp; UNPROTECT);

void main (void)
{
	settings();
	while(1)
	{
		if(!BTN2)
		{
			DelayMs(100);
			if(!BTN2)
			{
				leds_on();
				//RBIF = 0;
			}
		}
		if(!BTN1)
		{
			DelayMs(100);
			if(!BTN1)
			{
				leds_off();
				//RBIF = 1;
			}
		}
	}
}

come si vede ho provato ad usare il flag di interrupt su RB ma nulla cambia.
Grazie !</description>
		<content:encoded><![CDATA[<p>Salve e complimenti per l&#8217; ottimo lavoro che state facendo (i corsi sono formidabili !!).<br />
mi succede (guarda caso) una cosa un pò beffarda :<br />
ho 2 pulsanti e due led &#8220;in generale&#8221; finzionanti. La stranezza sta nel fatto che se collego entrambi i pulsanti alle porte B premendo uno dei bottoni accendo i led e premendo l&#8217;altro li spengo. Se modifico il codice in modo che  uno pulsanti sia connesso a una porta C l&#8217;accensione funziona normalmente mentre lo spegnimento diventa intermittenza (solo se tengo premuto il bottone).<br />
Posto ovviamente il codice :</p>
<p>il codice qui sotto è contenuto nel file set.h</p>
<p>#define OFF	 0<br />
#define BTN1 RB2<br />
#define BTN2 RC0</p>
<p>void settings (void)<br />
{<br />
OPTION = 0b10000101;<br />
INTCON = 0b10010000;<br />
TRISA = 0b00000000;<br />
TRISB = 0b00000100;<br />
TRISC = 0b10000001;<br />
PORTB = 0;<br />
PORTC = 0;<br />
PORTA = 0;<br />
}</p>
<p>il codice qui sotto è contenuto in Leds_ON.h (esiste l&#8217;equivalente Leds_OFF.h)</p>
<p>void leds_on(void)<br />
{<br />
	LED1 = ON;<br />
	LED2 = ON;<br />
	LED3 = ON;<br />
}</p>
<p>il codice qui sotto è contenuto nel file (.c) principale che contiene il main</p>
<p>#define  XTAL_FREQ 20MHZ // questo è utilizzato dalle routine di ritardo contenute in Delay.C<br />
#include  // contiene i nomi mnemonici di registri e porte<br />
#include &#8220;delay.c&#8221; // routine per ritardi<br />
#include &#8220;set.h&#8221;<br />
#include &#8220;Leds_ON.h&#8221;<br />
#include &#8220;Leds_OFF.h&#8221;</p>
<p>// Fuses di configurazione<br />
__CONFIG (HS &amp; WDTDIS &amp; PWRTEN &amp; BORDIS &amp; LVPDIS &amp; DUNPROT &amp; WRTEN &amp; DEBUGDIS &amp; UNPROTECT);</p>
<p>void main (void)<br />
{<br />
	settings();<br />
	while(1)<br />
	{<br />
		if(!BTN2)<br />
		{<br />
			DelayMs(100);<br />
			if(!BTN2)<br />
			{<br />
				leds_on();<br />
				//RBIF = 0;<br />
			}<br />
		}<br />
		if(!BTN1)<br />
		{<br />
			DelayMs(100);<br />
			if(!BTN1)<br />
			{<br />
				leds_off();<br />
				//RBIF = 1;<br />
			}<br />
		}<br />
	}<br />
}</p>
<p>come si vede ho provato ad usare il flag di interrupt su RB ma nulla cambia.<br />
Grazie !</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-9163</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Thu, 06 Jan 2011 08:34:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-9163</guid>
		<description>Ciao,
come soluzione è ok, bravo.</description>
		<content:encoded><![CDATA[<p>Ciao,<br />
come soluzione è ok, bravo.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Madnov</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-9151</link>
		<dc:creator>Madnov</dc:creator>
		<pubDate>Wed, 05 Jan 2011 22:33:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-9151</guid>
		<description>Ciao volevo farti i complimenti per la guida, è fatta molto bene, e dimostri di avere molta cura e pazienza in quello che fai.
Sono arrivato alla sesta lezione, e anch&#039; io mi sono accorto  che il led2 lampeggia se si tiene premuto il pulsante 2 (va bene ).
Io però mi sono posto il problema se si vuole realizare una accenzione del led2 simulando un relè passo passo (prima di cimentarmi in questo non avevo letto il commento di Luca (numero #27) che in poche righe ha risolto il problema),
quindi con la mia conoscenza dei pic e del linguaggio C raggiunto fine in questa lezione ho sviluppato una mia soluzione che risolve anche piccolo unproblema trovato nella soluzione di Luca.
Mi spiego: quando si preme e si tiene premuto il pulsante 2 si  blocca il funzionamento del led2 (premessa il programma realizato da luca va bene, bisogna solo capire le esigenza di applicazione che un o ha).
La mia soluzione: (

#define  XTAL_FREQ 20MHZ // questo è utilizzato dalle routine di ritardo contenute in Delay.C
#include  // contiene i nomi mnemonici di registri e porte
__CONFIG (HS &amp; WDTDIS &amp; PWRTEN &amp; BORDIS &amp; LVPDIS &amp; DUNPROT &amp; WRTEN &amp; DEBUGDIS &amp; UNPROTECT);
#include &quot;delay.c&quot; // routine per ritardi
#include &quot;settings.h&quot; // settaggi del picmicro

void main(void)
	{
	settings(); // eseguo la funzione settings contenuta nel file header settings.h, così imposto le porte e i registri
	
	while(1)
        {
		// controllo pulsante 1
		if (!PUL1) // se pulsante1 premuto (quando è premuto, porta il pin allo stato logico basso)
			{
			DelayMs(10); // ritardo per antirimbalzo
			if (!PUL1) // se dopo 100ms il pulsante è ancora premuto, non si tratta di un rimbalzo
				{
				LED1=1; // accendo led 1
				}
			}
		else
			{
			LED1=0; // se pulsante 1 non premuto, spengo led 1
			}
		
// controllo pulsante 2 ( ACCENSIONE PASSO PASSO LED2 )

/*
if (!PUL2)
{
DelayMs(10); //ANTIRIMBALZO
if (!PUL2)
{
LED2=LED2^1;
do{ }while(!PUL2); //&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.
}
}
*/



if (PUL2==0) // se pulsante 2 premuto
{
DelayMs(10); // antirimbalzo
if (PUL2==0)
{
if (CUNTER==0) // FUNZIONE INSERITA PER OTTENERE L&#039; ACCENSIONE PASSO PASSO DEL LED2,
{              // SE NON INSERITA CAUSA IL NON RICONOSCIMENTO DELLO STATO LED2-PUL2.
LED2=1;
CUNTER++;
}  
}
}
if (PUL2==1) // se pulsante 2 RILASCIATO O A RIPOSO
{
DelayMs(10); // antirimbalzo
if (PUL2==1)
{
if (CUNTER==1)
{
CUNTER++;
}
}
}

if (PUL2==0) // se pulsante 2 premuto
{
DelayMs(10); // antirimbalzo
if (PUL2==0)
{
if (CUNTER==2)
{
LED2=0;
CUNTER++;
}  
}
}

if (PUL2==1) // se pulsante 2 RILASCIATO O A RIPOSO
{
DelayMs(10); // antirimbalzo
if (PUL2==1)
{
if (CUNTER==3)
{
CUNTER=0; // RESETTARE LA FUNZIONE PER POTER RENDERE CICLICO IL FUNZIONAMENTO.
}
}
}

	}// Fine ciclo continuo
	} // Fine main

Sarebbe la lezione 6 solo che aggiunto e cambiato qualche cosa. 
Inserisco il file settings.h per capirci un pò di più.

// Lezione 6
// www.settorezero.com
//
// modulo: settings.h
// autore: Bernardo Giovanni
// data: 28/09/09
// descrizione: configurazione del picmicro
//
//*************************************************

#define PUL1	RD0	// pulsante 1
#define PUL2	RD1	// pulsante 2
#define LED1	RD2	// led 1
#define LED2	RD3	// led 2


unsigned char CUNTER=0; //Char è un tipo di dato a 8 bit, quindi può arrivare a contenere valori fino a 255, a noi serve massimo 250, quindi va bene


void settings(void)
	{
	TRISA=0;			// Tutte output
	TRISB=0;
	TRISC=0;
	TRISD=0b00000011; 	// Le porte RD0 e RD1 devono essere input (1) perchè vi sono collegati i pulsanti, le altre output (0)
	TRISE=0;

	ADON=0; //per spegnere i convertitori a/d in maniera tale da non consumare corrente
        ADCON1=7; //per disattivare gli ingressi analogici

	// All&#039;avvio i 2 led devono essere spenti
	LED1=0;
	LED2=0;
	}

Naturalmente credo che ci siano soluzioni migliori della mia anche perchè risulta troppo laboriosa e grossa per fare accendere e spegnere solo un led.
Ringrazio in anticipo fatemi sapere.</description>
		<content:encoded><![CDATA[<p>Ciao volevo farti i complimenti per la guida, è fatta molto bene, e dimostri di avere molta cura e pazienza in quello che fai.<br />
Sono arrivato alla sesta lezione, e anch&#8217; io mi sono accorto  che il led2 lampeggia se si tiene premuto il pulsante 2 (va bene ).<br />
Io però mi sono posto il problema se si vuole realizare una accenzione del led2 simulando un relè passo passo (prima di cimentarmi in questo non avevo letto il commento di Luca (numero #27) che in poche righe ha risolto il problema),<br />
quindi con la mia conoscenza dei pic e del linguaggio C raggiunto fine in questa lezione ho sviluppato una mia soluzione che risolve anche piccolo unproblema trovato nella soluzione di Luca.<br />
Mi spiego: quando si preme e si tiene premuto il pulsante 2 si  blocca il funzionamento del led2 (premessa il programma realizato da luca va bene, bisogna solo capire le esigenza di applicazione che un o ha).<br />
La mia soluzione: (</p>
<p>#define  XTAL_FREQ 20MHZ // questo è utilizzato dalle routine di ritardo contenute in Delay.C<br />
#include  // contiene i nomi mnemonici di registri e porte<br />
__CONFIG (HS &amp; WDTDIS &amp; PWRTEN &amp; BORDIS &amp; LVPDIS &amp; DUNPROT &amp; WRTEN &amp; DEBUGDIS &amp; UNPROTECT);<br />
#include &#8220;delay.c&#8221; // routine per ritardi<br />
#include &#8220;settings.h&#8221; // settaggi del picmicro</p>
<p>void main(void)<br />
	{<br />
	settings(); // eseguo la funzione settings contenuta nel file header settings.h, così imposto le porte e i registri</p>
<p>	while(1)<br />
        {<br />
		// controllo pulsante 1<br />
		if (!PUL1) // se pulsante1 premuto (quando è premuto, porta il pin allo stato logico basso)<br />
			{<br />
			DelayMs(10); // ritardo per antirimbalzo<br />
			if (!PUL1) // se dopo 100ms il pulsante è ancora premuto, non si tratta di un rimbalzo<br />
				{<br />
				LED1=1; // accendo led 1<br />
				}<br />
			}<br />
		else<br />
			{<br />
			LED1=0; // se pulsante 1 non premuto, spengo led 1<br />
			}</p>
<p>// controllo pulsante 2 ( ACCENSIONE PASSO PASSO LED2 )</p>
<p>/*<br />
if (!PUL2)<br />
{<br />
DelayMs(10); //ANTIRIMBALZO<br />
if (!PUL2)<br />
{<br />
LED2=LED2^1;<br />
do{ }while(!PUL2); //&lt;—finchè il tasto rimane premuto si resta intrappolati in un ciclo vuoto, appena si solleva il dito il programma continua.<br />
                     //Non ho provato ma un while è equivalente.<br />
}<br />
}<br />
*/</p>
<p>if (PUL2==0) // se pulsante 2 premuto<br />
{<br />
DelayMs(10); // antirimbalzo<br />
if (PUL2==0)<br />
{<br />
if (CUNTER==0) // FUNZIONE INSERITA PER OTTENERE L&#039; ACCENSIONE PASSO PASSO DEL LED2,<br />
{              // SE NON INSERITA CAUSA IL NON RICONOSCIMENTO DELLO STATO LED2-PUL2.<br />
LED2=1;<br />
CUNTER++;<br />
}<br />
}<br />
}<br />
if (PUL2==1) // se pulsante 2 RILASCIATO O A RIPOSO<br />
{<br />
DelayMs(10); // antirimbalzo<br />
if (PUL2==1)<br />
{<br />
if (CUNTER==1)<br />
{<br />
CUNTER++;<br />
}<br />
}<br />
}</p>
<p>if (PUL2==0) // se pulsante 2 premuto<br />
{<br />
DelayMs(10); // antirimbalzo<br />
if (PUL2==0)<br />
{<br />
if (CUNTER==2)<br />
{<br />
LED2=0;<br />
CUNTER++;<br />
}<br />
}<br />
}</p>
<p>if (PUL2==1) // se pulsante 2 RILASCIATO O A RIPOSO<br />
{<br />
DelayMs(10); // antirimbalzo<br />
if (PUL2==1)<br />
{<br />
if (CUNTER==3)<br />
{<br />
CUNTER=0; // RESETTARE LA FUNZIONE PER POTER RENDERE CICLICO IL FUNZIONAMENTO.<br />
}<br />
}<br />
}</p>
<p>	}// Fine ciclo continuo<br />
	} // Fine main</p>
<p>Sarebbe la lezione 6 solo che aggiunto e cambiato qualche cosa.<br />
Inserisco il file settings.h per capirci un pò di più.</p>
<p>// Lezione 6<br />
// <a href="http://www.settorezero.com" rel="nofollow">http://www.settorezero.com</a><br />
//<br />
// modulo: settings.h<br />
// autore: Bernardo Giovanni<br />
// data: 28/09/09<br />
// descrizione: configurazione del picmicro<br />
//<br />
//*************************************************</p>
<p>#define PUL1	RD0	// pulsante 1<br />
#define PUL2	RD1	// pulsante 2<br />
#define LED1	RD2	// led 1<br />
#define LED2	RD3	// led 2</p>
<p>unsigned char CUNTER=0; //Char è un tipo di dato a 8 bit, quindi può arrivare a contenere valori fino a 255, a noi serve massimo 250, quindi va bene</p>
<p>void settings(void)<br />
	{<br />
	TRISA=0;			// Tutte output<br />
	TRISB=0;<br />
	TRISC=0;<br />
	TRISD=0b00000011; 	// Le porte RD0 e RD1 devono essere input (1) perchè vi sono collegati i pulsanti, le altre output (0)<br />
	TRISE=0;</p>
<p>	ADON=0; //per spegnere i convertitori a/d in maniera tale da non consumare corrente<br />
        ADCON1=7; //per disattivare gli ingressi analogici</p>
<p>	// All&#039;avvio i 2 led devono essere spenti<br />
	LED1=0;<br />
	LED2=0;<br />
	}</p>
<p>Naturalmente credo che ci siano soluzioni migliori della mia anche perchè risulta troppo laboriosa e grossa per fare accendere e spegnere solo un led.<br />
Ringrazio in anticipo fatemi sapere.</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-8518</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Fri, 17 Dec 2010 06:52:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-8518</guid>
		<description>Si hai ragione.. è stata una dimenticanza</description>
		<content:encoded><![CDATA[<p>Si hai ragione.. è stata una dimenticanza</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: francesco bigazzi</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-8512</link>
		<dc:creator>francesco bigazzi</dc:creator>
		<pubDate>Fri, 17 Dec 2010 00:23:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-8512</guid>
		<description>ciao, complimenti vivissimi per il tuo splendido corso!
Volevo avvertirti di un&#039;errore presente sia in questa che nella quinta lezione: le resistenze di pull-ups sulle porte B del 16F877A si abilitano impostando il bit RPBU=0, e non =1 come da te riportato. Si vede anche dall&#039;estratto del datasheet presente nella lezione 5...</description>
		<content:encoded><![CDATA[<p>ciao, complimenti vivissimi per il tuo splendido corso!<br />
Volevo avvertirti di un&#8217;errore presente sia in questa che nella quinta lezione: le resistenze di pull-ups sulle porte B del 16F877A si abilitano impostando il bit RPBU=0, e non =1 come da te riportato. Si vede anche dall&#8217;estratto del datasheet presente nella lezione 5&#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-8459</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Sun, 12 Dec 2010 19:39:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-8459</guid>
		<description>Leggere l&#039;ultimo articolo che ho scritto no?</description>
		<content:encoded><![CDATA[<p>Leggere l&#8217;ultimo articolo che ho scritto no?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Emilio</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-8458</link>
		<dc:creator>Emilio</dc:creator>
		<pubDate>Sun, 12 Dec 2010 19:22:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-8458</guid>
		<description>Ciao! Complimenti per le lezioni, tutte molto interessanti e complete, in particolare per chi come me partiva da zero!
Sto costruendo un circuito per pilotare dei led; avevo provato a collegare due pulsanti, sempre in configurazione pull-up, sulle Porte E0 ed E1, modificando quindi il TRISE in 0b00000011, ma all&#039;avvio del programma il processore faceva lampeggiare i due led come se non rilevasse il pull-up, ma un segnale basso; ho provato a spostare i pulsanti nelle Porte A0 ed A1, sempre modificando i TRISA, ma faceva lo stesso problema; il pic 16f877 è funzionante, poichè mettendo i pulsanti sulle Porte D0 e D1 tutto funziona regolarmente. Avevo provato a cercare su internet qualche informazione, e qualcuno dice che essendo le porte multiplexate occorre modificare qualche registro. Poichè leggendo il datasheet non son riuscito a risolvere il problema, ti chiedo se c&#039;è qualche opzione da modificare se utilizzo altre porte.
Grazie in anticipo! 
Emilio</description>
		<content:encoded><![CDATA[<p>Ciao! Complimenti per le lezioni, tutte molto interessanti e complete, in particolare per chi come me partiva da zero!<br />
Sto costruendo un circuito per pilotare dei led; avevo provato a collegare due pulsanti, sempre in configurazione pull-up, sulle Porte E0 ed E1, modificando quindi il TRISE in 0b00000011, ma all&#8217;avvio del programma il processore faceva lampeggiare i due led come se non rilevasse il pull-up, ma un segnale basso; ho provato a spostare i pulsanti nelle Porte A0 ed A1, sempre modificando i TRISA, ma faceva lo stesso problema; il pic 16f877 è funzionante, poichè mettendo i pulsanti sulle Porte D0 e D1 tutto funziona regolarmente. Avevo provato a cercare su internet qualche informazione, e qualcuno dice che essendo le porte multiplexate occorre modificare qualche registro. Poichè leggendo il datasheet non son riuscito a risolvere il problema, ti chiedo se c&#8217;è qualche opzione da modificare se utilizzo altre porte.<br />
Grazie in anticipo!<br />
Emilio</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: gippo</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-7912</link>
		<dc:creator>gippo</dc:creator>
		<pubDate>Fri, 12 Nov 2010 22:05:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-7912</guid>
		<description>Chiarissimo come sempre... :) beh, se lo standard o cmq l&#039;uso comune è questo meglio seguire questa strada...</description>
		<content:encoded><![CDATA[<p>Chiarissimo come sempre&#8230; :) beh, se lo standard o cmq l&#8217;uso comune è questo meglio seguire questa strada&#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-7911</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Fri, 12 Nov 2010 21:49:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-7911</guid>
		<description>Quando i pin sono settati come ingresso vanno in alta impedenza per cui teoricamente con la resistenza di pullup non dovrebbe esserci un assorbimento di corrente rilevante (quel microminimo che basta per rilevare il livello alto). In teoria non dovrebbe esserci differenza tra l&#039;uno o l&#039;altro sistema. La resistenza di pullup o di pulldown serve a forzare un livello logico in assenza di stimoli esterni dato che una porta in alta impedenza non ha livello logico e potrebbe captare disturbi. Penso che con la resistenza di pullup si sta più tranquilli perchè puoi usare un range di valori di resistenze più alto rispetto alle pulldown. Il livello alto, su una logica TTL sta tra 5 e 1.5Volts, il livello basso tra 0 e 0.8V (tra 0.8 e 1.5 c&#039;è una zona indeterminata). Capisci come per il livello alto hai un range più esteso rispetto al livello basso, per cui si preferisce mettere la pullup in quanto il livello basso ce l&#039;hai di sicuro mandando completamente a massa l&#039;ingresso, cosa che invece, essendo la soglia di livello basso più corta, magari non potrebbe funzionarti bene in tutte le condizioni con la pullup. Qualsiasi applicazione circuitale che vedi usa sempre le resistenze di pullup, anche i bus di comunicazione tipo l&#039;I2C, probabilmente per questo motivo: avendo un range più elevato per il livello alto magari si garantisce più immunità ai disturbi</description>
		<content:encoded><![CDATA[<p>Quando i pin sono settati come ingresso vanno in alta impedenza per cui teoricamente con la resistenza di pullup non dovrebbe esserci un assorbimento di corrente rilevante (quel microminimo che basta per rilevare il livello alto). In teoria non dovrebbe esserci differenza tra l&#8217;uno o l&#8217;altro sistema. La resistenza di pullup o di pulldown serve a forzare un livello logico in assenza di stimoli esterni dato che una porta in alta impedenza non ha livello logico e potrebbe captare disturbi. Penso che con la resistenza di pullup si sta più tranquilli perchè puoi usare un range di valori di resistenze più alto rispetto alle pulldown. Il livello alto, su una logica TTL sta tra 5 e 1.5Volts, il livello basso tra 0 e 0.8V (tra 0.8 e 1.5 c&#8217;è una zona indeterminata). Capisci come per il livello alto hai un range più esteso rispetto al livello basso, per cui si preferisce mettere la pullup in quanto il livello basso ce l&#8217;hai di sicuro mandando completamente a massa l&#8217;ingresso, cosa che invece, essendo la soglia di livello basso più corta, magari non potrebbe funzionarti bene in tutte le condizioni con la pullup. Qualsiasi applicazione circuitale che vedi usa sempre le resistenze di pullup, anche i bus di comunicazione tipo l&#8217;I2C, probabilmente per questo motivo: avendo un range più elevato per il livello alto magari si garantisce più immunità ai disturbi</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: gippo</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-7910</link>
		<dc:creator>gippo</dc:creator>
		<pubDate>Fri, 12 Nov 2010 21:30:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-7910</guid>
		<description>Collegare un pulsante ad un piedino tramite resistenza di pull-down e quindi a tasto premuto dare il livello alto concettualmente è uguale ad usare la resistenza di pull-up e dare il livello basso a tasto premuto... c&#039;e&#039; una preferenza nell&#039;usare l&#039;uno o l&#039;altro collegamento magari x qualche motivo che sconosco? :O Le porte del pic settate come ingresso sono ad alta impedenza ma collegando una resistenza di pull-up non fa sempre scorrere una piccolissima corrente (anche decimi di uA) che se usassimo una resistenza di pull-down andremmo ad eliminare? Ad ogni modo se si usa il collegamento da te illustrato è per qualche motivo particolare? Anche il fatto che è possibile attivare le resistenze di pull-up su alcune porte fa supporre che sia meglio usare queste...</description>
		<content:encoded><![CDATA[<p>Collegare un pulsante ad un piedino tramite resistenza di pull-down e quindi a tasto premuto dare il livello alto concettualmente è uguale ad usare la resistenza di pull-up e dare il livello basso a tasto premuto&#8230; c&#8217;e&#8217; una preferenza nell&#8217;usare l&#8217;uno o l&#8217;altro collegamento magari x qualche motivo che sconosco? :O Le porte del pic settate come ingresso sono ad alta impedenza ma collegando una resistenza di pull-up non fa sempre scorrere una piccolissima corrente (anche decimi di uA) che se usassimo una resistenza di pull-down andremmo ad eliminare? Ad ogni modo se si usa il collegamento da te illustrato è per qualche motivo particolare? Anche il fatto che è possibile attivare le resistenze di pull-up su alcune porte fa supporre che sia meglio usare queste&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Gela</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-7470</link>
		<dc:creator>Gela</dc:creator>
		<pubDate>Wed, 20 Oct 2010 11:10:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-7470</guid>
		<description>Ok! Ho fatto come hai detto, però mi dava ancora quel problema, solo che funzionava a colpi. A volte andava a volte no. Ho pensato fosse la resistenza di pull-down, infatti era così, era troppo alta, l&#039;ho sostituita con una un po&#039; più bassa, 560ohm che avevo in casa e ora va benissimo. il perchè non lo so proprio.. L&#039;elettronica non smette mai di stupire XD
Cmq il tuo consiglio è servito =)
Ti offrirò uno spritz invece di un caffè :)
Ciao e grazie 10^3!!</description>
		<content:encoded><![CDATA[<p>Ok! Ho fatto come hai detto, però mi dava ancora quel problema, solo che funzionava a colpi. A volte andava a volte no. Ho pensato fosse la resistenza di pull-down, infatti era così, era troppo alta, l&#8217;ho sostituita con una un po&#8217; più bassa, 560ohm che avevo in casa e ora va benissimo. il perchè non lo so proprio.. L&#8217;elettronica non smette mai di stupire XD<br />
Cmq il tuo consiglio è servito =)<br />
Ti offrirò uno spritz invece di un caffè :)<br />
Ciao e grazie 10^3!!</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-7464</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Tue, 19 Oct 2010 18:41:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-7464</guid>
		<description>Alcune periferiche vanno disattivate se non vuoi che influiscano su altre funzioni. Sul datasheet è sempre chiaramente indicato qual&#039;è lo stato delle periferiche all&#039;avvio. In genere l&#039;A/D e i comparatori sono sempre attivi per default, e ovviamente i pin multiplexati con le funzioni analogiche non possono funzionare come digitali.</description>
		<content:encoded><![CDATA[<p>Alcune periferiche vanno disattivate se non vuoi che influiscano su altre funzioni. Sul datasheet è sempre chiaramente indicato qual&#8217;è lo stato delle periferiche all&#8217;avvio. In genere l&#8217;A/D e i comparatori sono sempre attivi per default, e ovviamente i pin multiplexati con le funzioni analogiche non possono funzionare come digitali.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Gela</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-7462</link>
		<dc:creator>Gela</dc:creator>
		<pubDate>Tue, 19 Oct 2010 18:36:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-7462</guid>
		<description>Ehm... No, non pensavo potesse dare problemi non avendo impostato nessun registro per la conversione A/D.
Grazie, più tardi proverò a disattivarlo :)

Grazie ancora!!!</description>
		<content:encoded><![CDATA[<p>Ehm&#8230; No, non pensavo potesse dare problemi non avendo impostato nessun registro per la conversione A/D.<br />
Grazie, più tardi proverò a disattivarlo :)</p>
<p>Grazie ancora!!!</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-7460</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Tue, 19 Oct 2010 18:26:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-7460</guid>
		<description>Il 16F690 ha il convertitore A/D. L&#039;hai disattivato ?</description>
		<content:encoded><![CDATA[<p>Il 16F690 ha il convertitore A/D. L&#8217;hai disattivato ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Gela</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-7459</link>
		<dc:creator>Gela</dc:creator>
		<pubDate>Tue, 19 Oct 2010 18:15:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-7459</guid>
		<description>Ciao, complimenti per il corso, l&#039;ho letto tutto ed è molto esauriente :) bravo davvero :) però ho un problema.
Uso il pic16F690. Ho realizzato un programma che accende spegne un led su RB4 quando si preme un pulsante, ma non funziona, in fase di programmazione non ho nessun messaggio di errore da parte di WINPIC800, ma al collegamento del pic su un semplice circuito di prova fa delle cose strane.
Ho tre led collegati su RB4 RB5 RB6. Il tasto è collegato al piedino RC0 tramite una resistenza di pull-down. Quello che succede è che, oltre a non funzionare, mi accende RB5 e RB4 insieme, mentre su RC0 è presente una tensione di 5 V cosa altamente strana visto che c&#039;è la resistenza di pull-down. I registri tristate sono configurati correttamente come input per RC0 e come output tutti gli altri. Ho provato a collegare il tasto su un altro pin ma succede la stessa cosa.
È un problema del pic? Può essersi bruciato? Se si perchè WINPIC riesce a programmarlo senza errori?

Lo stesso pic era montato su un&#039;altra scheda provvista di display LCD dove sbadatamente avevo collegato l&#039;alimentazione del display (solo display, il resto era ok)al contrario, può essere che il danno all&#039;LCD del quale sono quasi sicuro, si sia riflesso sul PIC?</description>
		<content:encoded><![CDATA[<p>Ciao, complimenti per il corso, l&#8217;ho letto tutto ed è molto esauriente :) bravo davvero :) però ho un problema.<br />
Uso il pic16F690. Ho realizzato un programma che accende spegne un led su RB4 quando si preme un pulsante, ma non funziona, in fase di programmazione non ho nessun messaggio di errore da parte di WINPIC800, ma al collegamento del pic su un semplice circuito di prova fa delle cose strane.<br />
Ho tre led collegati su RB4 RB5 RB6. Il tasto è collegato al piedino RC0 tramite una resistenza di pull-down. Quello che succede è che, oltre a non funzionare, mi accende RB5 e RB4 insieme, mentre su RC0 è presente una tensione di 5 V cosa altamente strana visto che c&#8217;è la resistenza di pull-down. I registri tristate sono configurati correttamente come input per RC0 e come output tutti gli altri. Ho provato a collegare il tasto su un altro pin ma succede la stessa cosa.<br />
È un problema del pic? Può essersi bruciato? Se si perchè WINPIC riesce a programmarlo senza errori?</p>
<p>Lo stesso pic era montato su un&#8217;altra scheda provvista di display LCD dove sbadatamente avevo collegato l&#8217;alimentazione del display (solo display, il resto era ok)al contrario, può essere che il danno all&#8217;LCD del quale sono quasi sicuro, si sia riflesso sul PIC?</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-7252</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Sat, 25 Sep 2010 15:14:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-7252</guid>
		<description>Grazie dei complimenti.
Utilizzo Eagle della Cadsoft.</description>
		<content:encoded><![CDATA[<p>Grazie dei complimenti.<br />
Utilizzo Eagle della Cadsoft.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Maurizio</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-7251</link>
		<dc:creator>Maurizio</dc:creator>
		<pubDate>Sat, 25 Sep 2010 13:13:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-7251</guid>
		<description>Ciao,
innanzitutto enormi complimenti per il corso, sei davvero bravo a spiegare, lo fai semplicemente ma in maniera completa, bravo davvero!
Poi la domanda, che programma usi per disegnare gli schemi elettrici del corso?

Grazie
Maurizio</description>
		<content:encoded><![CDATA[<p>Ciao,<br />
innanzitutto enormi complimenti per il corso, sei davvero bravo a spiegare, lo fai semplicemente ma in maniera completa, bravo davvero!<br />
Poi la domanda, che programma usi per disegnare gli schemi elettrici del corso?</p>
<p>Grazie<br />
Maurizio</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-7250</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Sat, 25 Sep 2010 10:59:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-7250</guid>
		<description>Mi pare di averlo pure scritto qui da qualche parte. Il pickit utilizza le porte RB6 e RB7 per la programmazione (che corrispondono ai pin PGC e PGD) che guardacaso sono le porte utilizzate dai due pulsanti in questione. Quando hai il pickit attaccato, quelle due porte vengono messe a massa per cui ti risulta come se i pulsanti fossero sempre premuti. Non ci si puo fare niente... dovevano fare in modo che quei due pin, nel pickit, andassero in alta impedenza per non creare fastidi.</description>
		<content:encoded><![CDATA[<p>Mi pare di averlo pure scritto qui da qualche parte. Il pickit utilizza le porte RB6 e RB7 per la programmazione (che corrispondono ai pin PGC e PGD) che guardacaso sono le porte utilizzate dai due pulsanti in questione. Quando hai il pickit attaccato, quelle due porte vengono messe a massa per cui ti risulta come se i pulsanti fossero sempre premuti. Non ci si puo fare niente&#8230; dovevano fare in modo che quei due pin, nel pickit, andassero in alta impedenza per non creare fastidi.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: lodi12</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-7249</link>
		<dc:creator>lodi12</dc:creator>
		<pubDate>Sat, 25 Sep 2010 10:43:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=1487#comment-7249</guid>
		<description>Ho fatto un semplice programma per 18f4550(uso la freedom II ) in cui :
Pulsante premuto -&gt; led acceso usando tutti i bottoni e i primi 4 led. Se lo alimento con un alimentatore esterno tutto ok ma se uso il pickit2 per alimentarlo, mentre BT1 e BT2 funzionano normalmente, i led corrispondenti a BT3 e BT4 rimangono sempre accesi...possibile che i segnali di PGD E PGC diano fastidio???</description>
		<content:encoded><![CDATA[<p>Ho fatto un semplice programma per 18f4550(uso la freedom II ) in cui :<br />
Pulsante premuto -&gt; led acceso usando tutti i bottoni e i primi 4 led. Se lo alimento con un alimentatore esterno tutto ok ma se uso il pickit2 per alimentarlo, mentre BT1 e BT2 funzionano normalmente, i led corrispondenti a BT3 e BT4 rimangono sempre accesi&#8230;possibile che i segnali di PGD E PGC diano fastidio???</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-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>
</channel>
</rss>

