CITAZIONE (NonSoloBolleDiAcqua, 30/04/2015 15:47:00 )
Quote:Apparentemente può sembrare una cosa complicata che coinvolge chissà quali operazioni ...ma di fatto è molto molto banale.
Si, in effetti è più semplice a farsi che a dirsi...
L'anomalia sul cambio di segno dovrebbe essere risolvibile creando una sorta di isterisi software.
Quello che non conosco, invece è la seguente cosa:
Usando hardware esterno, invio un segnale ad onda quadra a un pin digitale. Nella ISR devo semplicemente leggere il valore di quel pin che potrà essere Low o High. Tale lettura dovrebbe essere praticamente istantanea oltre a non impegnare alcuna risorsa del micro.
Usando l'ADC per campionare l'onda dell'Enel, lasciando invariata la mia idea, il segnale Enel dovrà essere campionato ogni 62,5 uS circa:
- E' in grado l'ADC di lavorare a questo ritmo ?
- Che risorse del micro vengono impegnate ?
- Quanto tempo impiega una conversione ?
- Nel momento in cui faccio analogRead(x) e l'ADC impiega 20 uS, il micro aspetta o va avanti ?
- Se ogni 62,5 uS ho necessità di campionare il segnale Enel e quello dell'Inverter per il feedback, l'ADC va in crisi ? Voglio dire, supponendo un tempo di campionamento di 20 uS, l'ADC impiegherà 40 uS per campionare 2 segnali ?
Inoltre il concetto mi permette di realizzare, via software, un sofisticato squadratore hardware ma resta comunque da aggiungere tutto il discorso per la messa in fase e frequenza !
Insomma è la solita storia, faccio come la formica: sto cercando di mettere il cibo da parte per quando arriverà l'inverno !!!
Risparmio risorse per non trovarmi stretto più avanti...
In ogni caso il concetto è chiaro e molto valido.