<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Commenti a: Corso programmazione PICMicro in C – Approfondimenti – Come utilizzare un encoder in quadratura per l&#8217;immissione dei dati</title>
	<atom:link href="http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-%e2%80%93-approfondimenti-%e2%80%93-come-utilizzare-un-encoder-in-quadratura-per-limmissione-dei-dati/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-%e2%80%93-approfondimenti-%e2%80%93-come-utilizzare-un-encoder-in-quadratura-per-limmissione-dei-dati/</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: Andrea Barbon</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-%e2%80%93-approfondimenti-%e2%80%93-come-utilizzare-un-encoder-in-quadratura-per-limmissione-dei-dati/comment-page-1/#comment-13838</link>
		<dc:creator>Andrea Barbon</dc:creator>
		<pubDate>Wed, 21 Dec 2011 20:32:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=2167#comment-13838</guid>
		<description>Ciao, smontando un vecchio processore audiomi son capitati tra le mani un display 240x128 con un controller strano, ed un encoder rotativo.

Per il display mi arrangio, ma per l&#039;encoder m&#039;è capitato in mano un pezzo particolare. L&#039;encoder in questione non ha i soliti &quot;tick&quot; che senti con un encoder normalissimo, ed è predisposto a 4 fili. La manopola che c&#039;era sopra era un bel manopolone di ferro, e girandolo con l&#039;inerzia tende a continuare a girare e non a bloccarsi come con i normali encoder (non avendo i famosi &quot;tick&quot;... Solo che non saprei come collegarlo! 

Ho il dubbio che abbia qualche sorta di bobina o comunque qualcosa di elettromagnetico all&#039;interno, eppure sul vecchio processore il connettore era saldato al pcb con solo 3 pin, o meglio dei 4 pin che c&#039;erano saldati solo 3 avevano la pista che andava da una uqalche parte.

