PietroBaima ha scritto:Non è una buona idea fare moltiplicazioni in un service di interrupt.
Perché?
La maggior parte del codice che ho scritto per microcontrollori fa parecchie moltiplicazioni, ma calcola anche seni e coseni entro lo stesso interrupt, chiamato ogni 100 us...
Chiaramente, dipende dalla potenza di calcolo del micro che si sta usando, e bisogna assicurarsi di non sforare il tempo a disposizione.
Non so con l interfaccia arduinica come si fa ma sull' atmega una volta impostato il prescaler dell' ADC si può impostare il free running mode in cui fa continue letture e generata un interrupt a fine si ogni singola lettura. Per l RMS dentro la routine di interrupt si può semplicemente fare la moltiplicazione e l accumulo poi il resto lo gestisce il main
Le letture andrebbero fatte a cadenza regolare, per rendere semplici i calcoli.
Il calcolo dell'RMS prevede la media dei quadrati. Solo nel caso in cui il campionamento sia regolare, può essere approssimato con una somma di campioni, divisi poi per il numero di campioni a periodo della fondamentale.
Poi, anche solo per conoscere il numero di campioni per periodo della fondamentale, occorre sapere con precisione ogni quanto si campiona.
Calcolare la media del segnale con campionamento non uniforme vorrebbe dire pesare di volta in volta il campione per un coefficiente diverso (il tempo intercorso tra due campioni).

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)

pigreco]=π






