calcolo della media di 20 valori in assembler
Moderatore:
Paolino
21 messaggi
• Pagina 2 di 3 • 1, 2, 3
0
voti
Esatto. Puoi ottenere un risultato arbitrariamente distante dalla reale media in questo caso visto che resterebbe inchiodato a 10.
"640K ought to be enough for anybody" Bill Gates (?) 1981
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
-

fairyvilje
15,0k 4 9 12 - G.Master EY

- Messaggi: 3047
- Iscritto il: 24 gen 2012, 19:23
1
voti
fairyvilje ha scritto:Evviva la propagazione degli errori
Indubbio
EcoTan ha scritto:è chiaro che questo metodo delle medie successive comporta più calcoli rispetto al primo metodo proposto.
Chiaro
Era solo
Robert8 ha scritto:Un altro modo per calcolare la media usando solo registri
quando non si possa o voglia memorizzare tutti i campioni.
0
voti
Il fatto è che in questo modo usando l'aritmetica intera non si sta calcolando la media ma... qualcos'altro
. Sulla falsariga della tua tecnica, con un registro in più si può tenere il conto del resto dello step precedente e risommandolo all'iterazione successiva l'errore è tenuto a bada
.
"640K ought to be enough for anybody" Bill Gates (?) 1981
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
-

fairyvilje
15,0k 4 9 12 - G.Master EY

- Messaggi: 3047
- Iscritto il: 24 gen 2012, 19:23
0
voti
Concordo!
Più semplicemente basterebbe sommare di volta in volta i campioni e dividere solo quando lo si desidera.
Comunque ambasciator non porta pena: era un esercizio universitario e la soluzione data era quella
Forse c'erano delle condizioni particolari, che non ricordo, tali da giustificare una simile soluzione.
Tutta teoria filosofica
Più semplicemente basterebbe sommare di volta in volta i campioni e dividere solo quando lo si desidera.
Comunque ambasciator non porta pena: era un esercizio universitario e la soluzione data era quella
Forse c'erano delle condizioni particolari, che non ricordo, tali da giustificare una simile soluzione.
Tutta teoria filosofica

0
voti
Quindi?
Che soluzione adottare?
Vediamo se vi piace questa:
definisco TOT su 2 byte (supponendo campioni su 8 bit)
1) ciclo di 20 acquisizioni e somma su TOT;
2) ciclo di sottrazioni TOT - 20 fino a che TOT < 20, il cui conteggio darà l'intero della media;
3) test del bit meno significativo di TOT:
- se 0 il secondo decimale della media è 0,
- se 1 il secondo decimale della media è 5;
4) shift a destra di TOT per ottenere il primo decimale della media.
Ergo: un solo registro su 2 byte per gestire il tutto e con 4 semplici passaggi si ottiene una media con 2 decimali.
Che soluzione adottare?
Vediamo se vi piace questa:
definisco TOT su 2 byte (supponendo campioni su 8 bit)
1) ciclo di 20 acquisizioni e somma su TOT;
2) ciclo di sottrazioni TOT - 20 fino a che TOT < 20, il cui conteggio darà l'intero della media;
3) test del bit meno significativo di TOT:
- se 0 il secondo decimale della media è 0,
- se 1 il secondo decimale della media è 5;
4) shift a destra di TOT per ottenere il primo decimale della media.
Ergo: un solo registro su 2 byte per gestire il tutto e con 4 semplici passaggi si ottiene una media con 2 decimali.
0
voti
Naturalmente no
E' su misura del 20 come richiesto.
Ma si può adattare a qualsiasi divisore con pochi accorgimenti.
Basta modificare il passo 2 col nuovo divisore per ottenere comunque la parte intera.
Per i decimali prova tu ad ideare qualcosa di generico valido per qualunque divisore
E' su misura del 20 come richiesto.
Ma si può adattare a qualsiasi divisore con pochi accorgimenti.
Basta modificare il passo 2 col nuovo divisore per ottenere comunque la parte intera.
Per i decimali prova tu ad ideare qualcosa di generico valido per qualunque divisore
0
voti
Su, dai, un piccolo sforzo
Prova ad immaginare come faresti, a mano, una divisione utilizzando solo somma e sottrazione.
Per esempio, semplifichiamo usando dividendo e divisore su 8 bit e fermiamoci a 2 decimali: 249/33 = 7,54
Prova ad immaginare come faresti, a mano, una divisione utilizzando solo somma e sottrazione.
Per esempio, semplifichiamo usando dividendo e divisore su 8 bit e fermiamoci a 2 decimali: 249/33 = 7,54
0
voti
Ringrazio tutti per la partecipazione e mi scuso se riprendo solo ora la discussione, ma per motivi di lavoro non ho potuto seguire il forum.
Data la mia scarsa conoscenza nell'ambito di questa materia volevo sapere se potevate indirizzarmi verso forum,blog o siti dove vengono spiegate le istruzioni aritmetiche e logiche in maniera più semplice possibile,magari correlate anche da esempi.
Data la mia scarsa conoscenza nell'ambito di questa materia volevo sapere se potevate indirizzarmi verso forum,blog o siti dove vengono spiegate le istruzioni aritmetiche e logiche in maniera più semplice possibile,magari correlate anche da esempi.
21 messaggi
• Pagina 2 di 3 • 1, 2, 3
Torna a Firmware e programmazione
Chi c’è in linea
Visitano il forum: Nessuno e 13 ospiti

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)