sai darmi qualche info?</description>
		<content:encoded><![CDATA[<p>Ciao, smontando un vecchio processore audiomi son capitati tra le mani un display 240&#215;128 con un controller strano, ed un encoder rotativo.</p>
<p>Per il display mi arrangio, ma per l&#8217;encoder m&#8217;è capitato in mano un pezzo particolare. L&#8217;encoder in questione non ha i soliti &#8220;tick&#8221; che senti con un encoder normalissimo, ed è predisposto a 4 fili. La manopola che c&#8217;era sopra era un bel manopolone di ferro, e girandolo con l&#8217;inerzia tende a continuare a girare e non a bloccarsi come con i normali encoder (non avendo i famosi &#8220;tick&#8221;&#8230; Solo che non saprei come collegarlo! </p>
<p>Ho il dubbio che abbia qualche sorta di bobina o comunque qualcosa di elettromagnetico all&#8217;interno, eppure sul vecchio processore il connettore era saldato al pcb con solo 3 pin, o meglio dei 4 pin che c&#8217;erano saldati solo 3 avevano la pista che andava da una uqalche parte.</p>
<p>sai darmi qualche info?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: danielone</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-%e2%80%93-approfondimenti-%e2%80%93-come-utilizzare-un-encoder-in-quadratura-per-limmissione-dei-dati/comment-page-1/#comment-13806</link>
		<dc:creator>danielone</dc:creator>
		<pubDate>Mon, 19 Dec 2011 17:31:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=2167#comment-13806</guid>
		<description>Dimenticavo di aggiungere quella che potrebbe essere una soluzione hardware al problema di debounce. Non l&#039;ho provato ma lo proverò. Utile magari se si vuole usare l&#039;encoder in polling senza inserire ritardi.

http://www.onsemi.com/pub_link/Collateral/MC14490-D.PDF</description>
		<content:encoded><![CDATA[<p>Dimenticavo di aggiungere quella che potrebbe essere una soluzione hardware al problema di debounce. Non l&#8217;ho provato ma lo proverò. Utile magari se si vuole usare l&#8217;encoder in polling senza inserire ritardi.</p>
<p><a href="http://www.onsemi.com/pub_link/Collateral/MC14490-D.PDF" rel="nofollow">http://www.onsemi.com/pub_link/Collateral/MC14490-D.PDF</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: danielone</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-%e2%80%93-approfondimenti-%e2%80%93-come-utilizzare-un-encoder-in-quadratura-per-limmissione-dei-dati/comment-page-1/#comment-13805</link>
		<dc:creator>danielone</dc:creator>
		<pubDate>Mon, 19 Dec 2011 16:06:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=2167#comment-13805</guid>
		<description>Buondì Giovanni!
Ringraziare per i tuoi articoli è poco.

Ho usato questo componente:
http://www.knitter-switch.com/pdf_en_prod11/encoder_seriesMER12.pdf (vedi quello a pagina 8) 
per implementare il tuo progetto, facendo un porting su PIC18F45K22. Pulse è collegato ad RB7 e dir ad RB6. L&#039;interrupt è scansito solo su RB7.

In uscita visualizzo la variabile su un display 7seg a 4 digit comandato via SPI da un max7219.

Ho sperimentato questi 2 problemini:
1) L&#039;encoder funziona solo in decremento...in incremento non va. Che sia colpa del componente?
2) Circa ABcounter ho sperimentato il passaggio da Fosc a 20Mhz come il tuo progetto ad 8Mhz nel mio. Tramite il tuo programma PIC timer ho quindi impostato il prescaler ad 1:8 (anziché 1:32) e TMR0L a 6 (anziché a 100) per ottenere l&#039;overflow ogni 1ms. Di fatto capita che il sistema risponda con una lentezza allucinante all&#039;input dell&#039;encoder e ruotando velocemente proprio non funzioni. Sospetto a questo punto che 8Mhz sia una frequenza troppo bassa per gestire correttamente il tutto.

Ne approfitto anche per segnalarti che cliccando al link che indichi per l&#039;encoder Piher (i cui dati ho cercato di consultare per verificare se effettivamente butta fuori un segnale diverso dal mio encoder...anche se non mi pare) si viene mandati su una pagina non più esistente.

Cari saluti!

Daniele</description>
		<content:encoded><![CDATA[<p>Buondì Giovanni!<br />
Ringraziare per i tuoi articoli è poco.</p>
<p>Ho usato questo componente:<br />
<a href="http://www.knitter-switch.com/pdf_en_prod11/encoder_seriesMER12.pdf" rel="nofollow">http://www.knitter-switch.com/pdf_en_prod11/encoder_seriesMER12.pdf</a> (vedi quello a pagina 8)<br />
per implementare il tuo progetto, facendo un porting su PIC18F45K22. Pulse è collegato ad RB7 e dir ad RB6. L&#8217;interrupt è scansito solo su RB7.</p>
<p>In uscita visualizzo la variabile su un display 7seg a 4 digit comandato via SPI da un max7219.</p>
<p>Ho sperimentato questi 2 problemini:<br />
1) L&#8217;encoder funziona solo in decremento&#8230;in incremento non va. Che sia colpa del componente?<br />
2) Circa ABcounter ho sperimentato il passaggio da Fosc a 20Mhz come il tuo progetto ad 8Mhz nel mio. Tramite il tuo programma PIC timer ho quindi impostato il prescaler ad 1:8 (anziché 1:32) e TMR0L a 6 (anziché a 100) per ottenere l&#8217;overflow ogni 1ms. Di fatto capita che il sistema risponda con una lentezza allucinante all&#8217;input dell&#8217;encoder e ruotando velocemente proprio non funzioni. Sospetto a questo punto che 8Mhz sia una frequenza troppo bassa per gestire correttamente il tutto.</p>
<p>Ne approfitto anche per segnalarti che cliccando al link che indichi per l&#8217;encoder Piher (i cui dati ho cercato di consultare per verificare se effettivamente butta fuori un segnale diverso dal mio encoder&#8230;anche se non mi pare) si viene mandati su una pagina non più esistente.</p>
<p>Cari saluti!</p>
<p>Daniele</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-%e2%80%93-approfondimenti-%e2%80%93-come-utilizzare-un-encoder-in-quadratura-per-limmissione-dei-dati/comment-page-1/#comment-13731</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Sat, 10 Dec 2011 22:40:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=2167#comment-13731</guid>
		<description>Tutto dipende &quot;la sorgente&quot; dove andrà a finire.
Per il resto: se non provi non potrai mai sapere.</description>
		<content:encoded><![CDATA[<p>Tutto dipende &#8220;la sorgente&#8221; dove andrà a finire.<br />
Per il resto: se non provi non potrai mai sapere.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Faustino</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-%e2%80%93-approfondimenti-%e2%80%93-come-utilizzare-un-encoder-in-quadratura-per-limmissione-dei-dati/comment-page-1/#comment-13730</link>
		<dc:creator>Faustino</dc:creator>
		<pubDate>Sat, 10 Dec 2011 21:58:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=2167#comment-13730</guid>
		<description>Ciao Giovanni e a tutti
dovrei fare qualcosa del genere, ti citerò nei commenti della sorgente :). 
Ho un encoder assoluto ottico e su due uscite ci sono le onde in quadrature citate, più un&#039;altra uscita che mi da un impulso ogni giro. Ci sono 1000 impulsi per giro ma ce ne possono essere anche 24000 impulsi per giro (dipende dal modello). 
Per giocare ho preso quello da 1000. il data sheet mi dice che ha una banda massima di 200kHz, ovvero un impulso non può durare meno di 2.5 us. Guardando con l&#039;oscilloscopio effettivamente, siamo lì. Al momento pensavo a far gestire la velocità a livello hardware con un convertitore frequenza-tensione e dare in pasto l&#039;uscita al ADC del PIC, questo perchè ho il timore che non ci stia dietro. La mia idea è di interrogare da pc con comunicazion USB o RS488 per interrogare il pic su velocità, angolo e giri compiuti.
un interrupt ad alto livello per &quot;intercettare&quot; l&#039;impulso dell&#039;angolo un secondo interrupt a basso livello per la comunicazione seriale. il mio timore è uno, domanda: se tramite hyperterminal chiedo la velocita&#039;, con un comando ad esempio &quot;speed&quot;, il pic riconosce un interupt a basso livello e mentre trasmette se allo stesso tempo riceve un interupt ad alto livello, cosa succede? il pic sicuramente da&#039; la precedenza all&#039;interupt ad alto livello, ma a livello di comunicazione, si interrompe? c&#039;è il rischio che l&#039;utente non riesca a comunicare a meno che l&#039;encoder vada a una velocità sufficientemente bassa? o tutto avviene in &quot;parallelo&quot;?
Grazie Fausto</description>
		<content:encoded><![CDATA[<p>Ciao Giovanni e a tutti<br />
dovrei fare qualcosa del genere, ti citerò nei commenti della sorgente :).<br />
Ho un encoder assoluto ottico e su due uscite ci sono le onde in quadrature citate, più un&#8217;altra uscita che mi da un impulso ogni giro. Ci sono 1000 impulsi per giro ma ce ne possono essere anche 24000 impulsi per giro (dipende dal modello).<br />
Per giocare ho preso quello da 1000. il data sheet mi dice che ha una banda massima di 200kHz, ovvero un impulso non può durare meno di 2.5 us. Guardando con l&#8217;oscilloscopio effettivamente, siamo lì. Al momento pensavo a far gestire la velocità a livello hardware con un convertitore frequenza-tensione e dare in pasto l&#8217;uscita al ADC del PIC, questo perchè ho il timore che non ci stia dietro. La mia idea è di interrogare da pc con comunicazion USB o RS488 per interrogare il pic su velocità, angolo e giri compiuti.<br />
un interrupt ad alto livello per &#8220;intercettare&#8221; l&#8217;impulso dell&#8217;angolo un secondo interrupt a basso livello per la comunicazione seriale. il mio timore è uno, domanda: se tramite hyperterminal chiedo la velocita&#8217;, con un comando ad esempio &#8220;speed&#8221;, il pic riconosce un interupt a basso livello e mentre trasmette se allo stesso tempo riceve un interupt ad alto livello, cosa succede? il pic sicuramente da&#8217; la precedenza all&#8217;interupt ad alto livello, ma a livello di comunicazione, si interrompe? c&#8217;è il rischio che l&#8217;utente non riesca a comunicare a meno che l&#8217;encoder vada a una velocità sufficientemente bassa? o tutto avviene in &#8220;parallelo&#8221;?<br />
Grazie Fausto</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Haru</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-%e2%80%93-approfondimenti-%e2%80%93-come-utilizzare-un-encoder-in-quadratura-per-limmissione-dei-dati/comment-page-1/#comment-12410</link>
		<dc:creator>Haru</dc:creator>
		<pubDate>Mon, 22 Aug 2011 08:39:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=2167#comment-12410</guid>
		<description>Tecnicamente avrei il pic che fa solo quel lavoro, l&#039;unica altra funzione che ha è quella di inviare i dati ricavati dagli encoder tramite uart o spi (devo ancora vedere per quello).
Per la serie nessun rallentamento dovuto a display o led, nel ciclo metto solo il controllo di ogni porta e in base allo stato precedente verifico se è stato spostato o meno, giusto?

Un&#039;altra cosa: dici sia meglio cloccarlo a 20MHz o gli 8 dell&#039;oscillatore interno possono bastare?</description>
		<content:encoded><![CDATA[<p>Tecnicamente avrei il pic che fa solo quel lavoro, l&#8217;unica altra funzione che ha è quella di inviare i dati ricavati dagli encoder tramite uart o spi (devo ancora vedere per quello).<br />
Per la serie nessun rallentamento dovuto a display o led, nel ciclo metto solo il controllo di ogni porta e in base allo stato precedente verifico se è stato spostato o meno, giusto?</p>
<p>Un&#8217;altra cosa: dici sia meglio cloccarlo a 20MHz o gli 8 dell&#8217;oscillatore interno possono bastare?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-%e2%80%93-approfondimenti-%e2%80%93-come-utilizzare-un-encoder-in-quadratura-per-limmissione-dei-dati/comment-page-1/#comment-12409</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Sun, 21 Aug 2011 21:05:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=2167#comment-12409</guid>
		<description>Beh si... Te li controlli in Polling ma se non hai un Tcy abbastanza elevato non so se ce la fai a controllarti tutto.</description>
		<content:encoded><![CDATA[<p>Beh si&#8230; Te li controlli in Polling ma se non hai un Tcy abbastanza elevato non so se ce la fai a controllarti tutto.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Haru</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-%e2%80%93-approfondimenti-%e2%80%93-come-utilizzare-un-encoder-in-quadratura-per-limmissione-dei-dati/comment-page-1/#comment-12408</link>
		<dc:creator>Haru</dc:creator>
		<pubDate>Sun, 21 Aug 2011 13:14:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=2167#comment-12408</guid>
		<description>è possibile collegare ad un pic gli encoder senza utilizzare l&#039;interrupt? il mio problema è che ho tipo una ventina di encoder usati come manopole da controllare, ed è evidente che RB0 non mi basta... qualche consiglio?</description>
		<content:encoded><![CDATA[<p>è possibile collegare ad un pic gli encoder senza utilizzare l&#8217;interrupt? il mio problema è che ho tipo una ventina di encoder usati come manopole da controllare, ed è evidente che RB0 non mi basta&#8230; qualche consiglio?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Aigor</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-%e2%80%93-approfondimenti-%e2%80%93-come-utilizzare-un-encoder-in-quadratura-per-limmissione-dei-dati/comment-page-1/#comment-12393</link>
		<dc:creator>Aigor</dc:creator>
		<pubDate>Thu, 04 Aug 2011 11:46:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=2167#comment-12393</guid>
		<description>In odore di sperimentazione ho cercato qualcosa sugli encoder e ho trovato, googolando, un sistema per usare i motori dei dischi rigidi come encoder, sperando di non violare qualche regola, ecco il link 
http://www.instructables.com/id/HDDJ-Turning-an-old-hard-disk-drive-into-a-rotary/step4/Amplifying-the-output/</description>
		<content:encoded><![CDATA[<p>In odore di sperimentazione ho cercato qualcosa sugli encoder e ho trovato, googolando, un sistema per usare i motori dei dischi rigidi come encoder, sperando di non violare qualche regola, ecco il link<br />
<a href="http://www.instructables.com/id/HDDJ-Turning-an-old-hard-disk-drive-into-a-rotary/step4/Amplifying-the-output/" rel="nofollow">http://www.instructables.com/id/HDDJ-Turning-an-old-hard-disk-drive-into-a-rotary/step4/Amplifying-the-output/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-%e2%80%93-approfondimenti-%e2%80%93-come-utilizzare-un-encoder-in-quadratura-per-limmissione-dei-dati/comment-page-1/#comment-11771</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Mon, 13 Jun 2011 16:48:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=2167#comment-11771</guid>
		<description>Encoder meccanici che fanno così non ne ho idea. Di digitali ce ne sono che hanno questo sistema, ma sicuramente sono molto poco diffusi.</description>
		<content:encoded><![CDATA[<p>Encoder meccanici che fanno così non ne ho idea. Di digitali ce ne sono che hanno questo sistema, ma sicuramente sono molto poco diffusi.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Haru</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-%e2%80%93-approfondimenti-%e2%80%93-come-utilizzare-un-encoder-in-quadratura-per-limmissione-dei-dati/comment-page-1/#comment-11769</link>
		<dc:creator>Haru</dc:creator>
		<pubDate>Mon, 13 Jun 2011 14:51:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=2167#comment-11769</guid>
		<description>(il riferimento è solo a quelli meccanici che fanno il colpetto quando li giri, e non a quelli ottici)</description>
		<content:encoded><![CDATA[<p>(il riferimento è solo a quelli meccanici che fanno il colpetto quando li giri, e non a quelli ottici)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Haru</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-%e2%80%93-approfondimenti-%e2%80%93-come-utilizzare-un-encoder-in-quadratura-per-limmissione-dei-dati/comment-page-1/#comment-11768</link>
		<dc:creator>Haru</dc:creator>
		<pubDate>Mon, 13 Jun 2011 14:50:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=2167#comment-11768</guid>
		<description>esistono anche degli encoder che invece di essere in quadratura mandano il bit sull&#039;uscita in base al senso di rotazione? (tipo danno un impulso ogni 10 gradi di rotazione su una delle due uscite in base alla rotazione)

perchè fino a 5 minuti fa pensavo funzionassero così :D</description>
		<content:encoded><![CDATA[<p>esistono anche degli encoder che invece di essere in quadratura mandano il bit sull&#8217;uscita in base al senso di rotazione? (tipo danno un impulso ogni 10 gradi di rotazione su una delle due uscite in base alla rotazione)</p>
<p>perchè fino a 5 minuti fa pensavo funzionassero così :D</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-%e2%80%93-approfondimenti-%e2%80%93-come-utilizzare-un-encoder-in-quadratura-per-limmissione-dei-dati/comment-page-1/#comment-10113</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Sun, 13 Feb 2011 23:10:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=2167#comment-10113</guid>
		<description>Se poi vuoi fare le cose piu complicate ma meglio, ci sono alcuni pic, anche della serie 18 che hanno la periferica QEI (Quadrature Encoder Interface) che come potrai capire gestisce tutto lei, indipendentemente dal resto. Ma non ci ho mai messo mano quindi non so dirti di più.</description>
		<content:encoded><![CDATA[<p>Se poi vuoi fare le cose piu complicate ma meglio, ci sono alcuni pic, anche della serie 18 che hanno la periferica QEI (Quadrature Encoder Interface) che come potrai capire gestisce tutto lei, indipendentemente dal resto. Ma non ci ho mai messo mano quindi non so dirti di più.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-%e2%80%93-approfondimenti-%e2%80%93-come-utilizzare-un-encoder-in-quadratura-per-limmissione-dei-dati/comment-page-1/#comment-10112</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Sun, 13 Feb 2011 23:00:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=2167#comment-10112</guid>
		<description>Se il problema fosse questo i picmicro sarebbero andati nel dimenticatoio da un pezzo... I PIC16 gestiscono gli interrupt in sequenza, se mentre gestisci il TMR0IF si verifica un altro interrupt, non accade nulla: la ISR continua a servire il TMR0IF e quando ha finito serve l&#039;altro. Sui PIC18 puoi impostare la priorità alta o bassa: se mentre servi un interrupt a bassa priorità si verifica uno ad alta priorità, quello a bassa viene messo in pausa e lo si torna a servire quando si è finito di servire quello ad alta. Altrimenti di default i pic18 hanno la gestione degli interrupt in modalità pic16-compatibile. Il problema per la tua applicazione non sussiste e tutto dipende da quanto rendi veloci le ISR. Se ti serve un calcolo davvero preciso della velocità, senza possibilità di errore, allora dovresti usare un pic18 con la priorità alta sull&#039;encoder e bassa sul timer. Metti che sul pic16 ti scatta prima un interrupt sull&#039;encoder mentre servi TMR0, e poi ne scatta un altro quando ancora non hai finito con TMR0: ovviamente ti perdi il secondo perchè il flag è già stato settato dal primo. Ma questo può accadere solo se &quot;perdi tempo&quot; in TMR0 e se la velocità di esecuzione è bassa.. Insomma dovresti farti due conti di quanto è la velocità massima del motore per capire ogni quanto ti scatta un interrupt sull&#039;encoder e capire se ce la fai a gestire tutto. Io direi fai una prova, ma non preoccuparti perchè di interrupt ne puoi gestire quanti ne vuoi, cerca solo di lavorare alla massima frequenza possibile col quarzo e di rendere le ISR più snelle possibile.</description>
		<content:encoded><![CDATA[<p>Se il problema fosse questo i picmicro sarebbero andati nel dimenticatoio da un pezzo&#8230; I PIC16 gestiscono gli interrupt in sequenza, se mentre gestisci il TMR0IF si verifica un altro interrupt, non accade nulla: la ISR continua a servire il TMR0IF e quando ha finito serve l&#8217;altro. Sui PIC18 puoi impostare la priorità alta o bassa: se mentre servi un interrupt a bassa priorità si verifica uno ad alta priorità, quello a bassa viene messo in pausa e lo si torna a servire quando si è finito di servire quello ad alta. Altrimenti di default i pic18 hanno la gestione degli interrupt in modalità pic16-compatibile. Il problema per la tua applicazione non sussiste e tutto dipende da quanto rendi veloci le ISR. Se ti serve un calcolo davvero preciso della velocità, senza possibilità di errore, allora dovresti usare un pic18 con la priorità alta sull&#8217;encoder e bassa sul timer. Metti che sul pic16 ti scatta prima un interrupt sull&#8217;encoder mentre servi TMR0, e poi ne scatta un altro quando ancora non hai finito con TMR0: ovviamente ti perdi il secondo perchè il flag è già stato settato dal primo. Ma questo può accadere solo se &#8220;perdi tempo&#8221; in TMR0 e se la velocità di esecuzione è bassa.. Insomma dovresti farti due conti di quanto è la velocità massima del motore per capire ogni quanto ti scatta un interrupt sull&#8217;encoder e capire se ce la fai a gestire tutto. Io direi fai una prova, ma non preoccuparti perchè di interrupt ne puoi gestire quanti ne vuoi, cerca solo di lavorare alla massima frequenza possibile col quarzo e di rendere le ISR più snelle possibile.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: odessos</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-%e2%80%93-approfondimenti-%e2%80%93-come-utilizzare-un-encoder-in-quadratura-per-limmissione-dei-dati/comment-page-1/#comment-10111</link>
		<dc:creator>odessos</dc:creator>
		<pubDate>Sun, 13 Feb 2011 22:38:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=2167#comment-10111</guid>
		<description>perchè uso il Timer0 per generare un segnale che pilota un motore passo passo, se leggo un,altro interrupt mi interrompe quello del Timer0, oppure si possono gestire in maniera indipendente?
forse con un PIC serie 18F?</description>
		<content:encoded><![CDATA[<p>perchè uso il Timer0 per generare un segnale che pilota un motore passo passo, se leggo un,altro interrupt mi interrompe quello del Timer0, oppure si possono gestire in maniera indipendente?<br />
forse con un PIC serie 18F?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-%e2%80%93-approfondimenti-%e2%80%93-come-utilizzare-un-encoder-in-quadratura-per-limmissione-dei-dati/comment-page-1/#comment-10110</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Sun, 13 Feb 2011 22:13:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=2167#comment-10110</guid>
		<description>Il programma usa già gli interrupt sul portb change? Se no, quale sarebbe il problema di usare l&#039;interrupt pure per l&#039;encoder? Se si: hai già tutte e 4 le porte B occupate?</description>
		<content:encoded><![CDATA[<p>Il programma usa già gli interrupt sul portb change? Se no, quale sarebbe il problema di usare l&#8217;interrupt pure per l&#8217;encoder? Se si: hai già tutte e 4 le porte B occupate?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: odessos</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-%e2%80%93-approfondimenti-%e2%80%93-come-utilizzare-un-encoder-in-quadratura-per-limmissione-dei-dati/comment-page-1/#comment-10109</link>
		<dc:creator>odessos</dc:creator>
		<pubDate>Sun, 13 Feb 2011 20:52:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=2167#comment-10109</guid>
		<description>ho un encoder che fornisce un inpulso ogni 10gradi di rotazione, quindi sono 36 impulsi a giro.
Ho la necessità di creare una funzione per calcolare la velocità di rotazione del motore. premetto che il programma utilizza già l&#039;interrupt per altri scopi,  e non posso rallentare l&#039;esecuzione del programma utilizzando routine con Delaytime troppo lunghi. come posso fare? devo utilizzare un&#039;altro PIC?
salutissimi e grazie di tutto.</description>
		<content:encoded><![CDATA[<p>ho un encoder che fornisce un inpulso ogni 10gradi di rotazione, quindi sono 36 impulsi a giro.<br />
Ho la necessità di creare una funzione per calcolare la velocità di rotazione del motore. premetto che il programma utilizza già l&#8217;interrupt per altri scopi,  e non posso rallentare l&#8217;esecuzione del programma utilizzando routine con Delaytime troppo lunghi. come posso fare? devo utilizzare un&#8217;altro PIC?<br />
salutissimi e grazie di tutto.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Giovanni Bernardo</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-%e2%80%93-approfondimenti-%e2%80%93-come-utilizzare-un-encoder-in-quadratura-per-limmissione-dei-dati/comment-page-1/#comment-6444</link>
		<dc:creator>Giovanni Bernardo</dc:creator>
		<pubDate>Sun, 25 Jul 2010 16:18:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=2167#comment-6444</guid>
		<description>Salve, è un piacere avere un commento da un grande come lei. Ho visitato il suo sito e l&#039;ho trovato molto interessante. Complimenti vivissimi per la vasta collezione di radio, che ritengo sia davvero invidiabile. Anche io adoro le radio antiche (ma purtroppo non ne capisco molto), soprattutto quelle valvolari. Ho avuto l&#039;enorme piacere di ripararne una, con non poca fatica, appartenente ad un mio zio che oramai non c&#039;è più, e che ora tengo bella esposta nel soggiorno, perfettamente funzionante. Sono pezzi di storia, che rievocano bei tempi andati, tempi in cui la semplicità ancora destava meraviglia e stupore.</description>
		<content:encoded><![CDATA[<p>Salve, è un piacere avere un commento da un grande come lei. Ho visitato il suo sito e l&#8217;ho trovato molto interessante. Complimenti vivissimi per la vasta collezione di radio, che ritengo sia davvero invidiabile. Anche io adoro le radio antiche (ma purtroppo non ne capisco molto), soprattutto quelle valvolari. Ho avuto l&#8217;enorme piacere di ripararne una, con non poca fatica, appartenente ad un mio zio che oramai non c&#8217;è più, e che ora tengo bella esposta nel soggiorno, perfettamente funzionante. Sono pezzi di storia, che rievocano bei tempi andati, tempi in cui la semplicità ancora destava meraviglia e stupore.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: vittorio</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-%e2%80%93-approfondimenti-%e2%80%93-come-utilizzare-un-encoder-in-quadratura-per-limmissione-dei-dati/comment-page-1/#comment-6443</link>
		<dc:creator>vittorio</dc:creator>
		<pubDate>Sun, 25 Jul 2010 15:53:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=2167#comment-6443</guid>
		<description>sono a livello 0 in programmazione di pic e bestioline simili,ai miei tempi non esistevano,pero&#039; devo dire che sei riuscito a risvegliarmi un po&#039; di interesse per gli encoder.
grazie e buon proseguimento
vittorio</description>
		<content:encoded><![CDATA[<p>sono a livello 0 in programmazione di pic e bestioline simili,ai miei tempi non esistevano,pero&#8217; devo dire che sei riuscito a risvegliarmi un po&#8217; di interesse per gli encoder.<br />
grazie e buon proseguimento<br />
vittorio</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: piero</title>
		<link>http://www.settorezero.com/wordpress/corso-programmazione-picmicro-in-c-%e2%80%93-approfondimenti-%e2%80%93-come-utilizzare-un-encoder-in-quadratura-per-limmissione-dei-dati/comment-page-1/#comment-6001</link>
		<dc:creator>piero</dc:creator>
		<pubDate>Mon, 28 Jun 2010 20:09:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.settorezero.com/wordpress/?p=2167#comment-6001</guid>
		<description>Giovanni,

ho trovato per caso questo tuo Blog googlando.
Partendo da questo approfondimento sugli encoder ho scoperto le altre cose interessantissime e non ho esitato ad iscrivermi.
Complimenti per l&#039;impegno e i risultati. Approfitto di questo spazio per salutare tutti, dato che non vedo nessun posto dove fare le presentazioni.

Cerchero&#039; di farmi vivo ogni tanto.

In gamba,

Piero</description>
		<content:encoded><![CDATA[<p>Giovanni,</p>
<p>ho trovato per caso questo tuo Blog googlando.<br />
Partendo da questo approfondimento sugli encoder ho scoperto le altre cose interessantissime e non ho esitato ad iscrivermi.<br />
Complimenti per l&#8217;impegno e i risultati. Approfitto di questo spazio per salutare tutti, dato che non vedo nessun posto dove fare le presentazioni.</p>
<p>Cerchero&#8217; di farmi vivo ogni tanto.</p>
<p>In gamba,</p>
<p>Piero</p>
]]></content:encoded>
	</item>
</channel>
</rss>

